@@ -432,48 +432,49 @@ func (ls *INOLanguageServer) TextDocumentSignatureHelpReqFromIDE(ctx context.Con
432
432
return cppSignatureHelp , nil
433
433
}
434
434
435
- func (ls * INOLanguageServer ) TextDocumentDefinitionReqFromIDE (ctx context.Context , logger jsonrpc.FunctionLogger , p * lsp.DefinitionParams ) ([]lsp.Location , []lsp.LocationLink , * jsonrpc.ResponseError ) {
435
+ func (ls * INOLanguageServer ) TextDocumentDefinitionReqFromIDE (ctx context.Context , logger jsonrpc.FunctionLogger , ideParams * lsp.DefinitionParams ) ([]lsp.Location , []lsp.LocationLink , * jsonrpc.ResponseError ) {
436
436
ls .readLock (logger , true )
437
437
defer ls .readUnlock (logger )
438
438
439
- inoTextDocPosition := p .TextDocumentPositionParams
440
-
441
- logger .Logf ("%s" , inoTextDocPosition )
442
- cppTextDocPosition , err := ls .ide2ClangTextDocumentPositionParams (logger , inoTextDocPosition )
439
+ ideTextDocPosition := ideParams .TextDocumentPositionParams
440
+ clangTextDocPosition , err := ls .ide2ClangTextDocumentPositionParams (logger , ideTextDocPosition )
443
441
if err != nil {
444
442
logger .Logf ("Error: %s" , err )
445
443
return nil , nil , & jsonrpc.ResponseError {Code : jsonrpc .ErrorCodesInternalError , Message : err .Error ()}
446
444
}
447
445
448
- logger .Logf ("-> %s" , cppTextDocPosition )
449
- cppParams := * p
450
- cppParams .TextDocumentPositionParams = cppTextDocPosition
451
- cppLocations , cppLocationLinks , cppErr , err := ls .Clangd .conn .TextDocumentDefinition (ctx , & cppParams )
446
+ clangParams := & lsp.DefinitionParams {
447
+ TextDocumentPositionParams : clangTextDocPosition ,
448
+ WorkDoneProgressParams : ideParams .WorkDoneProgressParams ,
449
+ PartialResultParams : ideParams .PartialResultParams ,
450
+ }
451
+ clangLocations , clangLocationLinks , clangErr , err := ls .Clangd .conn .TextDocumentDefinition (ctx , clangParams )
452
452
if err != nil {
453
453
logger .Logf ("clangd communication error: %v" , err )
454
454
ls .Close ()
455
455
return nil , nil , & jsonrpc.ResponseError {Code : jsonrpc .ErrorCodesInternalError , Message : err .Error ()}
456
456
}
457
- if cppErr != nil {
458
- logger .Logf ("clangd response error: %v" , cppErr .AsError ())
459
- return nil , nil , & jsonrpc.ResponseError {Code : jsonrpc .ErrorCodesInternalError , Message : cppErr .AsError ().Error ()}
457
+ if clangErr != nil {
458
+ logger .Logf ("clangd response error: %v" , clangErr .AsError ())
459
+ return nil , nil , & jsonrpc.ResponseError {Code : jsonrpc .ErrorCodesInternalError , Message : clangErr .AsError ().Error ()}
460
460
}
461
461
462
- var inoLocations []lsp.Location
463
- if cppLocations != nil {
464
- inoLocations , err = ls .cpp2inoLocationArray (logger , cppLocations )
462
+ var ideLocations []lsp.Location
463
+ if clangLocations != nil {
464
+ ideLocations , err = ls .clang2IdeLocationsArray (logger , clangLocations )
465
465
if err != nil {
466
+ logger .Logf ("Error: %v" , err )
466
467
ls .Close ()
467
468
return nil , nil , & jsonrpc.ResponseError {Code : jsonrpc .ErrorCodesInternalError , Message : err .Error ()}
468
469
}
469
470
}
470
471
471
- var inoLocationLinks []lsp.LocationLink
472
- if cppLocationLinks != nil {
472
+ var ideLocationLinks []lsp.LocationLink
473
+ if clangLocationLinks != nil {
473
474
panic ("unimplemented" )
474
475
}
475
476
476
- return inoLocations , inoLocationLinks , nil
477
+ return ideLocations , ideLocationLinks , nil
477
478
}
478
479
479
480
func (ls * INOLanguageServer ) TextDocumentTypeDefinitionReqFromIDE (ctx context.Context , logger jsonrpc.FunctionLogger , inoParams * lsp.TypeDefinitionParams ) ([]lsp.Location , []lsp.LocationLink , * jsonrpc.ResponseError ) {
@@ -508,7 +509,7 @@ func (ls *INOLanguageServer) TextDocumentTypeDefinitionReqFromIDE(ctx context.Co
508
509
509
510
var inoLocations []lsp.Location
510
511
if cppLocations != nil {
511
- inoLocations , err = ls .cpp2inoLocationArray (logger , cppLocations )
512
+ inoLocations , err = ls .clang2IdeLocationsArray (logger , cppLocations )
512
513
if err != nil {
513
514
ls .Close ()
514
515
return nil , nil , & jsonrpc.ResponseError {Code : jsonrpc .ErrorCodesInternalError , Message : err .Error ()}
@@ -552,7 +553,7 @@ func (ls *INOLanguageServer) TextDocumentImplementationReqFromIDE(ctx context.Co
552
553
553
554
var inoLocations []lsp.Location
554
555
if cppLocations != nil {
555
- inoLocations , err = ls .cpp2inoLocationArray (logger , cppLocations )
556
+ inoLocations , err = ls .clang2IdeLocationsArray (logger , cppLocations )
556
557
if err != nil {
557
558
ls .Close ()
558
559
return nil , nil , & jsonrpc.ResponseError {Code : jsonrpc .ErrorCodesInternalError , Message : err .Error ()}
@@ -1224,23 +1225,6 @@ func (ls *INOLanguageServer) ino2cppVersionedTextDocumentIdentifier(logger jsonr
1224
1225
return res , err
1225
1226
}
1226
1227
1227
- func (ls * INOLanguageServer ) cpp2inoLocationArray (logger jsonrpc.FunctionLogger , cppLocations []lsp.Location ) ([]lsp.Location , error ) {
1228
- inoLocations := []lsp.Location {}
1229
- for _ , cppLocation := range cppLocations {
1230
- inoLocation , inPreprocessed , err := ls .cpp2inoLocation (logger , cppLocation )
1231
- if err != nil {
1232
- logger .Logf ("ERROR converting location %s: %s" , cppLocation , err )
1233
- return nil , err
1234
- }
1235
- if inPreprocessed {
1236
- logger .Logf ("ignored in-preprocessed-section location" )
1237
- continue
1238
- }
1239
- inoLocations = append (inoLocations , inoLocation )
1240
- }
1241
- return inoLocations , nil
1242
- }
1243
-
1244
1228
func (ls * INOLanguageServer ) cpp2inoCodeAction (logger jsonrpc.FunctionLogger , codeAction lsp.CodeAction , uri lsp.DocumentURI ) lsp.CodeAction {
1245
1229
inoCodeAction := lsp.CodeAction {
1246
1230
Title : codeAction .Title ,
@@ -1336,14 +1320,6 @@ func (ls *INOLanguageServer) cpp2inoWorkspaceEdit(logger jsonrpc.FunctionLogger,
1336
1320
return inoWorkspaceEdit
1337
1321
}
1338
1322
1339
- func (ls * INOLanguageServer ) cpp2inoLocation (logger jsonrpc.FunctionLogger , cppLocation lsp.Location ) (lsp.Location , bool , error ) {
1340
- inoURI , inoRange , inPreprocessed , err := ls .clang2IdeRangeAndDocumentURI (logger , cppLocation .URI , cppLocation .Range )
1341
- return lsp.Location {
1342
- URI : inoURI ,
1343
- Range : inoRange ,
1344
- }, inPreprocessed , err
1345
- }
1346
-
1347
1323
func (ls * INOLanguageServer ) cpp2inoTextEdit (logger jsonrpc.FunctionLogger , cppURI lsp.DocumentURI , cppEdit lsp.TextEdit ) (lsp.DocumentURI , lsp.TextEdit , bool , error ) {
1348
1324
inoURI , inoRange , inPreprocessed , err := ls .clang2IdeRangeAndDocumentURI (logger , cppURI , cppEdit .Range )
1349
1325
inoEdit := cppEdit
0 commit comments