From ba4d4c8e1c892b3a21107ed01ea61aaec4f12590 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Tue, 14 May 2024 17:03:39 -0400 Subject: [PATCH] assistant: Restructure ambient context in preparation for adding more (#11822) This PR restructures the ambient context in the `assistant` crate to make it more amenable to adding more kinds of ambient context. Release Notes: - N/A --- crates/assistant/src/ambient_context.rs | 8 +++++ .../src/ambient_context/recent_buffers.rs | 25 ++++++++++++++++ crates/assistant/src/assistant.rs | 1 + crates/assistant/src/assistant_panel.rs | 29 +------------------ 4 files changed, 35 insertions(+), 28 deletions(-) create mode 100644 crates/assistant/src/ambient_context.rs create mode 100644 crates/assistant/src/ambient_context/recent_buffers.rs diff --git a/crates/assistant/src/ambient_context.rs b/crates/assistant/src/ambient_context.rs new file mode 100644 index 0000000000000000000000000000000000000000..55fe3e605115aa97baf967587a031ac842e2d7fb --- /dev/null +++ b/crates/assistant/src/ambient_context.rs @@ -0,0 +1,8 @@ +mod recent_buffers; + +pub use recent_buffers::*; + +#[derive(Default)] +pub struct AmbientContext { + pub recent_buffers: RecentBuffersContext, +} diff --git a/crates/assistant/src/ambient_context/recent_buffers.rs b/crates/assistant/src/ambient_context/recent_buffers.rs new file mode 100644 index 0000000000000000000000000000000000000000..4f6280b43c14c2c41d883d207c2cfd1eb9f89232 --- /dev/null +++ b/crates/assistant/src/ambient_context/recent_buffers.rs @@ -0,0 +1,25 @@ +use gpui::{Subscription, Task, WeakModel}; +use language::Buffer; + +pub struct RecentBuffersContext { + pub enabled: bool, + pub buffers: Vec, + pub message: String, + pub pending_message: Option>, +} + +pub struct RecentBuffer { + pub buffer: WeakModel, + pub _subscription: Subscription, +} + +impl Default for RecentBuffersContext { + fn default() -> Self { + Self { + enabled: true, + buffers: Vec::new(), + message: String::new(), + pending_message: None, + } + } +} diff --git a/crates/assistant/src/assistant.rs b/crates/assistant/src/assistant.rs index 949cc1741d6bb05c827fc4c6de02919b93718050..1873c2179bb87b2fd294e186af84fc6787a280af 100644 --- a/crates/assistant/src/assistant.rs +++ b/crates/assistant/src/assistant.rs @@ -1,3 +1,4 @@ +mod ambient_context; pub mod assistant_panel; pub mod assistant_settings; mod codegen; diff --git a/crates/assistant/src/assistant_panel.rs b/crates/assistant/src/assistant_panel.rs index f3136b6139389a3801303e2073767f54274fb426..b8b5c8b8adab288a162a1d039353ef495acb5bc5 100644 --- a/crates/assistant/src/assistant_panel.rs +++ b/crates/assistant/src/assistant_panel.rs @@ -1,3 +1,4 @@ +use crate::ambient_context::{AmbientContext, RecentBuffer}; use crate::{ assistant_settings::{AssistantDockPosition, AssistantSettings, ZedDotDevModel}, codegen::{self, Codegen, CodegenKind}, @@ -1367,34 +1368,6 @@ pub struct Conversation { telemetry: Option>, } -#[derive(Default)] -struct AmbientContext { - recent_buffers: RecentBuffersContext, -} - -struct RecentBuffersContext { - enabled: bool, - buffers: Vec, - message: String, - pending_message: Option>, -} - -struct RecentBuffer { - buffer: WeakModel, - _subscription: Subscription, -} - -impl Default for RecentBuffersContext { - fn default() -> Self { - Self { - enabled: true, - buffers: Vec::new(), - message: String::new(), - pending_message: None, - } - } -} - impl EventEmitter for Conversation {} impl Conversation {