diff --git a/Cargo.lock b/Cargo.lock index e7b6bff1196a160667bf3b5cb96d1e94d5ea615d..7d62d7539344a1f1b89b96d0f7a8625d912ce76f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8323,6 +8323,7 @@ dependencies = [ "unindent", "util", "which 6.0.3", + "windows 0.58.0", "worktree", ] diff --git a/crates/project/Cargo.toml b/crates/project/Cargo.toml index ac4da605b17b507a96ebbc263e5c363749fc4016..1e7801e90888da7b38cd1d58083c6e8ba0f81808 100644 --- a/crates/project/Cargo.toml +++ b/crates/project/Cargo.toml @@ -71,6 +71,9 @@ text.workspace = true util.workspace = true which.workspace = true +[target.'cfg(target_os = "windows")'.dependencies] +windows.workspace = true + [dev-dependencies] client = { workspace = true, features = ["test-support"] } collections = { workspace = true, features = ["test-support"] } diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index 981ee5da14bc0f0c3f4ff8f4c9fdc96d3e30ca7d..0b24e2d95f8e1bc7a50e6761f98131a6ef88f702 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -5449,6 +5449,11 @@ impl Project { })?; let mut child = smol::process::Command::new(command); + #[cfg(target_os = "windows")] + { + use smol::process::windows::CommandExt; + child.creation_flags(windows::Win32::System::Threading::CREATE_NO_WINDOW.0); + } if let Some(working_dir_path) = working_dir_path { child.current_dir(working_dir_path);