diff --git a/crates/project/src/environment.rs b/crates/project/src/environment.rs index 50fd3956a759c215f14b8c29d552c50e5d2fffdb..3d42bb217faae7645301aa0b7f9e3a857d418a7b 100644 --- a/crates/project/src/environment.rs +++ b/crates/project/src/environment.rs @@ -263,7 +263,7 @@ async fn load_shell_environment( .into_iter() .collect(); (Some(fake_env), None) - } else if cfg!(target_os = "windows",) { + } else if cfg!(target_os = "windows") { let (shell, args) = shell.program_and_args(); let envs = match shell_env::capture(shell, args, dir).await { Ok(envs) => envs, diff --git a/crates/util/src/shell.rs b/crates/util/src/shell.rs index bcce6b784ba71b20bd832877945e4c4b7206cf59..a031f98fc27134a142af1cbaa9de341d1413188f 100644 --- a/crates/util/src/shell.rs +++ b/crates/util/src/shell.rs @@ -45,6 +45,7 @@ pub fn get_windows_git_bash() -> Option { let git = which::which("git").ok()?; let git_bash = git.parent()?.parent()?.join("bin").join("bash.exe"); if git_bash.is_file() { + log::info!("Found git-bash at {}", git_bash.display()); Some(git_bash.to_string_lossy().to_string()) } else { None diff --git a/crates/util/src/shell_env.rs b/crates/util/src/shell_env.rs index 541c7f5e48fb0d1c26ad7b2aaa6b5dae7cae260b..a82bea154ec5cb16153b70499eaf7e34c0464995 100644 --- a/crates/util/src/shell_env.rs +++ b/crates/util/src/shell_env.rs @@ -177,8 +177,12 @@ async fn capture_windows( .args([ "-c", &format!( - "cd '{}'; {} --printenv", + "cd '{}'; {}{} --printenv", directory.display(), + shell_kind + .command_prefix() + .map(|prefix| prefix.to_string()) + .unwrap_or_default(), zed_path.display() ), ])