Skip to content

Commit

Permalink
Fixes #1991 LSP Auto-import (#2088)
Browse files Browse the repository at this point in the history
  • Loading branch information
andreytkachenko authored Apr 16, 2022
1 parent b04c425 commit dc8fef5
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
7 changes: 7 additions & 0 deletions helix-lsp/src/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,13 @@ impl Client {
completion: Some(lsp::CompletionClientCapabilities {
completion_item: Some(lsp::CompletionItemCapability {
snippet_support: Some(false),
resolve_support: Some(lsp::CompletionItemCapabilityResolveSupport {
properties: vec![
String::from("documentation"),
String::from("detail"),
String::from("additionalTextEdits"),
],
}),
..Default::default()
}),
completion_item_kind: Some(lsp::CompletionItemKindCapability {
Expand Down
14 changes: 9 additions & 5 deletions helix-term/src/ui/completion.rs
Original file line number Diff line number Diff line change
Expand Up @@ -178,17 +178,21 @@ impl Completion {
});

// 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
} else {
Self::resolve_completion_item(doc, item.clone())
.and_then(|item| item.additional_text_edits)
};

if let Some(additional_edits) = item
.additional_text_edits
if let Some(additional_edits) = resolved_item
.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() {
let transaction = util::generate_transaction_from_edits(
Expand Down

0 comments on commit dc8fef5

Please sign in to comment.