diff options
| author | Lukas Wirth <lukastw97@gmail.com> | 2023-03-08 13:18:44 +0100 |
|---|---|---|
| committer | Lukas Wirth <lukastw97@gmail.com> | 2023-03-08 13:18:44 +0100 |
| commit | b4bd27be9072e898b02b123e8a0803f18899ae86 (patch) | |
| tree | 1791f05afce0454de7f8b4a100e14a75247f91e0 | |
| parent | c9786484c51657a291571763595327e77cc594e3 (diff) | |
| download | rust-b4bd27be9072e898b02b123e8a0803f18899ae86.tar.gz rust-b4bd27be9072e898b02b123e8a0803f18899ae86.zip | |
Don't send error notifications for workspace failures if server status is supported
| -rw-r--r-- | crates/rust-analyzer/src/main_loop.rs | 8 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/reload.rs | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs index d2797690669..60afb05bd64 100644 --- a/crates/rust-analyzer/src/main_loop.rs +++ b/crates/rust-analyzer/src/main_loop.rs @@ -409,12 +409,12 @@ impl GlobalState { if self.last_reported_status.as_ref() != Some(&status) { self.last_reported_status = Some(status.clone()); - if let (lsp_ext::Health::Error, Some(message)) = (status.health, &status.message) { - self.show_message(lsp_types::MessageType::ERROR, message.clone()); - } - if self.config.server_status_notification() { self.send_notification::<lsp_ext::ServerStatusNotification>(status); + } else { + if let (lsp_ext::Health::Error, Some(message)) = (status.health, &status.message) { + self.show_message(lsp_types::MessageType::ERROR, message.clone()); + } } } diff --git a/crates/rust-analyzer/src/reload.rs b/crates/rust-analyzer/src/reload.rs index 1a396bb06a3..2dfbb2ffb97 100644 --- a/crates/rust-analyzer/src/reload.rs +++ b/crates/rust-analyzer/src/reload.rs @@ -202,7 +202,9 @@ impl GlobalState { tracing::info!(%cause, "will switch workspaces"); if let Err(error_message) = self.fetch_workspace_error() { - self.show_and_log_error(error_message, None); + if !self.config.server_status_notification() { + self.show_and_log_error(error_message, None); + } if !self.workspaces.is_empty() { // It only makes sense to switch to a partially broken workspace // if we don't have any workspace at all yet. |
