Add settings to remote servers, use XDG paths on remote, and enable node LSPs (#19176)
Supersedes https://github.com/zed-industries/zed/pull/19166 TODO: - [x] Update basic zed paths - [x] update create_state_directory - [x] Use this with `NodeRuntime` - [x] Add server settings - [x] Add an 'open server settings command' - [x] Make sure it all works Release Notes: - Updated the actions `zed::OpenLocalSettings` and `zed::OpenLocalTasks` to `zed::OpenProjectSettings` and `zed::OpenProjectTasks`. --------- Co-authored-by: Conrad <conrad@zed.dev> Co-authored-by: Richard <richard@zed.dev>
This commit is contained in:
parent
1dda039f38
commit
f944ebc4cb
44 changed files with 804 additions and 218 deletions
|
@ -538,26 +538,47 @@ impl SettingsObserver {
|
|||
let task_store = self.task_store.clone();
|
||||
|
||||
for (directory, kind, file_content) in settings_contents {
|
||||
let result = match kind {
|
||||
match kind {
|
||||
LocalSettingsKind::Settings | LocalSettingsKind::Editorconfig => cx
|
||||
.update_global::<SettingsStore, anyhow::Result<()>>(|store, cx| {
|
||||
store.set_local_settings(
|
||||
.update_global::<SettingsStore, _>(|store, cx| {
|
||||
let result = store.set_local_settings(
|
||||
worktree_id,
|
||||
directory.clone(),
|
||||
kind,
|
||||
file_content.as_deref(),
|
||||
cx,
|
||||
)
|
||||
);
|
||||
|
||||
match result {
|
||||
Err(InvalidSettingsError::LocalSettings { path, message }) => {
|
||||
log::error!(
|
||||
"Failed to set local settings in {:?}: {:?}",
|
||||
path,
|
||||
message
|
||||
);
|
||||
cx.emit(SettingsObserverEvent::LocalSettingsUpdated(Err(
|
||||
InvalidSettingsError::LocalSettings { path, message },
|
||||
)));
|
||||
}
|
||||
Err(e) => {
|
||||
log::error!("Failed to set local settings: {e}");
|
||||
}
|
||||
Ok(_) => {
|
||||
cx.emit(SettingsObserverEvent::LocalSettingsUpdated(Ok(())));
|
||||
}
|
||||
}
|
||||
}),
|
||||
LocalSettingsKind::Tasks => task_store.update(cx, |task_store, cx| {
|
||||
task_store.update_user_tasks(
|
||||
Some(SettingsLocation {
|
||||
worktree_id,
|
||||
path: directory.as_ref(),
|
||||
}),
|
||||
file_content.as_deref(),
|
||||
cx,
|
||||
)
|
||||
task_store
|
||||
.update_user_tasks(
|
||||
Some(SettingsLocation {
|
||||
worktree_id,
|
||||
path: directory.as_ref(),
|
||||
}),
|
||||
file_content.as_deref(),
|
||||
cx,
|
||||
)
|
||||
.log_err();
|
||||
}),
|
||||
};
|
||||
|
||||
|
@ -572,28 +593,6 @@ impl SettingsObserver {
|
|||
})
|
||||
.log_err();
|
||||
}
|
||||
|
||||
match result {
|
||||
Err(error) => {
|
||||
if let Ok(error) = error.downcast::<InvalidSettingsError>() {
|
||||
if let InvalidSettingsError::LocalSettings {
|
||||
ref path,
|
||||
ref message,
|
||||
} = error
|
||||
{
|
||||
log::error!(
|
||||
"Failed to set local settings in {:?}: {:?}",
|
||||
path,
|
||||
message
|
||||
);
|
||||
cx.emit(SettingsObserverEvent::LocalSettingsUpdated(Err(error)));
|
||||
}
|
||||
}
|
||||
}
|
||||
Ok(()) => {
|
||||
cx.emit(SettingsObserverEvent::LocalSettingsUpdated(Ok(())));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue