Skip to content

Commit

Permalink
Allow both Assistants to be used when in the assistant2 feature flag
Browse files Browse the repository at this point in the history
  • Loading branch information
maxdeviant committed Dec 17, 2024
1 parent b17f208 commit 0154b6c
Showing 1 changed file with 14 additions and 18 deletions.
32 changes: 14 additions & 18 deletions crates/zed/src/zed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,6 @@ pub fn initialize_workspace(
let git_ui_feature_flag = cx.wait_for_flag::<feature_flags::GitUiFeatureFlag>();

let prompt_builder = prompt_builder.clone();
let is_staff = cx.is_staff();

cx.spawn(|workspace_handle, mut cx| async move {
let project_panel = ProjectPanel::load(workspace_handle.clone(), cx.clone());
Expand All @@ -254,6 +253,8 @@ pub fn initialize_workspace(
workspace_handle.clone(),
cx.clone(),
);
let assistant_panel =
assistant::AssistantPanel::load(workspace_handle.clone(), prompt_builder, cx.clone());

let (
project_panel,
Expand All @@ -262,13 +263,15 @@ pub fn initialize_workspace(
channels_panel,
chat_panel,
notification_panel,
assistant_panel,
) = futures::try_join!(
project_panel,
outline_panel,
terminal_panel,
channels_panel,
chat_panel,
notification_panel,
assistant_panel,
)?;

workspace_handle.update(&mut cx, |workspace, cx| {
Expand All @@ -278,15 +281,15 @@ pub fn initialize_workspace(
workspace.add_panel(channels_panel, cx);
workspace.add_panel(chat_panel, cx);
workspace.add_panel(notification_panel, cx);
workspace.add_panel(assistant_panel, cx);
})?;
let git_ui_enabled = git_ui_feature_flag.await || is_staff;

let git_ui_enabled = git_ui_feature_flag.await;
let git_panel = if git_ui_enabled {
Some(git_ui::git_panel::GitPanel::load(workspace_handle.clone(), cx.clone()).await?)
} else {
None
};

workspace_handle.update(&mut cx, |workspace, cx| {
if let Some(git_panel) = git_panel {
workspace.add_panel(git_panel, cx);
Expand All @@ -299,27 +302,20 @@ pub fn initialize_workspace(
} else {
assistant2_feature_flag.await
};

let (assistant_panel, assistant2_panel) = if is_assistant2_enabled {
let assistant2_panel =
assistant2::AssistantPanel::load(workspace_handle.clone(), cx.clone()).await?;

(None, Some(assistant2_panel))
let assistant2_panel = if is_assistant2_enabled {
Some(assistant2::AssistantPanel::load(workspace_handle.clone(), cx.clone()).await?)
} else {
let assistant_panel =
assistant::AssistantPanel::load(workspace_handle.clone(), prompt_builder, cx.clone()).await?;

(Some(assistant_panel), None)
None
};
workspace_handle.update(&mut cx, |workspace, cx| {
if let Some(assistant_panel) = assistant_panel {
workspace.add_panel(assistant_panel, cx);
workspace.register_action(assistant::AssistantPanel::inline_assist);
}

if let Some(assistant2_panel) = assistant2_panel {
workspace.add_panel(assistant2_panel, cx);
}

if is_assistant2_enabled {
workspace.register_action(assistant2::InlineAssistant::inline_assist);
} else {
workspace.register_action(assistant::AssistantPanel::inline_assist);
}
})
})
Expand Down

0 comments on commit 0154b6c

Please sign in to comment.