Implement Helix Support (WIP) (#19175)

Closes #4642 

- Added the ability to switch to helix normal mode, with an additional
helix visual mode.
- <kbd>ctrl</kbd><kbd>h</kbd> from Insert mode goes to Helix Normal
mode. <kbd> i </kbd> and <kbd> a </kbd> to go back.
- Need to find a way to perform the helix normal mode selection with
<kbd> w </kbd>, <kbd>e </kbd>, <kbd> b </kbd> as a first step. Need to
figure out how the mode will interoperate with the VIM mode as the new
additions are in the same crate.
This commit is contained in:
Waleed Dahshan 2024-12-04 17:19:52 +11:00 committed by GitHub
parent c5d15fd065
commit 8f08787cf0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 444 additions and 12 deletions

View file

@ -26,6 +26,7 @@ pub enum Mode {
Visual,
VisualLine,
VisualBlock,
HelixNormal,
}
impl Display for Mode {
@ -37,6 +38,7 @@ impl Display for Mode {
Mode::Visual => write!(f, "VISUAL"),
Mode::VisualLine => write!(f, "VISUAL LINE"),
Mode::VisualBlock => write!(f, "VISUAL BLOCK"),
Mode::HelixNormal => write!(f, "HELIX NORMAL"),
}
}
}
@ -46,6 +48,7 @@ impl Mode {
match self {
Mode::Normal | Mode::Insert | Mode::Replace => false,
Mode::Visual | Mode::VisualLine | Mode::VisualBlock => true,
Mode::HelixNormal => false,
}
}
}