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§
Functions§
- populate
- Register every native built-in motion, operator and text object into
registry, and return their ids.