@@ -2432,23 +2432,32 @@ impl State {
24322432 let line = ctx. lnum - 1 ;
24332433 let character = ctx. ccol - 1 ;
24342434
2435- let result = self . textDocument_completion (
2436- & json ! ( {
2435+ let mut result: Result < Value > = Ok ( Value :: Null ) ;
2436+ let completion = self . textDocument_completion ( & json ! ( {
24372437 "buftype" : "" ,
24382438 "languageId" : ctx. filetype,
24392439 "filename" : filename,
24402440 "line" : line,
24412441 "character" : character,
2442- "handle" : false ,
2443- } ) . to_params ( ) ?,
2444- ) ?;
2445- let result: Option < CompletionResponse > = serde_json:: from_value ( result) ?;
2446- let result = result. unwrap_or_else ( || CompletionResponse :: Array ( vec ! [ ] ) ) ;
2447- let is_incomplete = match result {
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 {
24482457 CompletionResponse :: Array ( _) => false ,
24492458 CompletionResponse :: List ( ref list) => list. is_incomplete ,
24502459 } ;
2451- let matches: Result < Vec < VimCompleteItem > > = match result {
2460+ let matches: Result < Vec < VimCompleteItem > > = match completion {
24522461 CompletionResponse :: Array ( arr) => arr,
24532462 CompletionResponse :: List ( list) => list. items ,
24542463 } . iter ( )
@@ -2461,7 +2470,7 @@ impl State {
24612470 json ! ( [ orig_ctx, ctx. startccol, matches, is_incomplete] ) ,
24622471 ) ?;
24632472 info ! ( "End {}" , REQUEST__NCM2OnComplete ) ;
2464- Ok ( Value :: Null )
2473+ result
24652474 }
24662475
24672476 pub fn languageClient_explainErrorAtPoint ( & mut self , params : & Option < Params > ) -> Result < Value > {
0 commit comments