@@ -612,6 +612,14 @@
"ctrl-alt-e": "assistant2::RemoveAllContext"
}
},
+ {
+ "context": "AssistantPanel2 && prompt_editor",
+ "use_key_equivalents": true,
+ "bindings": {
+ "cmd-n": "assistant2::NewPromptEditor",
+ "cmd-alt-t": "assistant2::NewThread"
+ }
+ },
{
"context": "MessageEditor > Editor",
"bindings": {
@@ -256,6 +256,14 @@
"cmd-alt-e": "assistant2::RemoveAllContext"
}
},
+ {
+ "context": "AssistantPanel2 && prompt_editor",
+ "use_key_equivalents": true,
+ "bindings": {
+ "cmd-n": "assistant2::NewPromptEditor",
+ "cmd-alt-t": "assistant2::NewThread"
+ }
+ },
{
"context": "MessageEditor > Editor",
"use_key_equivalents": true,
@@ -15,7 +15,8 @@ use editor::Editor;
use fs::Fs;
use gpui::{
prelude::*, Action, AnyElement, App, AsyncWindowContext, Corner, Entity, EventEmitter,
- FocusHandle, Focusable, FontWeight, Pixels, Subscription, Task, UpdateGlobal, WeakEntity,
+ FocusHandle, Focusable, FontWeight, KeyContext, Pixels, Subscription, Task, UpdateGlobal,
+ WeakEntity,
};
use language::LanguageRegistry;
use language_model::{LanguageModelProviderTosView, LanguageModelRegistry};
@@ -993,12 +994,21 @@ impl AssistantPanel {
)
.into_any()
}
+
+ fn key_context(&self) -> KeyContext {
+ let mut key_context = KeyContext::new_with_defaults();
+ key_context.add("AssistantPanel2");
+ if matches!(self.active_view, ActiveView::PromptEditor) {
+ key_context.add("prompt_editor");
+ }
+ key_context
+ }
}
impl Render for AssistantPanel {
fn render(&mut self, window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
v_flex()
- .key_context("AssistantPanel2")
+ .key_context(self.key_context())
.justify_between()
.size_full()
.on_action(cx.listener(Self::cancel))