Skip to content

Commit b5031d3

Browse files
committed
Fixed line conversion for .cpp/.h
1 parent a8ccf12 commit b5031d3

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

Diff for: ls/ls_ide_to_clang.go

+10-8
Original file line numberDiff line numberDiff line change
@@ -89,23 +89,25 @@ func (ls *INOLanguageServer) ide2ClangRange(logger jsonrpc.FunctionLogger, ideUR
8989
if err != nil {
9090
return lsp.DocumentURI{}, lsp.Range{}, err
9191
}
92-
clangRange := ideRange
9392

9493
// Convert .ino ranges using sketchmapper
9594
if ls.clangURIRefersToIno(clangURI) {
96-
if r, ok := ls.sketchMapper.InoToCppLSPRangeOk(ideURI, ideRange); ok {
97-
clangRange = r
95+
if clangRange, ok := ls.sketchMapper.InoToCppLSPRangeOk(ideURI, ideRange); ok {
96+
return clangURI, clangRange, nil
9897
} else {
9998
return lsp.DocumentURI{}, lsp.Range{}, fmt.Errorf("invalid range %s:%s: could not be mapped to Arduino-preprocessed sketck.ino.cpp", ideURI, ideRange)
10099
}
101-
}
102-
103-
// Convert other sketch file ranges (.cpp/.h)
104-
if inSketch {
100+
} else if inSketch {
101+
// Convert other sketch file ranges (.cpp/.h)
102+
clangRange := ideRange
105103
clangRange.Start.Line++
106104
clangRange.End.Line++
105+
return clangURI, clangRange, nil
106+
} else {
107+
// Outside sketch: keep range as is
108+
clangRange := ideRange
109+
return clangURI, clangRange, nil
107110
}
108-
return clangURI, clangRange, nil
109111
}
110112

111113
func (ls *INOLanguageServer) ide2ClangVersionedTextDocumentIdentifier(logger jsonrpc.FunctionLogger, ideVersionedDoc lsp.VersionedTextDocumentIdentifier) (lsp.VersionedTextDocumentIdentifier, error) {

0 commit comments

Comments
 (0)