@@ -1326,6 +1326,7 @@ func (ls *INOLanguageServer) CleanUp() {
13261326}
13271327
13281328func (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
13831385func (ls * INOLanguageServer ) clang2IdeCodeAction (logger jsonrpc.FunctionLogger , clangCodeAction lsp.CodeAction , origIdeURI lsp.DocumentURI ) * lsp.CodeAction {
0 commit comments