Skip to content

Commit d0c0168

Browse files
committed
Moved textutils in lsp package, slightly improved logging
1 parent 98bbd42 commit d0c0168

File tree

6 files changed

+27
-315
lines changed

6 files changed

+27
-315
lines changed

Diff for: .gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
.old
12
build.sh
2-
arduino-language-server*
3+
arduino-language-server*

Diff for: ls/builder.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,17 @@ func (ls *INOLanguageServer) generateBuildEnvironment(logger jsonrpc.FunctionLog
103103
}
104104
data.Overrides[rel.String()] = trackedFile.Text
105105
}
106+
107+
for filename, override := range data.Overrides {
108+
logger.Logf("Dumped %s override:\n%s", filename, override)
109+
}
110+
106111
var overridesJSON *paths.Path
107112
if jsonBytes, err := json.MarshalIndent(data, "", " "); err != nil {
108113
return errors.WithMessage(err, "dumping tracked files")
109114
} else if tmp, err := paths.WriteToTempFile(jsonBytes, nil, ""); err != nil {
110115
return errors.WithMessage(err, "dumping tracked files")
111116
} else {
112-
logger.Logf("Dumped overrides: %s", string(jsonBytes))
113117
overridesJSON = tmp
114118
defer tmp.Remove()
115119
}

Diff for: ls/ls.go

+18-19
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ import (
1414
"github.com/arduino/arduino-cli/executils"
1515
"github.com/arduino/arduino-language-server/sourcemapper"
1616
"github.com/arduino/arduino-language-server/streams"
17-
"github.com/arduino/arduino-language-server/textutils"
1817
"github.com/arduino/go-paths-helper"
1918
"github.com/fatih/color"
2019
"github.com/pkg/errors"
2120
"go.bug.st/json"
2221
"go.bug.st/lsp"
2322
"go.bug.st/lsp/jsonrpc"
23+
"go.bug.st/lsp/textedits"
2424
)
2525

2626
var globalCliPath string
@@ -944,17 +944,17 @@ func (ls *INOLanguageServer) TextDocumentDidChangeNotifFromIDE(logger jsonrpc.Fu
944944

945945
logger.Logf("didChange(%s)", inoParams.TextDocument)
946946
for _, change := range inoParams.ContentChanges {
947-
logger.Logf("> %s", change)
947+
logger.Logf(" > %s", change)
948948
}
949949

950950
if cppParams, err := ls.didChange(logger, inoParams); err != nil {
951-
logger.Logf("--E Error: %s", err)
951+
logger.Logf("Error: %s", err)
952952
} else if cppParams == nil {
953-
logger.Logf("--X Notification is not propagated to clangd")
953+
logger.Logf("Notification is not propagated to clangd")
954954
} else {
955-
logger.Logf("LS --> CL NOTIF didChange(%s@%d)", cppParams.TextDocument)
955+
logger.Logf("to Clang: didChange(%s@%d)", cppParams.TextDocument)
956956
for _, change := range cppParams.ContentChanges {
957-
logger.Logf(" > %s", change)
957+
logger.Logf(" > %s", change)
958958
}
959959
if err := ls.Clangd.conn.TextDocumentDidChange(cppParams); err != nil {
960960
// 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
10151015
ls.readLock(logger, false)
10161016
defer ls.readUnlock(logger)
10171017

1018-
logger.Logf("from clang %s (%d diagnostics):", cppParams.URI, cppParams.Diagnostics)
1018+
logger.Logf("%s (%d diagnostics):", cppParams.URI, len(cppParams.Diagnostics))
10191019
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))
10211021
}
10221022

10231023
// the diagnostics on sketch.cpp.ino once mapped into their
10241024
// .ino counter parts may span over multiple .ino files...
10251025
allInoParams, err := ls.cpp2inoDiagnostics(logger, cppParams)
10261026
if err != nil {
1027-
logger.Logf(" Error converting diagnostics to .ino: %s", err)
1027+
logger.Logf("Error converting diagnostics to .ino: %s", err)
10281028
return
10291029
}
10301030

10311031
// Push back to IDE the converted diagnostics
1032+
logger.Logf("diagnostics to IDE:")
10321033
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))
10341035
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)
10361037
}
10371038
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)
10391040
return
10401041
}
10411042
}
@@ -1216,7 +1217,7 @@ func (ls *INOLanguageServer) refreshCppDocumentSymbols(logger jsonrpc.FunctionLo
12161217
symbolsCanary := ""
12171218
for _, symbol := range cppDocumentSymbols {
12181219
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 {
12201221
logger.Logf(" > invalid range: %s", err)
12211222
symbolsCanary += "/"
12221223
} else if end := strings.Index(symbolText, "{"); end != -1 {
@@ -1298,7 +1299,7 @@ func (ls *INOLanguageServer) ino2cppTextDocumentItem(logger jsonrpc.FunctionLogg
12981299
func (ls *INOLanguageServer) didChange(logger jsonrpc.FunctionLogger, inoDidChangeParams *lsp.DidChangeTextDocumentParams) (*lsp.DidChangeTextDocumentParams, error) {
12991300
// Clear all RangeLengths: it's a deprecated field and if the byte count is wrong the
13001301
// 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.
13021303
// https://github.com/clangd/clangd/issues/717#issuecomment-793220007
13031304
for i := range inoDidChangeParams.ContentChanges {
13041305
inoDidChangeParams.ContentChanges[i].RangeLength = nil
@@ -1308,14 +1309,12 @@ func (ls *INOLanguageServer) didChange(logger jsonrpc.FunctionLogger, inoDidChan
13081309

13091310
// Apply the change to the tracked sketch file.
13101311
trackedInoID := inoDoc.URI.AsPath().String()
1311-
trackedInoDoc, ok := ls.trackedInoDocs[trackedInoID]
1312-
if !ok {
1312+
if doc, ok := ls.trackedInoDocs[trackedInoID]; !ok {
13131313
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 {
13161315
return nil, err
13171316
} else {
1318-
ls.trackedInoDocs[trackedInoID] = updatedTrackedInoDoc
1317+
ls.trackedInoDocs[trackedInoID] = updatedDoc
13191318
}
13201319

13211320
logger.Logf("Tracked SKETCH file:----------+\n" + ls.trackedInoDocs[trackedInoID].Text + "\n----------------------")

Diff for: sourcemapper/ino.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ import (
99
"strconv"
1010
"strings"
1111

12-
"github.com/arduino/arduino-language-server/textutils"
1312
"github.com/arduino/go-paths-helper"
1413
"github.com/pkg/errors"
1514
"go.bug.st/lsp"
15+
"go.bug.st/lsp/textedits"
1616
)
1717

1818
// SketchMapper is a mapping between the .ino sketch and the preprocessed .cpp file
@@ -219,7 +219,7 @@ func (s *SketchMapper) ApplyTextChange(inoURI lsp.DocumentURI, inoChange lsp.Tex
219219
deletedLines := inoRange.End.Line - inoRange.Start.Line
220220

221221
// Apply text changes
222-
newText, err := textutils.ApplyTextChange(s.CppText.Text, cppRange, inoChange.Text)
222+
newText, err := textedits.ApplyTextChange(s.CppText.Text, cppRange, inoChange.Text)
223223
if err != nil {
224224
panic("error replacing text: " + err.Error())
225225
}

Diff for: textutils/textutils.go

-123
This file was deleted.

0 commit comments

Comments
 (0)