Skip to content

Commit 5189b8b

Browse files
committed
Fixed TextDocumentHoverReqFromIDE handling of null ranges
1 parent de32cd3 commit 5189b8b

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

ls/ls.go

+15-10
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)