debugger/tasks: Remove TaskType enum (#29208)
Closes #ISSUE Release Notes: - N/A --------- Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Anthony <anthony@zed.dev> Co-authored-by: Conrad <conrad@zed.dev>
This commit is contained in:
parent
053fafa90e
commit
67615b968b
53 changed files with 1272 additions and 1114 deletions
|
@ -8,7 +8,7 @@ use lsp::LanguageServerName;
|
|||
use paths::{
|
||||
EDITORCONFIG_NAME, local_debug_file_relative_path, local_settings_file_relative_path,
|
||||
local_tasks_file_relative_path, local_vscode_launch_file_relative_path,
|
||||
local_vscode_tasks_file_relative_path,
|
||||
local_vscode_tasks_file_relative_path, task_file_name,
|
||||
};
|
||||
use rpc::{
|
||||
AnyProtoClient, TypedEnvelope,
|
||||
|
@ -18,7 +18,7 @@ use schemars::JsonSchema;
|
|||
use serde::{Deserialize, Serialize};
|
||||
use settings::{
|
||||
InvalidSettingsError, LocalSettingsKind, Settings, SettingsLocation, SettingsSources,
|
||||
SettingsStore, TaskKind, parse_json_with_comments, watch_config_file,
|
||||
SettingsStore, parse_json_with_comments, watch_config_file,
|
||||
};
|
||||
use std::{
|
||||
path::{Path, PathBuf},
|
||||
|
@ -377,7 +377,7 @@ pub struct SettingsObserver {
|
|||
worktree_store: Entity<WorktreeStore>,
|
||||
project_id: u64,
|
||||
task_store: Entity<TaskStore>,
|
||||
_global_task_config_watchers: (Task<()>, Task<()>),
|
||||
_global_task_config_watcher: Task<()>,
|
||||
}
|
||||
|
||||
/// SettingsObserver observers changes to .zed/{settings, task}.json files in local worktrees
|
||||
|
@ -405,19 +405,10 @@ impl SettingsObserver {
|
|||
mode: SettingsObserverMode::Local(fs.clone()),
|
||||
downstream_client: None,
|
||||
project_id: 0,
|
||||
_global_task_config_watchers: (
|
||||
Self::subscribe_to_global_task_file_changes(
|
||||
fs.clone(),
|
||||
TaskKind::Script,
|
||||
paths::tasks_file().clone(),
|
||||
cx,
|
||||
),
|
||||
Self::subscribe_to_global_task_file_changes(
|
||||
fs,
|
||||
TaskKind::Debug,
|
||||
paths::debug_tasks_file().clone(),
|
||||
cx,
|
||||
),
|
||||
_global_task_config_watcher: Self::subscribe_to_global_task_file_changes(
|
||||
fs.clone(),
|
||||
paths::tasks_file().clone(),
|
||||
cx,
|
||||
),
|
||||
}
|
||||
}
|
||||
|
@ -434,19 +425,10 @@ impl SettingsObserver {
|
|||
mode: SettingsObserverMode::Remote,
|
||||
downstream_client: None,
|
||||
project_id: 0,
|
||||
_global_task_config_watchers: (
|
||||
Self::subscribe_to_global_task_file_changes(
|
||||
fs.clone(),
|
||||
TaskKind::Script,
|
||||
paths::tasks_file().clone(),
|
||||
cx,
|
||||
),
|
||||
Self::subscribe_to_global_task_file_changes(
|
||||
fs.clone(),
|
||||
TaskKind::Debug,
|
||||
paths::debug_tasks_file().clone(),
|
||||
cx,
|
||||
),
|
||||
_global_task_config_watcher: Self::subscribe_to_global_task_file_changes(
|
||||
fs.clone(),
|
||||
paths::tasks_file().clone(),
|
||||
cx,
|
||||
),
|
||||
}
|
||||
}
|
||||
|
@ -575,7 +557,7 @@ impl SettingsObserver {
|
|||
)
|
||||
.unwrap(),
|
||||
);
|
||||
(settings_dir, LocalSettingsKind::Tasks(TaskKind::Script))
|
||||
(settings_dir, LocalSettingsKind::Tasks)
|
||||
} else if path.ends_with(local_vscode_tasks_file_relative_path()) {
|
||||
let settings_dir = Arc::<Path>::from(
|
||||
path.ancestors()
|
||||
|
@ -587,7 +569,7 @@ impl SettingsObserver {
|
|||
)
|
||||
.unwrap(),
|
||||
);
|
||||
(settings_dir, LocalSettingsKind::Tasks(TaskKind::Script))
|
||||
(settings_dir, LocalSettingsKind::Tasks)
|
||||
} else if path.ends_with(local_debug_file_relative_path()) {
|
||||
let settings_dir = Arc::<Path>::from(
|
||||
path.ancestors()
|
||||
|
@ -599,7 +581,7 @@ impl SettingsObserver {
|
|||
)
|
||||
.unwrap(),
|
||||
);
|
||||
(settings_dir, LocalSettingsKind::Tasks(TaskKind::Debug))
|
||||
(settings_dir, LocalSettingsKind::Debug)
|
||||
} else if path.ends_with(local_vscode_launch_file_relative_path()) {
|
||||
let settings_dir = Arc::<Path>::from(
|
||||
path.ancestors()
|
||||
|
@ -611,7 +593,7 @@ impl SettingsObserver {
|
|||
)
|
||||
.unwrap(),
|
||||
);
|
||||
(settings_dir, LocalSettingsKind::Tasks(TaskKind::Debug))
|
||||
(settings_dir, LocalSettingsKind::Debug)
|
||||
} else if path.ends_with(EDITORCONFIG_NAME) {
|
||||
let Some(settings_dir) = path.parent().map(Arc::from) else {
|
||||
continue;
|
||||
|
@ -747,7 +729,7 @@ impl SettingsObserver {
|
|||
}
|
||||
}
|
||||
}),
|
||||
LocalSettingsKind::Tasks(task_kind) => {
|
||||
LocalSettingsKind::Tasks => {
|
||||
let result = task_store.update(cx, |task_store, cx| {
|
||||
task_store.update_user_tasks(
|
||||
TaskSettingsLocation::Worktree(SettingsLocation {
|
||||
|
@ -755,7 +737,6 @@ impl SettingsObserver {
|
|||
path: directory.as_ref(),
|
||||
}),
|
||||
file_content.as_deref(),
|
||||
task_kind,
|
||||
cx,
|
||||
)
|
||||
});
|
||||
|
@ -772,7 +753,38 @@ impl SettingsObserver {
|
|||
}
|
||||
Ok(()) => {
|
||||
cx.emit(SettingsObserverEvent::LocalTasksUpdated(Ok(
|
||||
task_kind.config_in_dir(&directory)
|
||||
directory.join(task_file_name())
|
||||
)));
|
||||
}
|
||||
}
|
||||
}
|
||||
LocalSettingsKind::Debug => {
|
||||
let result = task_store.update(cx, |task_store, cx| {
|
||||
task_store.update_user_debug_scenarios(
|
||||
TaskSettingsLocation::Worktree(SettingsLocation {
|
||||
worktree_id,
|
||||
path: directory.as_ref(),
|
||||
}),
|
||||
file_content.as_deref(),
|
||||
cx,
|
||||
)
|
||||
});
|
||||
|
||||
match result {
|
||||
Err(InvalidSettingsError::Debug { path, message }) => {
|
||||
log::error!(
|
||||
"Failed to set local debug scenarios in {path:?}: {message:?}"
|
||||
);
|
||||
cx.emit(SettingsObserverEvent::LocalTasksUpdated(Err(
|
||||
InvalidSettingsError::Debug { path, message },
|
||||
)));
|
||||
}
|
||||
Err(e) => {
|
||||
log::error!("Failed to set local tasks: {e}");
|
||||
}
|
||||
Ok(()) => {
|
||||
cx.emit(SettingsObserverEvent::LocalTasksUpdated(Ok(
|
||||
directory.join(task_file_name())
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
@ -795,7 +807,6 @@ impl SettingsObserver {
|
|||
|
||||
fn subscribe_to_global_task_file_changes(
|
||||
fs: Arc<dyn Fs>,
|
||||
task_kind: TaskKind,
|
||||
file_path: PathBuf,
|
||||
cx: &mut Context<Self>,
|
||||
) -> Task<()> {
|
||||
|
@ -815,7 +826,6 @@ impl SettingsObserver {
|
|||
.update_user_tasks(
|
||||
TaskSettingsLocation::Global(&file_path),
|
||||
Some(&user_tasks_content),
|
||||
task_kind,
|
||||
cx,
|
||||
)
|
||||
.log_err();
|
||||
|
@ -828,7 +838,6 @@ impl SettingsObserver {
|
|||
task_store.update_user_tasks(
|
||||
TaskSettingsLocation::Global(&file_path),
|
||||
Some(&user_tasks_content),
|
||||
task_kind,
|
||||
cx,
|
||||
)
|
||||
}) else {
|
||||
|
@ -856,15 +865,17 @@ impl SettingsObserver {
|
|||
pub fn local_settings_kind_from_proto(kind: proto::LocalSettingsKind) -> LocalSettingsKind {
|
||||
match kind {
|
||||
proto::LocalSettingsKind::Settings => LocalSettingsKind::Settings,
|
||||
proto::LocalSettingsKind::Tasks => LocalSettingsKind::Tasks(TaskKind::Script),
|
||||
proto::LocalSettingsKind::Tasks => LocalSettingsKind::Tasks,
|
||||
proto::LocalSettingsKind::Editorconfig => LocalSettingsKind::Editorconfig,
|
||||
proto::LocalSettingsKind::Debug => LocalSettingsKind::Debug,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn local_settings_kind_to_proto(kind: LocalSettingsKind) -> proto::LocalSettingsKind {
|
||||
match kind {
|
||||
LocalSettingsKind::Settings => proto::LocalSettingsKind::Settings,
|
||||
LocalSettingsKind::Tasks(_) => proto::LocalSettingsKind::Tasks,
|
||||
LocalSettingsKind::Tasks => proto::LocalSettingsKind::Tasks,
|
||||
LocalSettingsKind::Editorconfig => proto::LocalSettingsKind::Editorconfig,
|
||||
LocalSettingsKind::Debug => proto::LocalSettingsKind::Debug,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue