Do not resolve completions if extra edits are available

This commit is contained in:
Kirill Bulatov 2023-07-12 19:29:20 +03:00
parent 6d96c6ef51
commit c732aa1617
3 changed files with 98 additions and 15 deletions

View file

@ -4446,11 +4446,18 @@ impl Project {
};
cx.spawn(|this, mut cx| async move {
let resolved_completion = lang_server
.request::<lsp::request::ResolveCompletionItem>(completion.lsp_completion)
.await?;
let additional_text_edits = if let Some(edits) =
completion.lsp_completion.additional_text_edits.as_ref()
{
Some(edits.clone())
} else {
lang_server
.request::<lsp::request::ResolveCompletionItem>(completion.lsp_completion)
.await?
.additional_text_edits
};
if let Some(edits) = resolved_completion.additional_text_edits {
if let Some(edits) = additional_text_edits {
let edits = this
.update(&mut cx, |this, cx| {
this.edits_from_lsp(