hjkl-engine
Vim FSM, motion grammar, and editor traits — the no-I/O core of the hjkl stack.
Vim-mode editor engine built on top of hjkl-buffer. Exposes an Editor you
can drop into a ratatui layout — covers the bulk of vim's normal / insert /
visual / visual-line / visual-block modes, text-object operators, dot-repeat,
and ex-command handling (:s/foo/bar/g, :w, :q, :noh, ...). Imported from
sqeel-vim with full git history.
Status
0.2.0 — frozen public API; SPEC frozen per SPEC.md. Buffer trait
sealed (14 methods across Cursor/Query/BufferEdit/Search). Editor<B, H>
generic over buffer backend + host.
Features
| Feature | Default | Notes |
|---|---|---|
serde |
yes | Serde derives for Editor snapshot types. |
ratatui and crossterm are unconditional deps until the engine-native Style
type and the Buffer/Host trait extraction land. After that they move behind
feature flags so wasm/no_std consumers can opt out.
Usage
= "0.2"
use ;
use ;
use Buffer;
let mut editor = new;
editor.set_content;
// Drive the FSM with a keystroke
let input = Input ;
step;
License
MIT. See LICENSE.