Skip to content

Commit 678641d

Browse files
committed
Merge branch 'windows-path-resolve'
2 parents 5098d78 + c5034e2 commit 678641d

File tree

3 files changed

+49
-5
lines changed

3 files changed

+49
-5
lines changed

Cargo.lock

Lines changed: 38 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ env_logger = "0.10"
1515
log = "0.4.20"
1616
clap = { version = "4.4", features = ["derive", "cargo"] }
1717
clap-verbosity-flag = "2.1.1"
18+
which = "6.0.1"
1819

1920
[[example]]
2021
name = "native-json-parser"

src/main.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use anyhow::{Result, bail};
2+
use log::trace;
23
use clap::Parser;
34

45
use emacs_lsp_booster::app;
@@ -61,7 +62,15 @@ fn main() -> Result<()> {
6162
std::process::exit(1);
6263
}));
6364

64-
let mut cmd = std::process::Command::new(&cli.server_cmd[0]);
65+
// In windows, Command::new cannot find .cmd files, so use `which` to do that
66+
// https://github.com/rust-lang/rust/issues/37519
67+
let server_cmd_prog = if cfg!(windows) {
68+
which::which(&cli.server_cmd[0])?
69+
} else {
70+
std::path::PathBuf::from(&cli.server_cmd[0])
71+
};
72+
trace!("Using server prog: {:?}", server_cmd_prog);
73+
let mut cmd = std::process::Command::new(&server_cmd_prog);
6574
cmd.args(&cli.server_cmd[1..]);
6675

6776
let exit_status = app::run_app_forever(std::io::stdin(), std::io::stdout(), cmd, app::AppOptions {

0 commit comments

Comments
 (0)