diff --git a/Cargo.lock b/Cargo.lock index 4f99df769c4ebbd42f675ce879c20518abd954b8..be37db943b163c9543c0039d9f82288b61f385a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15837,7 +15837,6 @@ dependencies = [ "serde_json_lenient", "sha2", "shellexpand 2.1.2", - "smol", "util", "workspace-hack", "zed_actions", diff --git a/crates/debugger_ui/src/session/running.rs b/crates/debugger_ui/src/session/running.rs index f3a348da46b1780fdca4564275618a90c97e3178..beb6d848ffc5cf02910ca95890ef3ca8cc7608de 100644 --- a/crates/debugger_ui/src/session/running.rs +++ b/crates/debugger_ui/src/session/running.rs @@ -850,18 +850,9 @@ impl RunningState { (task, None) } }; - let Some(task) = task_template.resolve_task_and_check_cwd("debug-build-task", &task_context, cx.background_executor().clone()) else { + let Some(task) = task_template.resolve_task("debug-build-task", &task_context) else { anyhow::bail!("Could not resolve task variables within a debug scenario"); }; - let task = match task.await { - Ok(task) => task, - Err(e) => { - workspace.update(cx, |workspace, cx| { - workspace.show_error(&e, cx); - }).ok(); - return Err(e) - } - }; let locator_name = if let Some(locator_name) = locator_name { debug_assert!(!config_is_valid); diff --git a/crates/task/Cargo.toml b/crates/task/Cargo.toml index aad013c8f06e8afd5437730f6a576ddccfd39b29..f79b39616fd1f528d7b0ac7822b62a89cd627952 100644 --- a/crates/task/Cargo.toml +++ b/crates/task/Cargo.toml @@ -29,7 +29,6 @@ serde_json.workspace = true serde_json_lenient.workspace = true sha2.workspace = true shellexpand.workspace = true -smol.workspace = true util.workspace = true workspace-hack.workspace = true zed_actions.workspace = true diff --git a/crates/task/src/task_template.rs b/crates/task/src/task_template.rs index b0d764959684cda689f668ffc688cedfab89719c..02310bb1b0208cc2d6f929b0898a6e5ffadd7586 100644 --- a/crates/task/src/task_template.rs +++ b/crates/task/src/task_template.rs @@ -1,6 +1,5 @@ -use anyhow::{Context as _, Result, anyhow, bail}; +use anyhow::{Context as _, bail}; use collections::{HashMap, HashSet}; -use gpui::{BackgroundExecutor, Task}; use schemars::{JsonSchema, r#gen::SchemaSettings}; use serde::{Deserialize, Serialize}; use sha2::{Digest, Sha256}; @@ -271,27 +270,6 @@ impl TaskTemplate { }, }) } - - pub fn resolve_task_and_check_cwd( - &self, - id_base: &str, - task_context: &TaskContext, - executor: BackgroundExecutor, - ) -> Option>> { - let resolved_task = self.resolve_task(id_base, task_context)?; - let task = executor.spawn(async move { - if let Some(cwd) = resolved_task.resolved.cwd.as_deref() { - match smol::fs::metadata(cwd).await { - Ok(metadata) if metadata.is_dir() => Ok(resolved_task), - Ok(_) => Err(anyhow!("cwd for resolved task is not a directory: {cwd:?}")), - Err(e) => Err(e).context(format!("reading cwd of resolved task: {cwd:?}")), - } - } else { - Ok(resolved_task) - } - }); - Some(task) - } } const MAX_DISPLAY_VARIABLE_LENGTH: usize = 15; diff --git a/crates/terminal_view/src/terminal_panel.rs b/crates/terminal_view/src/terminal_panel.rs index fd5ec476c613ccc855a1aada2141247337ab2e76..dc9313a38f9f588ae2d35cbd19f15148fa628996 100644 --- a/crates/terminal_view/src/terminal_panel.rs +++ b/crates/terminal_view/src/terminal_panel.rs @@ -1461,27 +1461,10 @@ impl workspace::TerminalProvider for TerminalProvider { &self, task: SpawnInTerminal, window: &mut Window, - cx: &mut Context, + cx: &mut App, ) -> Task>> { let terminal_panel = self.0.clone(); - let workspace = cx.weak_entity(); window.spawn(cx, async move |cx| { - if let Some(cwd) = task.cwd.as_deref() { - let result = match smol::fs::metadata(cwd).await { - Ok(metadata) if metadata.is_dir() => Ok(()), - Ok(_) => Err(anyhow!("cwd for resolved task is not a directory: {cwd:?}")), - Err(e) => Err(e).context(format!("reading cwd of resolved task: {cwd:?}")), - }; - if let Err(e) = result { - workspace - .update(cx, |workspace, cx| { - workspace.show_error(&e, cx); - }) - .ok(); - return None; - } - } - let terminal = terminal_panel .update_in(cx, |terminal_panel, window, cx| { terminal_panel.spawn_task(&task, window, cx) diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index 6756782e5f7603381601f59ac1ba9f0eb09d0a29..3b90968251cfa6c1b2e1ed61ad6394917c380083 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -135,7 +135,7 @@ pub trait TerminalProvider { &self, task: SpawnInTerminal, window: &mut Window, - cx: &mut Context, + cx: &mut App, ) -> Task>>; }