diff --git a/crates/editor/src/code_context_menus.rs b/crates/editor/src/code_context_menus.rs index 2e3963f85f..c84e021e0b 100644 --- a/crates/editor/src/code_context_menus.rs +++ b/crates/editor/src/code_context_menus.rs @@ -1,8 +1,8 @@ use fuzzy::{StringMatch, StringMatchCandidate}; use gpui::{ - div, px, uniform_list, AnyElement, BackgroundExecutor, Div, FontWeight, ListSizingBehavior, - Model, ScrollStrategy, SharedString, Size, StrikethroughStyle, StyledText, - UniformListScrollHandle, ViewContext, WeakView, + div, pulsating_between, px, uniform_list, Animation, AnimationExt, AnyElement, + BackgroundExecutor, Div, FontWeight, ListSizingBehavior, Model, ScrollStrategy, SharedString, + Size, StrikethroughStyle, StyledText, UniformListScrollHandle, ViewContext, WeakView, }; use language::Buffer; use language::{CodeLabel, Documentation}; @@ -10,6 +10,8 @@ use lsp::LanguageServerId; use multi_buffer::{Anchor, ExcerptId}; use ordered_float::OrderedFloat; use project::{CodeAction, Completion, TaskSourceKind}; +use settings::Settings; +use std::time::Duration; use std::{ cell::RefCell, cmp::{min, Reverse}, @@ -333,7 +335,6 @@ impl CompletionsMenu { entries[0] = hint; } _ => { - self.selected_item += 1; entries.insert(0, hint); } } @@ -461,10 +462,7 @@ impl CompletionsMenu { len } - CompletionEntry::InlineCompletionHint(InlineCompletionMenuHint { - provider_name, - .. - }) => provider_name.len(), + CompletionEntry::InlineCompletionHint(hint) => hint.label().chars().count(), }) .map(|(ix, _)| ix); drop(completions); @@ -488,6 +486,12 @@ impl CompletionsMenu { .enumerate() .map(|(ix, mat)| { let item_ix = start_ix + ix; + let buffer_font = theme::ThemeSettings::get_global(cx).buffer_font.clone(); + let base_label = h_flex() + .gap_1() + .child(div().font(buffer_font.clone()).child("Zed AI")) + .child(div().px_0p5().child("/").opacity(0.2)); + match mat { CompletionEntry::Match(mat) => { let candidate_id = mat.candidate_id; @@ -571,20 +575,57 @@ impl CompletionsMenu { .end_slot::