Skip to content

Commit 287e8ba

Browse files
committed
Canonicalize dataDir path before passing it to clangd
See arduino/arduino-ide#603
1 parent 4cbf9f3 commit 287e8ba

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

Diff for: ls/ls.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -1326,6 +1326,7 @@ func (ls *INOLanguageServer) CleanUp() {
13261326
}
13271327

13281328
func (ls *INOLanguageServer) extractDataFolderFromArduinoCLI(logger jsonrpc.FunctionLogger) (*paths.Path, error) {
1329+
var dataDir string
13291330
if ls.config.CliPath == nil {
13301331
// Establish a connection with the arduino-cli gRPC server
13311332
conn, err := grpc.Dial(ls.config.CliDaemonAddress, grpc.WithInsecure(), grpc.WithBlock())
@@ -1341,12 +1342,10 @@ func (ls *INOLanguageServer) extractDataFolderFromArduinoCLI(logger jsonrpc.Func
13411342
if err != nil {
13421343
return nil, fmt.Errorf("error getting arduino data dir: %w", err)
13431344
}
1344-
var dataDir string
13451345
if err := json.Unmarshal([]byte(resp.JsonData), &dataDir); err != nil {
13461346
return nil, fmt.Errorf("error getting arduino data dir: %w", err)
13471347
}
13481348
logger.Logf("Arduino Data Dir -> %s", dataDir)
1349-
return paths.New(dataDir), nil
13501349
} else {
13511350
args := []string{ls.config.CliPath.String(),
13521351
"--config-file", ls.config.CliConfigPath.String(),
@@ -1376,8 +1375,11 @@ func (ls *INOLanguageServer) extractDataFolderFromArduinoCLI(logger jsonrpc.Func
13761375
}
13771376
// Return only the build path
13781377
logger.Logf("Arduino Data Dir -> %s", res.Directories.Data)
1379-
return paths.New(res.Directories.Data), nil
1378+
dataDir = res.Directories.Data
13801379
}
1380+
1381+
dataDirPath := paths.New(dataDir)
1382+
return dataDirPath.Canonical(), nil
13811383
}
13821384

13831385
func (ls *INOLanguageServer) clang2IdeCodeAction(logger jsonrpc.FunctionLogger, clangCodeAction lsp.CodeAction, origIdeURI lsp.DocumentURI) *lsp.CodeAction {

0 commit comments

Comments
 (0)