diff --git a/Cargo.lock b/Cargo.lock index ac851b942881ef148a64c66c143a0b04129c31a9..7c74c46e5696493f6499d5758a25bec7d4bdb9a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14823,6 +14823,7 @@ dependencies = [ "copilot", "edit_prediction", "editor", + "extension_host", "feature_flags", "fs", "futures 0.3.31", diff --git a/crates/settings_ui/Cargo.toml b/crates/settings_ui/Cargo.toml index 256ec2de557e903405d1c3431ef44e98d757d3c6..99889f391be5aa50a51d0cef473c759a27637fef 100644 --- a/crates/settings_ui/Cargo.toml +++ b/crates/settings_ui/Cargo.toml @@ -20,6 +20,7 @@ anyhow.workspace = true bm25 = "2.3.2" copilot.workspace = true edit_prediction.workspace = true +extension_host.workspace = true language_models.workspace = true editor.workspace = true feature_flags.workspace = true diff --git a/crates/settings_ui/src/pages/edit_prediction_provider_setup.rs b/crates/settings_ui/src/pages/edit_prediction_provider_setup.rs index fb8f967613fa195080f62c5ab2ce76a43f3d1e22..031cc3d1142cf2c14224188a8d58f0c296942fdd 100644 --- a/crates/settings_ui/src/pages/edit_prediction_provider_setup.rs +++ b/crates/settings_ui/src/pages/edit_prediction_provider_setup.rs @@ -3,6 +3,7 @@ use edit_prediction::{ mercury::{MERCURY_CREDENTIALS_URL, mercury_api_token}, sweep_ai::{SWEEP_CREDENTIALS_URL, sweep_api_token}, }; +use extension_host::ExtensionStore; use feature_flags::FeatureFlagAppExt as _; use gpui::{Entity, ScrollHandle, prelude::*}; use language_models::provider::mistral::{CODESTRAL_API_URL, codestral_api_key}; @@ -31,8 +32,14 @@ impl Render for EditPredictionSetupPage { fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { let settings_window = self.settings_window.clone(); + let copilot_extension_installed = ExtensionStore::global(cx) + .read(cx) + .installed_extensions() + .contains_key("copilot-chat"); + let providers = [ - Some(render_github_copilot_provider(window, cx).into_any_element()), + (!copilot_extension_installed) + .then(|| render_github_copilot_provider(window, cx).into_any_element()), cx.has_flag::().then(|| { render_api_key_provider( IconName::Inception,