#[non_exhaustive]pub enum MotionKind {
CharLeft,
CharRight,
LineDown,
LineUp,
FirstNonBlankDown,
FirstNonBlankUp,
}Expand description
Cursor motion identity carried by the host keymap path.
Phase 3a introduces this enum so the hjkl-vim keymap can name motions
without depending on engine internals. The host converts a MotionKind to
the appropriate Editor::apply_motion call.
Designed for extensibility: Phases 3b–3g will add further variants
(word motions, line-boundary motions, jump motions, scroll motions, …)
without breaking any existing match arms — callers must use .. or
add the new arms when they bump the hjkl-vim minor version.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
CharLeft
h / <Backspace> — move the cursor one character to the left.
Clamps at column 0 (no line-wrap), matching vim’s normal-mode h.
CharRight
l / <Space> — move the cursor one character to the right.
Clamps at the last character of the line (no line-wrap), matching
vim’s normal-mode l.
LineDown
j — move the cursor one line down, restoring the sticky column.
LineUp
k — move the cursor one line up, restoring the sticky column.
FirstNonBlankDown
+ / <CR> (not yet bound) — move down one line and land on the
first non-blank character. Sets the sticky column.
FirstNonBlankUp
- — move up one line and land on the first non-blank character.
Sets the sticky column.
Trait Implementations§
Source§impl Clone for MotionKind
impl Clone for MotionKind
Source§fn clone(&self) -> MotionKind
fn clone(&self) -> MotionKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MotionKind
impl Debug for MotionKind
Source§impl Hash for MotionKind
impl Hash for MotionKind
Source§impl PartialEq for MotionKind
impl PartialEq for MotionKind
Source§fn eq(&self, other: &MotionKind) -> bool
fn eq(&self, other: &MotionKind) -> bool
self and other values to be equal, and is used by ==.