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.3 — Buffer trait sealed (14 methods across
Cursor/Query/BufferEdit/Search). Editor<B, H> generic over buffer backend +
host. See docs.rs for the canonical API
reference.
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.3"
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.