Allow binding to motions in insert mode (#15308)

Release Notes:

- vim: Allow binding motions in insert mode
This commit is contained in:
Conrad Irwin 2024-07-26 16:33:31 -06:00 committed by GitHub
parent bde02a350e
commit be86852f95
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -436,7 +436,7 @@ pub(crate) fn motion(motion: Motion, cx: &mut WindowContext) {
let active_operator = Vim::read(cx).active_operator();
let mut waiting_operator: Option<Operator> = None;
match Vim::read(cx).state().mode {
Mode::Normal | Mode::Replace => {
Mode::Normal | Mode::Replace | Mode::Insert => {
if active_operator == Some(Operator::AddSurrounds { target: None }) {
waiting_operator = Some(Operator::AddSurrounds {
target: Some(SurroundsType::Motion(motion)),
@ -448,9 +448,6 @@ pub(crate) fn motion(motion: Motion, cx: &mut WindowContext) {
Mode::Visual | Mode::VisualLine | Mode::VisualBlock => {
visual_motion(motion.clone(), count, cx)
}
Mode::Insert => {
// Shouldn't execute a motion in insert mode. Ignoring
}
}
Vim::update(cx, |vim, cx| {
vim.clear_operator(cx);