diff --git a/crates/command_palette2/src/command_palette.rs b/crates/command_palette2/src/command_palette.rs index 306ccc2b5a..6a3bbe56c4 100644 --- a/crates/command_palette2/src/command_palette.rs +++ b/crates/command_palette2/src/command_palette.rs @@ -7,7 +7,7 @@ use collections::{CommandPaletteFilter, HashMap}; use fuzzy::{StringMatch, StringMatchCandidate}; use gpui::{ actions, Action, AppContext, DismissEvent, Div, EventEmitter, FocusHandle, FocusableView, - Keystroke, ParentElement, Render, Styled, View, ViewContext, VisualContext, WeakView, + ParentElement, Render, Styled, View, ViewContext, VisualContext, WeakView, }; use picker::{Picker, PickerDelegate}; @@ -61,7 +61,6 @@ impl CommandPalette { Some(Command { name: humanize_action_name(&name), action, - keystrokes: vec![], // todo!() }) }) .collect(); @@ -110,7 +109,6 @@ pub struct CommandPaletteDelegate { struct Command { name: String, action: Box, - keystrokes: Vec, } impl Clone for Command { @@ -118,7 +116,6 @@ impl Clone for Command { Self { name: self.name.clone(), action: self.action.boxed_clone(), - keystrokes: self.keystrokes.clone(), } } } @@ -229,6 +226,7 @@ impl PickerDelegate for CommandPaletteDelegate { }) } } + if let Some(CommandInterceptResult { action, string, @@ -244,7 +242,6 @@ impl PickerDelegate for CommandPaletteDelegate { commands.push(Command { name: string.clone(), action, - keystrokes: vec![], }); matches.insert( 0, @@ -256,6 +253,7 @@ impl PickerDelegate for CommandPaletteDelegate { }, ) } + picker .update(&mut cx, |picker, _| { let delegate = &mut picker.delegate; @@ -285,6 +283,8 @@ impl PickerDelegate for CommandPaletteDelegate { } let action_ix = self.matches[self.selected_ix].candidate_id; let command = self.commands.swap_remove(action_ix); + self.matches.clear(); + self.commands.clear(); cx.update_global(|hit_counts: &mut HitCounts, _| { *hit_counts.0.entry(command.name).or_default() += 1; }); @@ -300,13 +300,8 @@ impl PickerDelegate for CommandPaletteDelegate { selected: bool, cx: &mut ViewContext>, ) -> Option { - let Some(r#match) = self.matches.get(ix) else { - return None; - }; - let Some(command) = self.commands.get(r#match.candidate_id) else { - return None; - }; - + let r#match = self.matches.get(ix)?; + let command = self.commands.get(r#match.candidate_id)?; Some( ListItem::new(ix).inset(true).selected(selected).child( h_stack() @@ -354,8 +349,7 @@ impl std::fmt::Debug for Command { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("Command") .field("name", &self.name) - .field("keystrokes", &self.keystrokes) - .finish() + .finish_non_exhaustive() } }