Skip to content

Commit 0cc9027

Browse files
committed
Added argument to specify clangd executable path
1 parent 7837af4 commit 0cc9027

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

Diff for: main.go

+6-10
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ import (
66
"log"
77
"os"
88
"os/exec"
9-
"os/user"
10-
"strings"
119

1210
"github.com/bcmi-labs/arduino-language-server/handler"
1311
)
1412

13+
var clangdPath string
1514
var enableLogging bool
1615

1716
func main() {
17+
flag.StringVar(&clangdPath, "clangd", "clangd", "path to clangd executable")
1818
flag.BoolVar(&enableLogging, "log", false, "enable logging to files")
1919
flag.Parse()
2020

@@ -28,7 +28,6 @@ func main() {
2828
defer clangdoutLogFile.Close()
2929
defer clangderrLogFile.Close()
3030
log.SetOutput(logFile)
31-
log.Println("Starting clangd...")
3231
stdinLog, stdoutLog, clangdinLog, clangdoutLog, clangderrLog = stdinLogFile, stdoutLogFile, clangdinLogFile, clangdoutLogFile, clangderrLogFile
3332
} else {
3433
log.SetOutput(os.Stderr)
@@ -73,20 +72,17 @@ func createLogFiles() (logFile, stdinLog, stdoutLog, clangdinLog, clangdoutLog,
7372
return
7473
}
7574

76-
const clangdExec = "clangd"
77-
7875
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)
8278
}
83-
clangdCmd := exec.Command(strings.Replace(clangdExec, "~", usr.HomeDir, 1))
79+
clangdCmd := exec.Command(clangdPath)
8480
clangdIn, _ = clangdCmd.StdinPipe()
8581
clangdOut, _ = clangdCmd.StdoutPipe()
8682
if enableLogging {
8783
clangdErr, _ = clangdCmd.StderrPipe()
8884
}
89-
err = clangdCmd.Start()
85+
err := clangdCmd.Start()
9086
if err != nil {
9187
panic(err)
9288
}

0 commit comments

Comments
 (0)