use ssh lsp store (#17655)
Release Notes: - ssh remoting: Added support for booting langauge servers (in limited circumstances) --------- Co-authored-by: Mikayla <mikayla@zed.dev>
This commit is contained in:
parent
130f19d8f9
commit
36eb1c15ea
45 changed files with 1553 additions and 671 deletions
|
@ -53,7 +53,8 @@ use language_model::{
|
|||
};
|
||||
use multi_buffer::MultiBufferRow;
|
||||
use picker::{Picker, PickerDelegate};
|
||||
use project::{Project, ProjectLspAdapterDelegate, Worktree};
|
||||
use project::lsp_store::ProjectLspAdapterDelegate;
|
||||
use project::{Project, Worktree};
|
||||
use search::{buffer_search::DivRegistrar, BufferSearchBar};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use settings::{update_settings_file, Settings};
|
||||
|
@ -5340,9 +5341,17 @@ fn make_lsp_adapter_delegate(
|
|||
.worktrees(cx)
|
||||
.next()
|
||||
.ok_or_else(|| anyhow!("no worktrees when constructing ProjectLspAdapterDelegate"))?;
|
||||
let fs = if project.is_local() {
|
||||
Some(project.fs().clone())
|
||||
} else {
|
||||
None
|
||||
};
|
||||
let http_client = project.client().http_client().clone();
|
||||
project.lsp_store().update(cx, |lsp_store, cx| {
|
||||
Ok(ProjectLspAdapterDelegate::new(lsp_store, &worktree, cx)
|
||||
as Arc<dyn LspAdapterDelegate>)
|
||||
Ok(
|
||||
ProjectLspAdapterDelegate::new(lsp_store, &worktree, http_client, fs, cx)
|
||||
as Arc<dyn LspAdapterDelegate>,
|
||||
)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
|
|
@ -2377,7 +2377,7 @@ impl Codegen {
|
|||
// If Markdown or No Language is Known, increase the randomness for more creative output
|
||||
// If Code, decrease temperature to get more deterministic outputs
|
||||
let temperature = if let Some(language) = language_name.clone() {
|
||||
if language.as_ref() == "Markdown" {
|
||||
if language == "Markdown".into() {
|
||||
1.0
|
||||
} else {
|
||||
0.5
|
||||
|
@ -2386,7 +2386,7 @@ impl Codegen {
|
|||
1.0
|
||||
};
|
||||
|
||||
let language_name = language_name.as_deref();
|
||||
let language_name = language_name.as_ref();
|
||||
let start = buffer.point_to_buffer_offset(edit_range.start);
|
||||
let end = buffer.point_to_buffer_offset(edit_range.end);
|
||||
let (buffer, range) = if let Some((start, end)) = start.zip(end) {
|
||||
|
|
|
@ -4,7 +4,7 @@ use fs::Fs;
|
|||
use futures::StreamExt;
|
||||
use gpui::AssetSource;
|
||||
use handlebars::{Handlebars, RenderError};
|
||||
use language::BufferSnapshot;
|
||||
use language::{BufferSnapshot, LanguageName};
|
||||
use parking_lot::Mutex;
|
||||
use serde::Serialize;
|
||||
use std::{ops::Range, path::PathBuf, sync::Arc, time::Duration};
|
||||
|
@ -204,11 +204,11 @@ impl PromptBuilder {
|
|||
pub fn generate_content_prompt(
|
||||
&self,
|
||||
user_prompt: String,
|
||||
language_name: Option<&str>,
|
||||
language_name: Option<&LanguageName>,
|
||||
buffer: BufferSnapshot,
|
||||
range: Range<usize>,
|
||||
) -> Result<String, RenderError> {
|
||||
let content_type = match language_name {
|
||||
let content_type = match language_name.as_ref().map(|l| l.0.as_ref()) {
|
||||
None | Some("Markdown" | "Plain Text") => "text",
|
||||
Some(_) => "code",
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue