Unnamed repository; edit this file 'description' to name the repository.
Fix escape not exiting insert mode (#712)
Regression due to #635 where escape key in insert mode would not exit normal mode. This happened due to hard coding the escape key to cancel a sticky keymap node.
Gokul Soumya 2021-09-05
parent 183dcce · commit 6e21a74
-rw-r--r--helix-term/src/keymap.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/helix-term/src/keymap.rs b/helix-term/src/keymap.rs
index f0f980bd..aa60482d 100644
--- a/helix-term/src/keymap.rs
+++ b/helix-term/src/keymap.rs
@@ -287,13 +287,14 @@ impl Keymap {
/// sticky node is in use, it will be cleared.
pub fn get(&mut self, key: KeyEvent) -> KeymapResult {
if let key!(Esc) = key {
- if self.state.is_empty() {
- self.sticky = None;
+ if !self.state.is_empty() {
+ return KeymapResult::new(
+ // Note that Esc is not included here
+ KeymapResultKind::Cancelled(self.state.drain(..).collect()),
+ self.sticky(),
+ );
}
- return KeymapResult::new(
- KeymapResultKind::Cancelled(self.state.drain(..).collect()),
- self.sticky(),
- );
+ self.sticky = None;
}
let first = self.state.get(0).unwrap_or(&key);