From b4bd27be9072e898b02b123e8a0803f18899ae86 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Wed, 8 Mar 2023 13:18:44 +0100 Subject: [PATCH] Don't send error notifications for workspace failures if server status is supported --- crates/rust-analyzer/src/main_loop.rs | 8 ++++---- 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::(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.