Skip to main content

register_operator_bindings

Function register_operator_bindings 

Source
pub fn register_operator_bindings(
    handle: &KeymapHandle,
    op_prefix: &[ChordPattern],
    op: OperatorId,
    doubled_self: Option<ChordPattern>,
    builtins: &Builtins,
    syntax_textobjects: &SyntaxTextObjectIds,
    syntax_motions: &SyntaxMotionIds,
    post_motion_char: bool,
)
Expand description

Register the slice 8.g.iii operator-pending paths for one operator under op_prefix. Same shape across every operator: motion targets, the doubled-operator current-line shorthand, i_ / a_ text-object pendings + their resolutions, and the f / F / t / T find-char pendings (resolution stays in legacy resolve_after_find_char until 8.g.v).

doubled_self is the chord that triggers the linewise form (e.g. 'd' for dd, 'U' for gUU). It’s the trailing key of the doubled form, not the prefix. None binds no doubled form: vim has no zff, and a bound [z, f, f] would shadow zff{char} (fold to the next {char}), because a bound prefix kills its longer chords.

N.1.3 (2026-06-10): pub so boot can wire a provider-contributed operator’s chord (the narrow zn) into this universal operator-pending layer. The operator SPEC + apply are owned by the provider crate; only this chord-wiring lives here, because operator-pending composition needs the host-resolved Builtins.