Skip to main content

Module builtins

Module builtins 

Source
Expand description

Built-in motions, text objects, and operators that ship native (off the WASM boundary; per DESIGN.md §5.5.2 “built-ins stay native”).

This is the vim catalog: w / b / e, f / t and their repeats, { / }, gg / G, %, n / *, marks, H / M / L, gj / gk; the operators d / c / y / < / > / = / gq / gU / gu / g~ / zf / r; and the i / a text objects. populate registers them all into a CommandRegistry under namespaced names (motion:word-forward, operator:delete, text-object:inner-word) and returns their ids as Builtins.

Every builtin is an ordinary registry entry: the dispatcher, :describe-* and plugins see it exactly as they see a plugin-contributed motion. Adding one is a registration here and a keymap binding; no dispatcher wiring. Evaluators never touch host state directly: what a motion needs from the host (folds, marks, viewport, last search) arrives through the resolver traits on GrammarEnv, and what an operator does is returned as an Effect.

Tree-sitter structural objects (af / ac / …) are registered by lattice-syntax, not here: they need a parse this crate cannot see, and reach it only through ScopeResolver.

Structs§

Builtins
The ids of every native built-in, as returned by populate.

Functions§

populate
Register every native built-in motion, operator and text object into registry, and return their ids.