Fixes #1991 LSP Auto-import (#2088)

pull/2137/head
Andrey Tkachenko 2 years ago committed by GitHub
parent b04c425c63
commit dc8fef5dd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -293,6 +293,13 @@ impl Client {
completion: Some(lsp::CompletionClientCapabilities { completion: Some(lsp::CompletionClientCapabilities {
completion_item: Some(lsp::CompletionItemCapability { completion_item: Some(lsp::CompletionItemCapability {
snippet_support: Some(false), snippet_support: Some(false),
resolve_support: Some(lsp::CompletionItemCapabilityResolveSupport {
properties: vec![
String::from("documentation"),
String::from("detail"),
String::from("additionalTextEdits"),
],
}),
..Default::default() ..Default::default()
}), }),
completion_item_kind: Some(lsp::CompletionItemKindCapability { completion_item_kind: Some(lsp::CompletionItemKindCapability {

@ -178,17 +178,21 @@ impl Completion {
}); });
// apply additional edits, mostly used to auto import unqualified types // apply additional edits, mostly used to auto import unqualified types
let resolved_additional_text_edits = if item.additional_text_edits.is_some() { let resolved_item = if item
.additional_text_edits
.as_ref()
.map(|edits| !edits.is_empty())
.unwrap_or(false)
{
None None
} else { } else {
Self::resolve_completion_item(doc, item.clone()) Self::resolve_completion_item(doc, item.clone())
.and_then(|item| item.additional_text_edits)
}; };
if let Some(additional_edits) = item if let Some(additional_edits) = resolved_item
.additional_text_edits
.as_ref() .as_ref()
.or(resolved_additional_text_edits.as_ref()) .and_then(|item| item.additional_text_edits.as_ref())
.or(item.additional_text_edits.as_ref())
{ {
if !additional_edits.is_empty() { if !additional_edits.is_empty() {
let transaction = util::generate_transaction_from_edits( let transaction = util::generate_transaction_from_edits(

Loading…
Cancel
Save