From 86a3ea650fd3033cd77c23693da7e4601a6cbae7 Mon Sep 17 00:00:00 2001 From: Anirudh Balaji Date: Mon, 24 May 2021 23:04:11 -0700 Subject: [PATCH] Use interactive path for neovim resolution (#672) * fix: use interactive env when getting nvim path * fix: read interactive path in neovim --- src/bridge/mod.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/bridge/mod.rs b/src/bridge/mod.rs index 79a5cb6..f1d7c47 100644 --- a/src/bridge/mod.rs +++ b/src/bridge/mod.rs @@ -34,7 +34,11 @@ fn set_windows_creation_flags(cmd: &mut Command) { fn platform_build_nvim_cmd(bin: &str) -> Option { if env::args().any(|arg| arg == "--wsl") { let mut cmd = Command::new("wsl"); - cmd.arg(bin); + cmd.args(&[ + bin.trim(), + "-c", + "let \\$PATH=system(\"bash -ic 'echo \\$PATH' 2>/dev/null\")", + ]); Some(cmd) } else if Path::new(&bin).exists() { Some(Command::new(bin)) @@ -63,14 +67,17 @@ fn build_nvim_cmd() -> Command { #[cfg(windows)] if env::args().any(|arg| arg == "--wsl") { if let Ok(output) = std::process::Command::new("wsl") - .arg("which") - .arg("nvim") + .args(&["bash", "-ic", "which nvim"]) .output() { if output.status.success() { let path = String::from_utf8(output.stdout).unwrap(); let mut cmd = Command::new("wsl"); - cmd.arg(path.trim()); + cmd.args(&[ + path.trim(), + "-c", + "let \\$PATH=system(\"bash -ic 'echo \\$PATH' 2>/dev/null\")", + ]); return cmd; } else { error!("nvim not found in WSL path");