on master help sign in
Fix escape not exiting insert mode (#712)
6e21a74Gokul Soumya
helix-term/src/keymap.rs+7−6
@@ -287,13 +287,14 @@ impl Keymap {
287 /// sticky node is in use, it will be cleared.
287 /// sticky node is in use, it will be cleared.
288 pub fn get(&mut self, key: KeyEvent) -> KeymapResult {
288 pub fn get(&mut self, key: KeyEvent) -> KeymapResult {
289 if let key!(Esc) = key {
289 if let key!(Esc) = key {
290− if self.state.is_empty() {
290+ if !self.state.is_empty() {
291+ return KeymapResult::new(
292+ // Note that Esc is not included here
293+ KeymapResultKind::Cancelled(self.state.drain(..).collect()),
291− self.sticky = None;
294+ self.sticky(),
295+ );
292 }
296 }
293− return KeymapResult::new(
294− KeymapResultKind::Cancelled(self.state.drain(..).collect()),
295− self.sticky(),
297+ self.sticky = None;
296− );
297 }
298 }
298
299
299 let first = self.state.get(0).unwrap_or(&key);
300 let first = self.state.get(0).unwrap_or(&key);