Clear counts when switching modes

This commit is contained in:
Conrad Irwin 2023-09-11 18:30:31 -06:00
parent d868d00985
commit 76d55244a1
3 changed files with 30 additions and 0 deletions

View File

@ -574,3 +574,22 @@ async fn test_folds(cx: &mut gpui::TestAppContext) {
"})
.await;
}
#[gpui::test]
async fn test_clear_counts(cx: &mut gpui::TestAppContext) {
let mut cx = NeovimBackedTestContext::new(cx).await;
cx.set_shared_state(indoc! {"
The quick brown
fox juˇmps over
the lazy dog"})
.await;
cx.simulate_shared_keystrokes(["4", "escape", "3", "d", "l"])
.await;
cx.set_shared_state(indoc! {"
The quick brown
fox juˇ over
the lazy dog"})
.await;
}

View File

@ -308,6 +308,9 @@ impl Vim {
state.mode = mode;
state.operator_stack.clear();
});
if mode != Mode::Insert {
self.take_count();
}
cx.emit_global(VimEvent::ModeChanged { mode });
@ -412,6 +415,7 @@ impl Vim {
popped_operator
}
fn clear_operator(&mut self, cx: &mut WindowContext) {
self.take_count();
self.update_state(|state| state.operator_stack.clear());
self.sync_vim_settings(cx);
}

View File

@ -0,0 +1,7 @@
{"Put":{"state":"The quick brown\nfox juˇmps over\nthe lazy dog"}}
{"Key":"4"}
{"Key":"escape"}
{"Key":"3"}
{"Key":"d"}
{"Key":"l"}
{"Put":{"state":"The quick brown\nfox juˇ over\nthe lazy dog"}}