ZIm/GLOSSARY.md
2025-08-25 13:00:46 +02:00

2.6 KiB

TODO dvdsk copy latest from notes

These are some terms and structures frequently used throughout the zed codebase. This is a best effort list. PR's are very welcome.

Questions:

  • Can we generate this list form doc comments throughout zed?

GPUI

  • Context: A wrapper around the App struct with specialized behavior for a specific Entity
  • App: A singleton which holds the full application state including all the entities.
  • AsyncApp:
  • Window:
  • Task:
  • Executor:
    • both background and foreground
  • Entity: A strong, well-typed reference to a struct which is managed by gpui. Effectively a pointer into the Context.
  • Global: A singleton type which has only one value
  • Event: A datatype which can be send by an Entity to subscribers
  • Action: An event that represents a user's keyboard input that can be handled by listerners Example: file finder: toggle
  • Subscription: An event handler that is used to react to the changes of state in the application.
    1. Emitted event handling
    2. Observing {new,release,on notify} of an entity
  • Focus: The place where keystrokes are handled first
  • Element: An type that can be rendered
  • AnyElement: A type erased version of an Element
  • element expression: An expression that builds an element tree, example:
h_flex()
    .id(text[i])
    .relative()
    .when(selected, |this| {
        this.child(
            div()
                .h_4()
                .absolute()
                etc etc

Zed

  • Workspace: The root of the window
  • Buffer: The in memory representation of a 'file' together with relevant data such as syntax trees, git status and diagnostics.
  • Picker: A model showing a list of items. When an item is selected you can confirm the item and then something happens.
  • PickerDelegate: A trait used to specialize behavior for a Picker
  • Modal: todo!
  • Project: todo!
  • Stores: todo!

Collab

  • Upstream client: The zed client which has shared their workspace
  • Downstream client: The zed client joining a shared workspace

Debugger

  • DapStore: Is an entity that manages debugger sessions
  • debugger::Session: Is an entity that manages the lifecycle of a debug session and communication with DAPS
  • BreakpointStore: Is an entity that manages breakpoints states in local and remote instances of Zed
  • DebugSession: Manages a debug session's UI and running state
  • RunningState: Directily manages all the views of a debug session
  • VariableList: The variable and watch list view of a debug session
  • Console
  • Terminal
  • BreakpointList
  • `