pub enum EngineCmd {
Show 13 variants
ReplaceChar {
ch: char,
count: usize,
},
FindChar {
ch: char,
forward: bool,
till: bool,
count: usize,
},
AfterGChord {
ch: char,
count: usize,
},
AfterZChord {
ch: char,
count: usize,
},
ApplyOpMotion {
op: OperatorKind,
motion_key: char,
total_count: usize,
},
ApplyOpDouble {
op: OperatorKind,
total_count: usize,
},
ApplyOpTextObj {
op: OperatorKind,
ch: char,
inner: bool,
total_count: usize,
},
ApplyOpG {
op: OperatorKind,
ch: char,
total_count: usize,
},
ApplyOpFind {
op: OperatorKind,
ch: char,
forward: bool,
till: bool,
total_count: usize,
},
SetPendingRegister {
reg: char,
},
SetMark {
ch: char,
},
GotoMarkLine {
ch: char,
},
GotoMarkChar {
ch: char,
},
}Expand description
Controller commands the host engine implements. hjkl-vim never mutates
the editor directly — it emits a command and the host (apps/hjkl) calls
the corresponding Editor method.
Variants§
ReplaceChar
FindChar
Emitted by PendingState::Find when the user completes f<x> / F<x>
/ t<x> / T<x>. The host calls Editor::find_char.
AfterGChord
Emitted by PendingState::AfterG when the user completes g<x>. The
host calls Editor::after_g(ch, count).
AfterZChord
Emitted by PendingState::AfterZ when the user completes z<x>. The
host calls Editor::after_z(ch, count).
ApplyOpMotion
d<motion> / y<motion> / c<motion> / ><motion> / <<motion> —
apply operator over a single-key motion. motion_key is the raw key
char (e.g. 'w', '$', 'G'). Engine parses via parse_motion and
applies. total_count = count1 * inner_count.
ApplyOpDouble
dd / yy / cc / >> / << — doubled-letter line op.
ApplyOpTextObj
diw etc. — apply operator over text-object range. The reducer owns the
i/a key via PendingState::OpTextObj; on the next char it emits this
command. Host calls Editor::apply_op_text_obj.
ApplyOpG
dgg etc. — apply operator over g-chord motion or case-op linewise form.
The reducer owns the g key via PendingState::OpG; on the next char it
emits this command. Host calls Editor::apply_op_g.
ApplyOpFind
df<x> / dF<x> / dt<x> / dT<x> — apply operator over find
motion. Engine builds Motion::Find { ch, forward, till } and applies
it. total_count is count1 * inner_count folded at transition time.
Replaces EnterOpFind (removed in 0.7.0). The reducer no longer sets
engine Pending::OpFind; instead it transitions to
PendingState::OpFind and emits this command on the next char.
SetPendingRegister
"<reg> chord completion. Engine validates reg against
[a-zA-Z0-9"+*_] and sets vim.pending_register if valid. Invalid
chars are silently ignored (no-op), matching the engine FSM behaviour.
SetMark
m<ch> chord completion. Engine validates ch and records the mark at
the current cursor position. Invalid chars are silently ignored (no-op).
GotoMarkLine
'<ch> chord completion. Engine validates ch and jumps to the mark
linewise (row only, cursor lands on first non-blank column). Invalid or
unset marks are silently ignored (no-op).
GotoMarkChar
`<ch> chord completion. Engine validates ch and jumps to the
mark charwise (exact row + col). Invalid or unset marks are silently
ignored (no-op).