Summarize file in the background
This commit is contained in:
parent
f52200a340
commit
d70014cfd0
1 changed files with 24 additions and 24 deletions
|
@ -546,15 +546,16 @@ impl AssistantPanel {
|
||||||
self.inline_prompt_history.pop_front();
|
self.inline_prompt_history.pop_front();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let codegen = pending_assist.codegen.clone();
|
||||||
let snapshot = editor.read(cx).buffer().read(cx).snapshot(cx);
|
let snapshot = editor.read(cx).buffer().read(cx).snapshot(cx);
|
||||||
let range = pending_assist.codegen.read(cx).range();
|
let range = codegen.read(cx).range();
|
||||||
let start = snapshot.point_to_buffer_offset(range.start);
|
let start = snapshot.point_to_buffer_offset(range.start);
|
||||||
let end = snapshot.point_to_buffer_offset(range.end);
|
let end = snapshot.point_to_buffer_offset(range.end);
|
||||||
let (buffer, range) = if let Some((start, end)) = start.zip(end) {
|
let (buffer, range) = if let Some((start, end)) = start.zip(end) {
|
||||||
let (start_buffer, start_buffer_offset) = start;
|
let (start_buffer, start_buffer_offset) = start;
|
||||||
let (end_buffer, end_buffer_offset) = end;
|
let (end_buffer, end_buffer_offset) = end;
|
||||||
if start_buffer.remote_id() == end_buffer.remote_id() {
|
if start_buffer.remote_id() == end_buffer.remote_id() {
|
||||||
(start_buffer, start_buffer_offset..end_buffer_offset)
|
(start_buffer.clone(), start_buffer_offset..end_buffer_offset)
|
||||||
} else {
|
} else {
|
||||||
self.finish_inline_assist(inline_assist_id, false, cx);
|
self.finish_inline_assist(inline_assist_id, false, cx);
|
||||||
return;
|
return;
|
||||||
|
@ -574,17 +575,13 @@ impl AssistantPanel {
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
let language_name = language_name.as_deref();
|
|
||||||
|
|
||||||
let codegen_kind = pending_assist.codegen.read(cx).kind().clone();
|
|
||||||
let prompt = generate_content_prompt(
|
|
||||||
user_prompt.to_string(),
|
|
||||||
language_name,
|
|
||||||
&buffer,
|
|
||||||
range,
|
|
||||||
codegen_kind,
|
|
||||||
);
|
|
||||||
|
|
||||||
|
let codegen_kind = codegen.read(cx).kind().clone();
|
||||||
|
let user_prompt = user_prompt.to_string();
|
||||||
|
let prompt = cx.background().spawn(async move {
|
||||||
|
let language_name = language_name.as_deref();
|
||||||
|
generate_content_prompt(user_prompt, language_name, &buffer, range, codegen_kind)
|
||||||
|
});
|
||||||
let mut messages = Vec::new();
|
let mut messages = Vec::new();
|
||||||
let mut model = settings::get::<AssistantSettings>(cx)
|
let mut model = settings::get::<AssistantSettings>(cx)
|
||||||
.default_open_ai_model
|
.default_open_ai_model
|
||||||
|
@ -600,18 +597,21 @@ impl AssistantPanel {
|
||||||
model = conversation.model.clone();
|
model = conversation.model.clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
messages.push(RequestMessage {
|
cx.spawn(|_, mut cx| async move {
|
||||||
role: Role::User,
|
let prompt = prompt.await;
|
||||||
content: prompt,
|
|
||||||
});
|
messages.push(RequestMessage {
|
||||||
let request = OpenAIRequest {
|
role: Role::User,
|
||||||
model: model.full_name().into(),
|
content: prompt,
|
||||||
messages,
|
});
|
||||||
stream: true,
|
let request = OpenAIRequest {
|
||||||
};
|
model: model.full_name().into(),
|
||||||
pending_assist
|
messages,
|
||||||
.codegen
|
stream: true,
|
||||||
.update(cx, |codegen, cx| codegen.start(request, cx));
|
};
|
||||||
|
codegen.update(&mut cx, |codegen, cx| codegen.start(request, cx));
|
||||||
|
})
|
||||||
|
.detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn update_highlights_for_editor(
|
fn update_highlights_for_editor(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue