@@ -6,15 +6,15 @@ import (
6
6
"log"
7
7
"os"
8
8
"os/exec"
9
- "os/user"
10
- "strings"
11
9
12
10
"github.com/bcmi-labs/arduino-language-server/handler"
13
11
)
14
12
13
+ var clangdPath string
15
14
var enableLogging bool
16
15
17
16
func main () {
17
+ flag .StringVar (& clangdPath , "clangd" , "clangd" , "path to clangd executable" )
18
18
flag .BoolVar (& enableLogging , "log" , false , "enable logging to files" )
19
19
flag .Parse ()
20
20
@@ -28,7 +28,6 @@ func main() {
28
28
defer clangdoutLogFile .Close ()
29
29
defer clangderrLogFile .Close ()
30
30
log .SetOutput (logFile )
31
- log .Println ("Starting clangd..." )
32
31
stdinLog , stdoutLog , clangdinLog , clangdoutLog , clangderrLog = stdinLogFile , stdoutLogFile , clangdinLogFile , clangdoutLogFile , clangderrLogFile
33
32
} else {
34
33
log .SetOutput (os .Stderr )
@@ -73,20 +72,17 @@ func createLogFiles() (logFile, stdinLog, stdoutLog, clangdinLog, clangdoutLog,
73
72
return
74
73
}
75
74
76
- const clangdExec = "clangd"
77
-
78
75
func startClangd () (clangdOut io.ReadCloser , clangdIn io.WriteCloser , clangdErr io.ReadCloser ) {
79
- usr , err := user .Current ()
80
- if err != nil {
81
- panic (err )
76
+ if enableLogging {
77
+ log .Println ("Starting C++ language server:" , clangdPath )
82
78
}
83
- clangdCmd := exec .Command (strings . Replace ( clangdExec , "~" , usr . HomeDir , 1 ) )
79
+ clangdCmd := exec .Command (clangdPath )
84
80
clangdIn , _ = clangdCmd .StdinPipe ()
85
81
clangdOut , _ = clangdCmd .StdoutPipe ()
86
82
if enableLogging {
87
83
clangdErr , _ = clangdCmd .StderrPipe ()
88
84
}
89
- err = clangdCmd .Start ()
85
+ err : = clangdCmd .Start ()
90
86
if err != nil {
91
87
panic (err )
92
88
}
0 commit comments