diff --git a/crates/dap/src/adapters.rs b/crates/dap/src/adapters.rs index 763b1ffffb..f82b0a56e4 100644 --- a/crates/dap/src/adapters.rs +++ b/crates/dap/src/adapters.rs @@ -201,10 +201,6 @@ impl DebugAdapter for CustomDebugAdapter { } } - fn get_debug_adapter_start_command(&self) -> String { - "fail".to_string() - } - fn is_installed(&self) -> Option { None } diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index e3e7504a54..1426713d02 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -94,8 +94,8 @@ use std::{ }; use task::{ static_source::{StaticSource, TrackedFile}, - DebugAdapterConfig, HideStrategy, RevealStrategy, Shell, TaskContext, TaskTemplate, - TaskVariables, VariableName, + DebugAdapterConfig, DebugTaskFile, HideStrategy, RevealStrategy, Shell, TaskContext, + TaskTemplate, TaskVariables, VariableName, VsCodeTaskFile, }; use terminals::Terminals; use text::{Anchor, BufferId}; @@ -4170,7 +4170,13 @@ impl Project { abs_path, id_base: "local_vscode_tasks_for_worktree".into(), }, - |tx, cx| StaticSource::new(TrackedFile::new(tasks_file_rx, tx, cx)), + |tx, cx| { + StaticSource::new(TrackedFile::new_convertible::( + tasks_file_rx, + tx, + cx, + )) + }, cx, ); } @@ -4191,7 +4197,11 @@ impl Project { id_base: "local_debug_file_for_worktree".into(), }, |tx, cx| { - StaticSource::new(TrackedFile::new(debug_task_file_rx, tx, cx)) + StaticSource::new(TrackedFile::new_convertible::( + debug_task_file_rx, + tx, + cx, + )) }, cx, ); diff --git a/crates/task/src/debug_format.rs b/crates/task/src/debug_format.rs index f83b0c3bb1..d19bd70445 100644 --- a/crates/task/src/debug_format.rs +++ b/crates/task/src/debug_format.rs @@ -138,6 +138,7 @@ impl DebugTaskDefinition { /// A group of Debug Tasks defined in a JSON file. #[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize, JsonSchema)] +#[serde(transparent)] pub struct DebugTaskFile(pub Vec); impl DebugTaskFile { diff --git a/crates/task/src/static_source.rs b/crates/task/src/static_source.rs index 650479967c..b78a020990 100644 --- a/crates/task/src/static_source.rs +++ b/crates/task/src/static_source.rs @@ -78,6 +78,7 @@ impl TrackedFile { cx.background_executor() .spawn({ let parsed_contents = parsed_contents.clone(); + async move { while let Some(new_contents) = tracker.next().await { if Arc::strong_count(&parsed_contents) == 1 { @@ -109,9 +110,7 @@ impl TrackedFile { } }) .detach_and_log_err(cx); - Self { - parsed_contents: Default::default(), - } + Self { parsed_contents } } } diff --git a/crates/task/src/task_template.rs b/crates/task/src/task_template.rs index de589b27e2..2cd7f99908 100644 --- a/crates/task/src/task_template.rs +++ b/crates/task/src/task_template.rs @@ -173,7 +173,9 @@ impl TaskTemplate { /// Every [`ResolvedTask`] gets a [`TaskId`], based on the `id_base` (to avoid collision with various task sources), /// and hashes of its template and [`TaskContext`], see [`ResolvedTask`] fields' documentation for more details. pub fn resolve_task(&self, id_base: &str, cx: &TaskContext) -> Option { - if self.label.trim().is_empty() || self.command.trim().is_empty() { + if self.label.trim().is_empty() + || (self.command.trim().is_empty() && matches!(self.task_type, TaskType::Script)) + { return None; }