From bf75b3346450e469e1bb4f2f0b2f2df94133a262 Mon Sep 17 00:00:00 2001 From: Thorsten Ball Date: Wed, 15 Jan 2025 13:44:56 +0100 Subject: [PATCH] vim: Fix inline completions not disappearing in normal mode (#23176) Closes #23042 Release Notes: - Fixed inline completions (Copilot, Supermaven, ...) still being visible sometimes after leaving Vim's insert mode. --- crates/editor/src/editor.rs | 7 ++++++- crates/vim/src/vim.rs | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 81938bbe87..119f97259d 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -1732,8 +1732,12 @@ impl Editor { self.input_enabled = input_enabled; } - pub fn set_inline_completions_enabled(&mut self, enabled: bool) { + pub fn set_inline_completions_enabled(&mut self, enabled: bool, cx: &mut ViewContext) { self.enable_inline_completions = enabled; + if !self.enable_inline_completions { + self.take_active_inline_completion(cx); + cx.notify(); + } } pub fn set_autoindent(&mut self, autoindent: bool) { @@ -4785,6 +4789,7 @@ impl Editor { || (!self.completion_tasks.is_empty() && !self.has_active_inline_completion())); if completions_menu_has_precedence || !offset_selection.is_empty() + || !self.enable_inline_completions || self .active_inline_completion .as_ref() diff --git a/crates/vim/src/vim.rs b/crates/vim/src/vim.rs index d8a58e4789..4553cf7102 100644 --- a/crates/vim/src/vim.rs +++ b/crates/vim/src/vim.rs @@ -1240,7 +1240,7 @@ impl Vim { .map_or(false, |provider| provider.show_completions_in_normal_mode()), _ => false, }; - editor.set_inline_completions_enabled(enable_inline_completions); + editor.set_inline_completions_enabled(enable_inline_completions, cx); }); cx.notify() }