diff --git a/Cargo.lock b/Cargo.lock index 1eea0088734d2a747ac2e0f30f4f1523cd910ea1..40e6a172400d24f9698ffed0324842157ecfe386 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -382,6 +382,7 @@ dependencies = [ "ctor", "editor", "env_logger", + "feature_flags", "file_icons", "fs", "futures 0.3.28", diff --git a/crates/assistant/Cargo.toml b/crates/assistant/Cargo.toml index ca96bd4bac13edba3d36fec35c9fc40d476c68e2..a9397bf3c1ef7f3b10f581423154e0e27cedaa52 100644 --- a/crates/assistant/Cargo.toml +++ b/crates/assistant/Cargo.toml @@ -23,6 +23,7 @@ client.workspace = true collections.workspace = true command_palette_hooks.workspace = true editor.workspace = true +feature_flags.workspace = true file_icons.workspace = true fs.workspace = true futures.workspace = true diff --git a/crates/assistant/src/assistant_panel.rs b/crates/assistant/src/assistant_panel.rs index a39c14d7bd5de70f15acbb3689650c6f868fe977..9c169b986134a3a1259166c5279e2aa3ece1f411 100644 --- a/crates/assistant/src/assistant_panel.rs +++ b/crates/assistant/src/assistant_panel.rs @@ -462,6 +462,11 @@ impl AssistantPanel { .focus_handle(cx) .contains_focused(cx) { + use feature_flags::FeatureFlagAppExt; + if !cx.has_flag::() { + return None; + } + if let Some(terminal_view) = terminal_panel .read(cx) .pane() diff --git a/crates/feature_flags/src/feature_flags.rs b/crates/feature_flags/src/feature_flags.rs index 200468d6f32e158542d02cde116f7330c5b3f32b..0435f52c17ceadb30882c360623d4314459414e5 100644 --- a/crates/feature_flags/src/feature_flags.rs +++ b/crates/feature_flags/src/feature_flags.rs @@ -29,6 +29,11 @@ impl FeatureFlag for Remoting { const NAME: &'static str = "remoting"; } +pub struct TerminalInlineAssist {} +impl FeatureFlag for TerminalInlineAssist { + const NAME: &'static str = "terminal-inline-assist"; +} + pub trait FeatureFlagViewExt { fn observe_flag(&mut self, callback: F) -> Subscription where