Consolidate Assistant panels in assistant2 feature flag (#23442)

This PR consolidates the two Assistant panels into one for users in the
`assistant2` feature flag.

Now that the Assistant1 prompt editor is accessible through the
Assistant2 panel, we no longer have a need to show both panels.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2025-01-21 21:56:42 -05:00 committed by GitHub
parent 7516b8c8b7
commit c887bf8e54
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 89 additions and 51 deletions

View file

@ -34,7 +34,6 @@ pub use crate::inline_assistant::InlineAssistant;
actions!(
assistant2,
[
ToggleFocus,
NewThread,
NewPromptEditor,
ToggleContextPicker,

View file

@ -24,22 +24,20 @@ use ui::{prelude::*, ContextMenu, KeyBinding, PopoverMenu, PopoverMenuHandle, Ta
use util::ResultExt as _;
use workspace::dock::{DockPosition, Panel, PanelEvent};
use workspace::Workspace;
use zed_actions::assistant::ToggleFocus;
use crate::active_thread::ActiveThread;
use crate::message_editor::MessageEditor;
use crate::thread::{Thread, ThreadError, ThreadId};
use crate::thread_history::{PastThread, ThreadHistory};
use crate::thread_store::ThreadStore;
use crate::{NewPromptEditor, NewThread, OpenHistory, OpenPromptEditorHistory, ToggleFocus};
use crate::{NewPromptEditor, NewThread, OpenHistory, OpenPromptEditorHistory};
pub fn init(cx: &mut AppContext) {
<dyn AssistantPanelDelegate>::set_global(Arc::new(ConcreteAssistantPanelDelegate), cx);
cx.observe_new_views(
|workspace: &mut Workspace, _cx: &mut ViewContext<Workspace>| {
workspace
.register_action(|workspace, _: &ToggleFocus, cx| {
workspace.toggle_panel_focus::<AssistantPanel>(cx);
})
.register_action(|workspace, _: &NewThread, cx| {
if let Some(panel) = workspace.panel::<AssistantPanel>(cx) {
panel.update(cx, |panel, cx| panel.new_thread(cx));
@ -189,6 +187,19 @@ impl AssistantPanel {
}
}
pub fn toggle_focus(
workspace: &mut Workspace,
_: &ToggleFocus,
cx: &mut ViewContext<Workspace>,
) {
let settings = AssistantSettings::get_global(cx);
if !settings.enabled {
return;
}
workspace.toggle_panel_focus::<Self>(cx);
}
pub(crate) fn local_timezone(&self) -> UtcOffset {
self.local_timezone
}
@ -438,7 +449,7 @@ impl Panel for AssistantPanel {
return None;
}
Some(IconName::ZedAssistant2)
Some(IconName::ZedAssistant)
}
fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> {

View file

@ -204,7 +204,7 @@ impl InlineAssistant {
pub fn inline_assist(
workspace: &mut Workspace,
_action: &zed_actions::InlineAssist,
_action: &zed_actions::assistant::InlineAssist,
cx: &mut ViewContext<Workspace>,
) {
let settings = AssistantSettings::get_global(cx);

View file

@ -270,9 +270,10 @@ impl<T: 'static> PromptEditor<T> {
PromptEditorMode::Terminal { .. } => "Generate",
};
let assistant_panel_keybinding = ui::text_for_action(&crate::ToggleFocus, cx)
.map(|keybinding| format!("{keybinding} to chat ― "))
.unwrap_or_default();
let assistant_panel_keybinding =
ui::text_for_action(&zed_actions::assistant::ToggleFocus, cx)
.map(|keybinding| format!("{keybinding} to chat ― "))
.unwrap_or_default();
format!("{action}… ({assistant_panel_keybinding}↓↑ for history)")
}