@@ -14,13 +14,13 @@ import (
14
14
"github.com/arduino/arduino-cli/executils"
15
15
"github.com/arduino/arduino-language-server/sourcemapper"
16
16
"github.com/arduino/arduino-language-server/streams"
17
- "github.com/arduino/arduino-language-server/textutils"
18
17
"github.com/arduino/go-paths-helper"
19
18
"github.com/fatih/color"
20
19
"github.com/pkg/errors"
21
20
"go.bug.st/json"
22
21
"go.bug.st/lsp"
23
22
"go.bug.st/lsp/jsonrpc"
23
+ "go.bug.st/lsp/textedits"
24
24
)
25
25
26
26
var globalCliPath string
@@ -944,17 +944,17 @@ func (ls *INOLanguageServer) TextDocumentDidChangeNotifFromIDE(logger jsonrpc.Fu
944
944
945
945
logger .Logf ("didChange(%s)" , inoParams .TextDocument )
946
946
for _ , change := range inoParams .ContentChanges {
947
- logger .Logf ("> %s" , change )
947
+ logger .Logf (" > %s" , change )
948
948
}
949
949
950
950
if cppParams , err := ls .didChange (logger , inoParams ); err != nil {
951
- logger .Logf ("--E Error: %s" , err )
951
+ logger .Logf ("Error: %s" , err )
952
952
} else if cppParams == nil {
953
- logger .Logf ("--X Notification is not propagated to clangd" )
953
+ logger .Logf ("Notification is not propagated to clangd" )
954
954
} else {
955
- logger .Logf ("LS --> CL NOTIF didChange(%s@%d)" , cppParams .TextDocument )
955
+ logger .Logf ("to Clang: didChange(%s@%d)" , cppParams .TextDocument )
956
956
for _ , change := range cppParams .ContentChanges {
957
- logger .Logf (" > %s" , change )
957
+ logger .Logf (" > %s" , change )
958
958
}
959
959
if err := ls .Clangd .conn .TextDocumentDidChange (cppParams ); err != nil {
960
960
// Exit the process and trigger a restart by the client in case of a severe error
@@ -1015,27 +1015,28 @@ func (ls *INOLanguageServer) PublishDiagnosticsNotifFromClangd(logger jsonrpc.Fu
1015
1015
ls .readLock (logger , false )
1016
1016
defer ls .readUnlock (logger )
1017
1017
1018
- logger .Logf ("from clang %s (%d diagnostics):" , cppParams .URI , cppParams .Diagnostics )
1018
+ logger .Logf ("%s (%d diagnostics):" , cppParams .URI , len ( cppParams .Diagnostics ) )
1019
1019
for _ , diag := range cppParams .Diagnostics {
1020
- logger .Logf ("> %d:%d - %v : %s" , diag .Range .Start . Line , diag .Range . Start . Character , diag . Severity , diag .Code )
1020
+ logger .Logf (" > %s - %s : %s" , diag .Range .Start , diag .Severity , string ( diag .Code ) )
1021
1021
}
1022
1022
1023
1023
// the diagnostics on sketch.cpp.ino once mapped into their
1024
1024
// .ino counter parts may span over multiple .ino files...
1025
1025
allInoParams , err := ls .cpp2inoDiagnostics (logger , cppParams )
1026
1026
if err != nil {
1027
- logger .Logf (" Error converting diagnostics to .ino: %s" , err )
1027
+ logger .Logf ("Error converting diagnostics to .ino: %s" , err )
1028
1028
return
1029
1029
}
1030
1030
1031
1031
// Push back to IDE the converted diagnostics
1032
+ logger .Logf ("diagnostics to IDE:" )
1032
1033
for _ , inoParams := range allInoParams {
1033
- logger .Logf ("to IDE: %s (%d diagnostics):" , inoParams .URI , len (inoParams .Diagnostics ))
1034
+ logger .Logf (" - %s (%d diagnostics):" , inoParams .URI , len (inoParams .Diagnostics ))
1034
1035
for _ , diag := range inoParams .Diagnostics {
1035
- logger .Logf (" > %d:%d - %v : %s" , diag .Range .Start . Line , diag . Range . Start . Character , diag .Severity , diag .Code )
1036
+ logger .Logf (" > %s - %s : %s" , diag .Range .Start , diag .Severity , diag .Code )
1036
1037
}
1037
1038
if err := ls .IDE .conn .TextDocumentPublishDiagnostics (inoParams ); err != nil {
1038
- logger .Logf (" Error sending diagnostics to IDE: %s" , err )
1039
+ logger .Logf ("Error sending diagnostics to IDE: %s" , err )
1039
1040
return
1040
1041
}
1041
1042
}
@@ -1216,7 +1217,7 @@ func (ls *INOLanguageServer) refreshCppDocumentSymbols(logger jsonrpc.FunctionLo
1216
1217
symbolsCanary := ""
1217
1218
for _ , symbol := range cppDocumentSymbols {
1218
1219
logger .Logf (" symbol: %s %s %s" , symbol .Kind , symbol .Name , symbol .Range )
1219
- if symbolText , err := textutils .ExtractRange (ls .sketchMapper .CppText .Text , symbol .Range ); err != nil {
1220
+ if symbolText , err := textedits .ExtractRange (ls .sketchMapper .CppText .Text , symbol .Range ); err != nil {
1220
1221
logger .Logf (" > invalid range: %s" , err )
1221
1222
symbolsCanary += "/"
1222
1223
} else if end := strings .Index (symbolText , "{" ); end != - 1 {
@@ -1298,7 +1299,7 @@ func (ls *INOLanguageServer) ino2cppTextDocumentItem(logger jsonrpc.FunctionLogg
1298
1299
func (ls * INOLanguageServer ) didChange (logger jsonrpc.FunctionLogger , inoDidChangeParams * lsp.DidChangeTextDocumentParams ) (* lsp.DidChangeTextDocumentParams , error ) {
1299
1300
// Clear all RangeLengths: it's a deprecated field and if the byte count is wrong the
1300
1301
// source text file will be unloaded from clangd without notice, leading to a "non-added
1301
- // docuemtn " error for all subsequent requests.
1302
+ // document " error for all subsequent requests.
1302
1303
// https://github.com/clangd/clangd/issues/717#issuecomment-793220007
1303
1304
for i := range inoDidChangeParams .ContentChanges {
1304
1305
inoDidChangeParams .ContentChanges [i ].RangeLength = nil
@@ -1308,14 +1309,12 @@ func (ls *INOLanguageServer) didChange(logger jsonrpc.FunctionLogger, inoDidChan
1308
1309
1309
1310
// Apply the change to the tracked sketch file.
1310
1311
trackedInoID := inoDoc .URI .AsPath ().String ()
1311
- trackedInoDoc , ok := ls .trackedInoDocs [trackedInoID ]
1312
- if ! ok {
1312
+ if doc , ok := ls .trackedInoDocs [trackedInoID ]; ! ok {
1313
1313
return nil , unknownURI (inoDoc .URI )
1314
- }
1315
- if updatedTrackedInoDoc , err := textutils .ApplyLSPTextDocumentContentChangeEvent (trackedInoDoc , inoDidChangeParams .ContentChanges , inoDoc .Version ); err != nil {
1314
+ } else if updatedDoc , err := textedits .ApplyLSPTextDocumentContentChangeEvent (doc , inoDidChangeParams ); err != nil {
1316
1315
return nil , err
1317
1316
} else {
1318
- ls .trackedInoDocs [trackedInoID ] = updatedTrackedInoDoc
1317
+ ls .trackedInoDocs [trackedInoID ] = updatedDoc
1319
1318
}
1320
1319
1321
1320
logger .Logf ("Tracked SKETCH file:----------+\n " + ls .trackedInoDocs [trackedInoID ].Text + "\n ----------------------" )
0 commit comments