Unnamed repository; edit this file 'description' to name the repository.
Don't send error notifications for workspace failures if server status is supported
Lukas Wirth 2023-03-08
parent c978648 · commit b4bd27b
-rw-r--r--crates/rust-analyzer/src/main_loop.rs8
-rw-r--r--crates/rust-analyzer/src/reload.rs4
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 d279769066..60afb05bd6 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 1a396bb06a..2dfbb2ffb9 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.