@@ -275,23 +275,14 @@ fn completion_item(
275
275
) {
276
276
let insert_replace_support = config. insert_replace_support ( ) . then_some ( tdpp. position ) ;
277
277
let ref_match = item. ref_match ( ) ;
278
+ let lookup = item. lookup ( ) . to_owned ( ) ;
278
279
279
280
let mut additional_text_edits = Vec :: new ( ) ;
280
281
let mut something_to_resolve = false ;
281
282
282
- let filter_text = if fields_to_resolve. resolve_filter_text {
283
- something_to_resolve = !item. lookup ( ) . is_empty ( ) ;
284
- None
285
- } else {
286
- Some ( item. lookup ( ) . to_owned ( ) )
287
- } ;
288
-
289
283
// LSP does not allow arbitrary edits in completion, so we have to do a
290
284
// non-trivial mapping here.
291
- let text_edit = if fields_to_resolve. resolve_text_edit {
292
- something_to_resolve = true ;
293
- None
294
- } else {
285
+ let text_edit = {
295
286
let mut text_edit = None ;
296
287
let source_range = item. source_range ;
297
288
for indel in item. text_edit {
@@ -314,49 +305,25 @@ fn completion_item(
314
305
additional_text_edits. push ( text_edit) ;
315
306
}
316
307
}
317
- Some ( text_edit. unwrap ( ) )
308
+ text_edit. unwrap ( )
318
309
} ;
319
310
320
311
let insert_text_format = item. is_snippet . then_some ( lsp_types:: InsertTextFormat :: SNIPPET ) ;
321
- let tags = if fields_to_resolve. resolve_tags {
322
- something_to_resolve = item. deprecated ;
323
- None
324
- } else {
325
- item. deprecated . then ( || vec ! [ lsp_types:: CompletionItemTag :: DEPRECATED ] )
326
- } ;
312
+ let tags = item. deprecated . then ( || vec ! [ lsp_types:: CompletionItemTag :: DEPRECATED ] ) ;
327
313
let command = if item. trigger_call_info && config. client_commands ( ) . trigger_parameter_hints {
328
- if fields_to_resolve. resolve_command {
329
- something_to_resolve = true ;
330
- Some ( command:: trigger_parameter_hints ( ) )
331
- } else {
332
- None
333
- }
314
+ Some ( command:: trigger_parameter_hints ( ) )
334
315
} else {
335
316
None
336
317
} ;
337
318
338
- let detail = if fields_to_resolve. resolve_detail {
339
- something_to_resolve = item. detail . is_some ( ) ;
340
- None
341
- } else {
342
- item. detail
343
- } ;
344
-
345
- let documentation = if fields_to_resolve. resolve_documentation {
346
- something_to_resolve = item. documentation . is_some ( ) ;
347
- None
348
- } else {
349
- item. documentation . map ( documentation)
350
- } ;
351
-
352
319
let mut lsp_item = lsp_types:: CompletionItem {
353
320
label : item. label . to_string ( ) ,
354
- detail,
355
- filter_text,
321
+ detail : item . detail ,
322
+ filter_text : Some ( lookup ) ,
356
323
kind : Some ( completion_item_kind ( item. kind ) ) ,
357
- text_edit,
324
+ text_edit : Some ( text_edit ) ,
358
325
additional_text_edits : Some ( additional_text_edits) ,
359
- documentation,
326
+ documentation : item . documentation . map ( documentation ) ,
360
327
deprecated : Some ( item. deprecated ) ,
361
328
tags,
362
329
command,
@@ -365,40 +332,34 @@ fn completion_item(
365
332
} ;
366
333
367
334
if config. completion_label_details_support ( ) {
368
- if fields_to_resolve. resolve_label_details {
369
- something_to_resolve = true ;
370
- } else {
371
- lsp_item. label_details = Some ( lsp_types:: CompletionItemLabelDetails {
372
- detail : item. label_detail . as_ref ( ) . map ( ToString :: to_string) ,
373
- description : lsp_item. detail . clone ( ) ,
374
- } ) ;
375
- }
335
+ lsp_item. label_details = Some ( lsp_types:: CompletionItemLabelDetails {
336
+ detail : item. label_detail . as_ref ( ) . map ( ToString :: to_string) ,
337
+ description : lsp_item. detail . clone ( ) ,
338
+ } ) ;
376
339
} else if let Some ( label_detail) = item. label_detail {
377
340
lsp_item. label . push_str ( label_detail. as_str ( ) ) ;
378
341
}
379
342
380
343
set_score ( & mut lsp_item, max_relevance, item. relevance ) ;
381
344
382
- let imports =
383
- if config. completion ( None ) . enable_imports_on_the_fly && !item. import_to_add . is_empty ( ) {
384
- item. import_to_add
385
- . into_iter ( )
386
- . map ( |( import_path, import_name) | lsp_ext:: CompletionImport {
387
- full_import_path : import_path,
388
- imported_name : import_name,
389
- } )
390
- . collect ( )
391
- } else {
392
- Vec :: new ( )
393
- } ;
394
- if something_to_resolve || !imports. is_empty ( ) {
395
- let data = lsp_ext:: CompletionResolveData {
396
- position : tdpp. clone ( ) ,
397
- imports,
398
- version,
399
- completion_trigger_character,
400
- } ;
401
- lsp_item. data = Some ( to_value ( data) . unwrap ( ) ) ;
345
+ if config. completion ( None ) . enable_imports_on_the_fly && !item. import_to_add . is_empty ( ) {
346
+ let imports = item
347
+ . import_to_add
348
+ . into_iter ( )
349
+ . map ( |( import_path, import_name) | lsp_ext:: CompletionImport {
350
+ full_import_path : import_path,
351
+ imported_name : import_name,
352
+ } )
353
+ . collect :: < Vec < _ > > ( ) ;
354
+ if !imports. is_empty ( ) {
355
+ let data = lsp_ext:: CompletionResolveData {
356
+ position : tdpp. clone ( ) ,
357
+ imports,
358
+ version,
359
+ completion_trigger_character,
360
+ } ;
361
+ lsp_item. data = Some ( to_value ( data) . unwrap ( ) ) ;
362
+ }
402
363
}
403
364
404
365
if let Some ( ( label, indel, relevance) ) = ref_match {
0 commit comments