From c3518cefe832535a8ba2a3cd7c8a7a8ebb9a0b27 Mon Sep 17 00:00:00 2001 From: Kay Simmons Date: Tue, 17 Jan 2023 17:32:10 -0800 Subject: [PATCH 1/2] disable vim mode in non full editors --- crates/vim/src/editor_events.rs | 4 +--- crates/vim/src/vim.rs | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/crates/vim/src/editor_events.rs b/crates/vim/src/editor_events.rs index 7b777a50ed..c526e3b1dc 100644 --- a/crates/vim/src/editor_events.rs +++ b/crates/vim/src/editor_events.rs @@ -37,9 +37,7 @@ fn editor_focused(EditorFocused(editor): &EditorFocused, cx: &mut MutableAppCont let editor_mode = editor.mode(); let newest_selection_empty = editor.selections.newest::(cx).is_empty(); - if editor_mode != EditorMode::Full { - vim.switch_mode(Mode::Insert, true, cx); - } else if !newest_selection_empty { + if editor_mode == EditorMode::Full && !newest_selection_empty { vim.switch_mode(Mode::Visual { line: false }, true, cx); } }); diff --git a/crates/vim/src/vim.rs b/crates/vim/src/vim.rs index 8c5dae1e01..9f799ef37f 100644 --- a/crates/vim/src/vim.rs +++ b/crates/vim/src/vim.rs @@ -12,7 +12,7 @@ mod visual; use collections::HashMap; use command_palette::CommandPaletteFilter; -use editor::{Bias, Cancel, Editor}; +use editor::{Bias, Cancel, Editor, EditorMode}; use gpui::{ impl_actions, keymap_matcher::{KeyPressed, Keystroke}, @@ -267,7 +267,7 @@ impl Vim { for editor in self.editors.values() { if let Some(editor) = editor.upgrade(cx) { editor.update(cx, |editor, cx| { - if self.enabled { + if self.enabled && editor.mode() == EditorMode::Full { editor.set_cursor_shape(cursor_shape, cx); editor.set_clip_at_line_ends(state.clip_at_line_end(), cx); editor.set_input_enabled(!state.vim_controlled()); From cf193154e10266c35dfc5539702d04a0cc1c7979 Mon Sep 17 00:00:00 2001 From: Kay Simmons Date: Tue, 17 Jan 2023 17:35:39 -0800 Subject: [PATCH 2/2] fix broken test --- crates/vim/src/test.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/crates/vim/src/test.rs b/crates/vim/src/test.rs index e320962cfa..0214806e11 100644 --- a/crates/vim/src/test.rs +++ b/crates/vim/src/test.rs @@ -84,9 +84,6 @@ async fn test_buffer_search(cx: &mut gpui::TestAppContext) { ); cx.simulate_keystroke("/"); - // We now use a weird insert mode with selection when jumping to a single line editor - assert_eq!(cx.mode(), Mode::Insert); - let search_bar = cx.workspace(|workspace, cx| { workspace .active_pane()