Detailed changes
@@ -175,7 +175,7 @@
"ctrl-shift-e": "project_panel::ToggleFocus",
"ctrl-g": "search::SelectNextMatch",
"ctrl-shift-g": "search::SelectPrevMatch",
- "ctrl-shift-m": "assistant::ToggleModelSelector",
+ "ctrl-alt-/": "assistant::ToggleModelSelector",
"ctrl-k h": "assistant::DeployHistory",
"ctrl-k l": "assistant::DeployPromptLibrary",
"ctrl-n": "assistant::NewContext"
@@ -572,7 +572,7 @@
"bindings": {
"ctrl-n": "assistant2::NewThread",
"ctrl-shift-h": "assistant2::OpenHistory",
- "ctrl-shift-m": "assistant2::ToggleModelSelector",
+ "ctrl-alt-/": "assistant2::ToggleModelSelector",
"ctrl-shift-a": "assistant2::ToggleContextPicker",
"ctrl-alt-e": "assistant2::RemoveAllContext"
}
@@ -199,7 +199,7 @@
"cmd-shift-e": "project_panel::ToggleFocus",
"cmd-g": "search::SelectNextMatch",
"cmd-shift-g": "search::SelectPrevMatch",
- "cmd-shift-m": "assistant::ToggleModelSelector",
+ "cmd-alt-/": "assistant::ToggleModelSelector",
"cmd-k h": "assistant::DeployHistory",
"cmd-k l": "assistant::DeployPromptLibrary",
"cmd-n": "assistant::NewContext"
@@ -226,7 +226,7 @@
"bindings": {
"cmd-n": "assistant2::NewThread",
"cmd-shift-h": "assistant2::OpenHistory",
- "cmd-shift-m": "assistant2::ToggleModelSelector",
+ "cmd-alt-/": "assistant2::ToggleModelSelector",
"cmd-shift-a": "assistant2::ToggleContextPicker",
"cmd-alt-e": "assistant2::RemoveAllContext"
}
@@ -616,6 +616,7 @@
"use_key_equivalents": true,
"bindings": {
"cmd-shift-a": "assistant2::ToggleContextPicker",
+ "cmd-alt-/": "assistant2::ToggleModelSelector",
"cmd-alt-e": "assistant2::RemoveAllContext",
"ctrl-[": "assistant::CyclePreviousInlineAssist",
"ctrl-]": "assistant::CycleNextInlineAssist"
@@ -1,5 +1,5 @@
use fs::Fs;
-use gpui::View;
+use gpui::{FocusHandle, View};
use language_model::LanguageModelRegistry;
use language_model_selector::{LanguageModelSelector, LanguageModelSelectorPopoverMenu};
use settings::update_settings_file;
@@ -11,12 +11,14 @@ use crate::{assistant_settings::AssistantSettings, ToggleModelSelector};
pub struct AssistantModelSelector {
selector: View<LanguageModelSelector>,
menu_handle: PopoverMenuHandle<LanguageModelSelector>,
+ focus_handle: FocusHandle,
}
impl AssistantModelSelector {
pub(crate) fn new(
fs: Arc<dyn Fs>,
menu_handle: PopoverMenuHandle<LanguageModelSelector>,
+ focus_handle: FocusHandle,
cx: &mut WindowContext,
) -> Self {
Self {
@@ -34,6 +36,7 @@ impl AssistantModelSelector {
)
}),
menu_handle,
+ focus_handle,
}
}
}
@@ -41,7 +44,7 @@ impl AssistantModelSelector {
impl Render for AssistantModelSelector {
fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement {
let active_model = LanguageModelRegistry::read_global(cx).active_model();
- let focus_handle = self.selector.focus_handle(cx).clone();
+ let focus_handle = self.focus_handle.clone();
LanguageModelSelectorPopoverMenu::new(
self.selector.clone(),
@@ -49,7 +52,6 @@ impl Render for AssistantModelSelector {
.style(ButtonStyle::Subtle)
.child(
h_flex()
- .w_full()
.gap_0p5()
.child(
div()
@@ -842,7 +842,12 @@ impl PromptEditor<BufferCodegen> {
context_strip,
context_picker_menu_handle,
model_selector: cx.new_view(|cx| {
- AssistantModelSelector::new(fs, model_selector_menu_handle.clone(), cx)
+ AssistantModelSelector::new(
+ fs,
+ model_selector_menu_handle.clone(),
+ prompt_editor.focus_handle(cx),
+ cx,
+ )
}),
model_selector_menu_handle,
edited_since_done: false,
@@ -989,7 +994,12 @@ impl PromptEditor<TerminalCodegen> {
context_strip,
context_picker_menu_handle,
model_selector: cx.new_view(|cx| {
- AssistantModelSelector::new(fs, model_selector_menu_handle.clone(), cx)
+ AssistantModelSelector::new(
+ fs,
+ model_selector_menu_handle.clone(),
+ prompt_editor.focus_handle(cx),
+ cx,
+ )
}),
model_selector_menu_handle,
edited_since_done: false,
@@ -100,7 +100,12 @@ impl MessageEditor {
inline_context_picker,
inline_context_picker_menu_handle,
model_selector: cx.new_view(|cx| {
- AssistantModelSelector::new(fs, model_selector_menu_handle.clone(), cx)
+ AssistantModelSelector::new(
+ fs,
+ model_selector_menu_handle.clone(),
+ editor.focus_handle(cx),
+ cx,
+ )
}),
model_selector_menu_handle,
use_tools: false,