@@ -2432,38 +2432,35 @@ impl State {
2432
2432
let line = ctx. lnum - 1 ;
2433
2433
let character = ctx. ccol - 1 ;
2434
2434
2435
- let mut result: Result < Value > = Ok ( Value :: Null ) ;
2436
- let completion = self . textDocument_completion ( & json ! ( {
2435
+ let result = self . textDocument_completion (
2436
+ & json ! ( {
2437
2437
"buftype" : "" ,
2438
2438
"languageId" : ctx. filetype,
2439
2439
"filename" : filename,
2440
2440
"line" : line,
2441
2441
"character" : character,
2442
- "handle" : false } ) . to_params ( ) ?)
2443
- . unwrap_or_else ( |err| {
2444
- result = Err ( err) ;
2445
- Value :: Null
2446
- } ) ;
2447
- let completion: CompletionResponse = serde_json:: from_value ( completion)
2448
- . unwrap_or_else ( |err| {
2449
- if result. is_ok ( ) {
2450
- result = Err ( err. into ( ) ) ;
2451
- }
2452
- CompletionResponse :: List ( CompletionList {
2453
- is_incomplete : true ,
2454
- items : vec ! [ ] } )
2455
- } ) ;
2456
- let is_incomplete = match completion {
2457
- CompletionResponse :: Array ( _) => false ,
2458
- CompletionResponse :: List ( ref list) => list. is_incomplete ,
2459
- } ;
2460
- let matches: Result < Vec < VimCompleteItem > > = match completion {
2461
- CompletionResponse :: Array ( arr) => arr,
2462
- CompletionResponse :: List ( list) => list. items ,
2463
- } . iter ( )
2464
- . map ( FromLSP :: from_lsp)
2465
- . collect ( ) ;
2466
- let matches = matches?;
2442
+ "handle" : false } )
2443
+ . to_params ( ) ?,
2444
+ ) ;
2445
+ let is_incomplete;
2446
+ let matches;
2447
+ if let Ok ( ref value) = result {
2448
+ let completion = serde_json:: from_value ( value. clone ( ) ) ?;
2449
+ is_incomplete = match completion {
2450
+ CompletionResponse :: List ( ref list) => list. is_incomplete ,
2451
+ _ => true ,
2452
+ } ;
2453
+ let matches_result: Result < Vec < VimCompleteItem > > = match completion {
2454
+ CompletionResponse :: Array ( arr) => arr,
2455
+ CompletionResponse :: List ( list) => list. items ,
2456
+ } . iter ( )
2457
+ . map ( FromLSP :: from_lsp)
2458
+ . collect ( ) ;
2459
+ matches = matches_result?;
2460
+ } else {
2461
+ is_incomplete = false ;
2462
+ matches = vec ! [ ] ;
2463
+ }
2467
2464
self . call :: < _ , u8 > (
2468
2465
None ,
2469
2466
"ncm2#complete" ,
0 commit comments