@@ -2432,38 +2432,35 @@ impl State {
24322432 let line = ctx. lnum - 1 ;
24332433 let character = ctx. ccol - 1 ;
24342434
2435- let mut result: Result < Value > = Ok ( Value :: Null ) ;
2436- let completion = self . textDocument_completion ( & json ! ( {
2435+ let result = self . textDocument_completion (
2436+ & json ! ( {
24372437 "buftype" : "" ,
24382438 "languageId" : ctx. filetype,
24392439 "filename" : filename,
24402440 "line" : line,
24412441 "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+ }
24672464 self . call :: < _ , u8 > (
24682465 None ,
24692466 "ncm2#complete" ,
0 commit comments