mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-24 19:10:24 +00:00
Use originating language server to resolve additional completion edits
This commit is contained in:
parent
7a67ec5743
commit
40ce099780
6 changed files with 10 additions and 4 deletions
|
@ -149,6 +149,7 @@ pub struct Completion {
|
|||
pub old_range: Range<Anchor>,
|
||||
pub new_text: String,
|
||||
pub label: CodeLabel,
|
||||
pub server_id: LanguageServerId,
|
||||
pub lsp_completion: lsp::CompletionItem,
|
||||
}
|
||||
|
||||
|
|
|
@ -433,6 +433,7 @@ pub fn serialize_completion(completion: &Completion) -> proto::Completion {
|
|||
old_start: Some(serialize_anchor(&completion.old_range.start)),
|
||||
old_end: Some(serialize_anchor(&completion.old_range.end)),
|
||||
new_text: completion.new_text.clone(),
|
||||
server_id: completion.server_id.0 as u64,
|
||||
lsp_completion: serde_json::to_vec(&completion.lsp_completion).unwrap(),
|
||||
}
|
||||
}
|
||||
|
@ -465,6 +466,7 @@ pub async fn deserialize_completion(
|
|||
lsp_completion.filter_text.as_deref(),
|
||||
)
|
||||
}),
|
||||
server_id: LanguageServerId(completion.server_id as usize),
|
||||
lsp_completion,
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1338,7 +1338,7 @@ impl LspCommand for GetCompletions {
|
|||
completions: Option<lsp::CompletionResponse>,
|
||||
_: ModelHandle<Project>,
|
||||
buffer: ModelHandle<Buffer>,
|
||||
_: LanguageServerId,
|
||||
server_id: LanguageServerId,
|
||||
cx: AsyncAppContext,
|
||||
) -> Result<Vec<Completion>> {
|
||||
let completions = if let Some(completions) = completions {
|
||||
|
@ -1425,6 +1425,7 @@ impl LspCommand for GetCompletions {
|
|||
lsp_completion.filter_text.as_deref(),
|
||||
)
|
||||
}),
|
||||
server_id,
|
||||
lsp_completion,
|
||||
}
|
||||
})
|
||||
|
|
|
@ -4470,7 +4470,8 @@ impl Project {
|
|||
let buffer_id = buffer.remote_id();
|
||||
|
||||
if self.is_local() {
|
||||
let lang_server = match self.primary_language_server_for_buffer(buffer, cx) {
|
||||
let server_id = completion.server_id;
|
||||
let lang_server = match self.language_server_for_buffer(buffer, server_id, cx) {
|
||||
Some((_, server)) => server.clone(),
|
||||
_ => return Task::ready(Ok(Default::default())),
|
||||
};
|
||||
|
|
|
@ -630,7 +630,8 @@ message Completion {
|
|||
Anchor old_start = 1;
|
||||
Anchor old_end = 2;
|
||||
string new_text = 3;
|
||||
bytes lsp_completion = 4;
|
||||
uint64 server_id = 4;
|
||||
bytes lsp_completion = 5;
|
||||
}
|
||||
|
||||
message GetCodeActions {
|
||||
|
|
|
@ -6,4 +6,4 @@ pub use conn::Connection;
|
|||
pub use peer::*;
|
||||
mod macros;
|
||||
|
||||
pub const PROTOCOL_VERSION: u32 = 59;
|
||||
pub const PROTOCOL_VERSION: u32 = 60;
|
||||
|
|
Loading…
Reference in a new issue