settings: Follow-up fix to show more errors (#18123)

The condition added in #18122 was too strict.


Release Notes:

- N/A
This commit is contained in:
Thorsten Ball 2024-09-20 11:10:19 +02:00 committed by GitHub
parent ace4d5185d
commit 97708fdf43
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -629,26 +629,28 @@ fn handle_settings_changed(error: Option<anyhow::Error>, cx: &mut AppContext) {
for workspace in workspace::local_workspace_windows(cx) {
workspace
.update(cx, |workspace, cx| {
match error
.as_ref()
.and_then(|error| error.downcast_ref::<InvalidSettingsError>())
{
Some(InvalidSettingsError::UserSettings { message }) => {
workspace.show_notification(id.clone(), cx, |cx| {
cx.new_view(|_| {
MessageNotification::new(format!(
"Invalid user settings file\n{message}"
))
.with_click_message("Open settings file")
.on_click(|cx| {
cx.dispatch_action(zed_actions::OpenSettings.boxed_clone());
cx.emit(DismissEvent);
match error.as_ref() {
Some(error) => {
if let Some(InvalidSettingsError::LocalSettings { .. }) =
error.downcast_ref::<InvalidSettingsError>()
{
// Local settings will be displayed by the projects
} else {
workspace.show_notification(id.clone(), cx, |cx| {
cx.new_view(|_| {
MessageNotification::new(format!(
"Invalid user settings file\n{error}"
))
.with_click_message("Open settings file")
.on_click(|cx| {
cx.dispatch_action(zed_actions::OpenSettings.boxed_clone());
cx.emit(DismissEvent);
})
})
})
});
});
}
}
None => workspace.dismiss_notification(&id, cx),
_ => {}
}
})
.log_err();