on master help sign in
Fixes #1991 LSP Auto-import (#2088)
dc8fef5Andrey Tkachenko
helix-lsp/src/client.rs+7
@@ -293,6 +293,13 @@ impl Client {
293 completion: Some(lsp::CompletionClientCapabilities {
293 completion: Some(lsp::CompletionClientCapabilities {
294 completion_item: Some(lsp::CompletionItemCapability {
294 completion_item: Some(lsp::CompletionItemCapability {
295 snippet_support: Some(false),
295 snippet_support: Some(false),
296+ resolve_support: Some(lsp::CompletionItemCapabilityResolveSupport {
297+ properties: vec![
298+ String::from("documentation"),
299+ String::from("detail"),
300+ String::from("additionalTextEdits"),
301+ ],
302+ }),
296 ..Default::default()
303 ..Default::default()
297 }),
304 }),
298 completion_item_kind: Some(lsp::CompletionItemKindCapability {
305 completion_item_kind: Some(lsp::CompletionItemKindCapability {
helix-term/src/ui/completion.rs+9−5
@@ -178,17 +178,21 @@ impl Completion {
178 });
178 });
179
179
180 // apply additional edits, mostly used to auto import unqualified types
180 // apply additional edits, mostly used to auto import unqualified types
181+ let resolved_item = if item
181− let resolved_additional_text_edits = if item.additional_text_edits.is_some() {
182+ .additional_text_edits
183+ .as_ref()
184+ .map(|edits| !edits.is_empty())
185+ .unwrap_or(false)
186+ {
182 None
187 None
183 } else {
188 } else {
184 Self::resolve_completion_item(doc, item.clone())
189 Self::resolve_completion_item(doc, item.clone())
185− .and_then(|item| item.additional_text_edits)
186 };
190 };
187
191
188− if let Some(additional_edits) = item
192+ if let Some(additional_edits) = resolved_item
189− .additional_text_edits
190 .as_ref()
193 .as_ref()
191− .or(resolved_additional_text_edits.as_ref())
194+ .and_then(|item| item.additional_text_edits.as_ref())
195+ .or(item.additional_text_edits.as_ref())
192 {
196 {
193 if !additional_edits.is_empty() {
197 if !additional_edits.is_empty() {
194 let transaction = util::generate_transaction_from_edits(
198 let transaction = util::generate_transaction_from_edits(