From 60955fb8eeec09cb8a78a63afe4c13476d9970a5 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Tue, 4 Apr 2023 11:15:14 +0200 Subject: [PATCH] Refresh active copilot suggestion when accepting completion --- crates/editor/src/editor.rs | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 5ce8c66563..d12b892e36 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -2777,25 +2777,16 @@ impl Editor { self.clear_copilot_suggestions(cx); return None; } + self.refresh_active_copilot_suggestion(cx); - let selection = self.selections.newest_anchor(); let snapshot = self.buffer.read(cx).snapshot(cx); - - let cursor = if selection.start == selection.end { - selection.start.bias_left(&snapshot) - } else { - return None; - }; - - let language_name = snapshot - .language_at(selection.start) - .map(|language| language.name()); + let cursor = self.selections.newest_anchor().head(); + let language_name = snapshot.language_at(cursor).map(|language| language.name()); if !cx.global::().copilot_on(language_name.as_deref()) { self.clear_copilot_suggestions(cx); return None; } - self.refresh_active_copilot_suggestion(cx); let (buffer, buffer_position) = self.buffer.read(cx).text_anchor_for_position(cursor, cx)?; self.copilot_state.pending_refresh = cx.spawn_weak(|this, mut cx| async move { @@ -2862,9 +2853,10 @@ impl Editor { fn refresh_active_copilot_suggestion(&mut self, cx: &mut ViewContext) { let snapshot = self.buffer.read(cx).snapshot(cx); - let cursor = self.selections.newest_anchor().head(); + let selection = self.selections.newest_anchor(); + let cursor = selection.head(); - if self.context_menu.is_some() { + if self.context_menu.is_some() || selection.start != selection.end { self.display_map .update(cx, |map, cx| map.replace_suggestion::(None, cx)); cx.notify();