diff --git a/crates/agent/src/assistant_panel.rs b/crates/agent/src/assistant_panel.rs index 4fa351ef42fd09909f6c4622d51e29f4b0fd6afa..1a030cabcd78f36d6222745ea622cf4e69dbd26f 100644 --- a/crates/agent/src/assistant_panel.rs +++ b/crates/agent/src/assistant_panel.rs @@ -2789,7 +2789,7 @@ impl rules_library::InlineAssistDelegate for PromptLibraryInlineAssist { fn assist( &self, prompt_editor: &Entity, - _initial_prompt: Option, + initial_prompt: Option, window: &mut Window, cx: &mut Context, ) { @@ -2813,6 +2813,7 @@ impl rules_library::InlineAssistDelegate for PromptLibraryInlineAssist { prompt_store, thread_store, text_thread_store, + initial_prompt, window, cx, ) diff --git a/crates/agent/src/inline_assistant.rs b/crates/agent/src/inline_assistant.rs index 7800a56f2b4bc5e13fa5199c68bc392db2bb96da..d98cc59f3c84973e6acfb06e9dbf68a2d8e456f6 100644 --- a/crates/agent/src/inline_assistant.rs +++ b/crates/agent/src/inline_assistant.rs @@ -227,7 +227,7 @@ impl InlineAssistant { pub fn inline_assist( workspace: &mut Workspace, - _action: &zed_actions::assistant::InlineAssist, + action: &zed_actions::assistant::InlineAssist, window: &mut Window, cx: &mut Context, ) { @@ -273,6 +273,7 @@ impl InlineAssistant { prompt_store, thread_store, text_thread_store, + action.prompt.clone(), window, cx, ) @@ -287,6 +288,7 @@ impl InlineAssistant { prompt_store, thread_store, text_thread_store, + action.prompt.clone(), window, cx, ) @@ -344,6 +346,7 @@ impl InlineAssistant { prompt_store: Option>, thread_store: Option>, text_thread_store: Option>, + initial_prompt: Option, window: &mut Window, cx: &mut App, ) { @@ -442,8 +445,12 @@ impl InlineAssistant { } let assist_group_id = self.next_assist_group_id.post_inc(); - let prompt_buffer = - cx.new(|cx| MultiBuffer::singleton(cx.new(|cx| Buffer::local(String::new(), cx)), cx)); + let prompt_buffer = cx.new(|cx| { + MultiBuffer::singleton( + cx.new(|cx| Buffer::local(initial_prompt.unwrap_or_default(), cx)), + cx, + ) + }); let mut assists = Vec::new(); let mut assist_to_focus = None; diff --git a/crates/agent/src/terminal_inline_assistant.rs b/crates/agent/src/terminal_inline_assistant.rs index 6f2aa0c504740a7f030fa8f23510dbb7e6a5db36..e9c24b50da4d4cc8b983e01cf03b2ffadf31d3c8 100644 --- a/crates/agent/src/terminal_inline_assistant.rs +++ b/crates/agent/src/terminal_inline_assistant.rs @@ -72,13 +72,18 @@ impl TerminalInlineAssistant { prompt_store: Option>, thread_store: Option>, text_thread_store: Option>, + initial_prompt: Option, window: &mut Window, cx: &mut App, ) { let terminal = terminal_view.read(cx).terminal().clone(); let assist_id = self.next_assist_id.post_inc(); - let prompt_buffer = - cx.new(|cx| MultiBuffer::singleton(cx.new(|cx| Buffer::local(String::new(), cx)), cx)); + let prompt_buffer = cx.new(|cx| { + MultiBuffer::singleton( + cx.new(|cx| Buffer::local(initial_prompt.unwrap_or_default(), cx)), + cx, + ) + }); let context_store = cx.new(|_cx| ContextStore::new(project, thread_store.clone())); let codegen = cx.new(|_| TerminalCodegen::new(terminal, self.telemetry.clone()));