helix-editor/helix
Glossary
Terms that appear throughout the codebase and this wiki. Many borrow from Vim, Kakoune, or CodeMirror; some are Helix-specific.
| Term | Meaning |
|---|---|
| Anchor | The fixed end of a Range; opposite of head. Used to extend selections. See helix-core/src/selection.rs. |
| Application | The top-level struct that owns the editor, compositor, terminal, and async runtime. See helix-term/src/application.rs. |
| AsyncHook | A debounced async task tied to an editor event. Defined in helix-event/src/debounce.rs. |
| Backend | A renderer for the TUI: termina (Unix), crossterm (Windows), or TestBackend for integration tests. See helix-tui/src/backend. |
| Buffer (TUI) | An off-screen grid of styled cells that the compositor draws into; diffed against the previous frame to produce minimal terminal updates. Distinct from a "buffer" meaning open file (Helix calls those Documents). See helix-tui/src/buffer.rs. |
| Compositor | The layered stack of Components in the terminal frontend. See helix-term/src/compositor.rs. |
| Component | A drawable, event-handling UI piece (editor view, popup, picker, prompt, etc.). |
| Document | An open file: rope + per-view selections + syntax + history + diagnostics. See helix-view/src/document.rs. |
| Editor | The global editor state: documents, view tree, registers, language servers, debug adapters. See helix-view/src/editor.rs. |
| Event | A typed message dispatched through helix-event (e.g. DocumentDidChange, SelectionDidChange). Hooks subscribe to events. |
| Expansion | Variable substitution in commands and external arguments (e.g. %{cursor_line}). See helix-view/src/expansion.rs. |
| Grammar | A compiled tree-sitter language grammar. Fetched/built by helix-loader::grammar. |
| Gutter | The strip on the left of a view showing line numbers, diagnostic icons, diff signs, and breakpoints. See helix-view/src/gutter.rs. |
| Head | The moving end of a Range. Cursor position equals the head minus one for forward ranges. |
| Hook | A synchronous callback registered for an Event. Use register_hook! from helix-event. |
| Info box | The transient popup that shows pending key sequences (e.g. g…). See helix-view/src/info.rs. |
| Jobs | Async callbacks that run on the main loop, often with access to the compositor. See helix-term/src/job.rs. |
| Keymap | A mapping from Mode to a KeyTrie of key sequences to commands. See helix-term/src/keymap.rs. |
| KeyTrie | A tree of key events whose leaves are MappableCommands; supports nested key sequences and sticky modes. |
| Language server | An LSP server process managed by helix-lsp::Registry; per-language servers are configured in languages.toml. |
| Layer (compositor) | A Component pushed onto the compositor stack. The top layer receives events first. |
| MappableCommand | A command that can be bound to keys, either a Rust function or a typable command. See helix-term/src/commands.rs. |
| Mode | Editor mode: Normal, Select, or Insert (defined in helix-view/src/document.rs). |
| Picker | A fuzzy-finder UI for files, symbols, buffers, etc. See helix-term/src/ui/picker. |
| Range | A (anchor, head) pair representing one selection range. Many ranges form a Selection. |
| Register | A named clipboard slot accessed via "x syntax. See helix-view/src/register.rs. |
| Rope | The persistent text buffer type — re-exported from ropey. Cheap to clone, used everywhere. |
| Runtime dir | Directory holding grammars, queries, themes, and the tutor — searched in priority order; see getting-started. |
| Selection | A non-empty list of Ranges with one designated as primary. The fundamental editing target in Helix. |
| Surface | A drawable area that components render into. Synonym for tui::buffer::Buffer. |
| Syntax | Tree-sitter parse tree plus highlighter state per document. See helix-core/src/syntax.rs. |
| Text annotation | A virtual text overlay (inline diagnostics, inlay hints, virtual lines). See helix-core/src/text_annotations.rs. |
| Text object | A semantic chunk of text (function, class, paragraph, etc.) selected via mi/ma style commands. See helix-core/src/textobject.rs. |
| Theme | A TOML file mapping highlight scopes to colors and modifiers; loaded from runtime/themes/. See helix-view/src/theme.rs. |
| Transaction | An OT-like atomic edit produced by Transaction::change*; reversible. See helix-core/src/transaction.rs. |
| Tree (view tree) | The split layout of Views. See helix-view/src/tree.rs. |
| Typable command | A :command invoked from the prompt; defined in helix-term/src/commands/typed.rs. |
| View | An open viewport into a Document — owns scroll position, gutter state, and one Selection. See helix-view/src/view.rs. |
| Workspace trust | A gate before loading workspace-local configuration; prompts the user the first time. See helix-loader/src/workspace_trust.rs. |
| xtask | The ad-hoc cargo task runner crate (xtask/). Subcommands: docgen, query-check, theme-check. |
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.