@@ -404,6 +404,7 @@ func (ls *INOLanguageServer) TextDocumentHoverReqFromIDE(ctx context.Context, lo
404404
405405 clangParams := & lsp.HoverParams {
406406 TextDocumentPositionParams : clangTextDocPosition ,
407+ WorkDoneProgressParams : ideParams .WorkDoneProgressParams ,
407408 }
408409 clangResp , clangErr , err := ls .Clangd .conn .TextDocumentHover (ctx , clangParams )
409410 if err != nil {
@@ -417,22 +418,26 @@ func (ls *INOLanguageServer) TextDocumentHoverReqFromIDE(ctx context.Context, lo
417418 }
418419
419420 if clangResp == nil {
420- logger .Logf ("response: nil " )
421+ logger .Logf ("null response " )
421422 return nil , nil
422423 }
423424
424- _ , r , inPreprocessed , err := ls .clang2IdeRangeAndDocumentURI (logger , clangParams .TextDocument .URI , * clangResp .Range )
425- if err != nil {
426- logger .Logf ("error during range conversion: %v" , err )
427- ls .Close ()
428- return nil , & jsonrpc.ResponseError {Code : jsonrpc .ErrorCodesInternalError , Message : err .Error ()}
429- }
430- if inPreprocessed {
431- return nil , nil
425+ var ideRange * lsp.Range
426+ if clangResp .Range != nil {
427+ _ , r , inPreprocessed , err := ls .clang2IdeRangeAndDocumentURI (logger , clangParams .TextDocument .URI , * clangResp .Range )
428+ if err != nil {
429+ logger .Logf ("error during range conversion: %v" , err )
430+ ls .Close ()
431+ return nil , & jsonrpc.ResponseError {Code : jsonrpc .ErrorCodesInternalError , Message : err .Error ()}
432+ }
433+ if inPreprocessed {
434+ return nil , nil
435+ }
436+ ideRange = & r
432437 }
433438 ideResp := lsp.Hover {
434439 Contents : clangResp .Contents ,
435- Range : & r ,
440+ Range : ideRange ,
436441 }
437442 logger .Logf ("Hover content: %s" , strconv .Quote (ideResp .Contents .Value ))
438443 return & ideResp , nil
0 commit comments