internal: incentivize rust-analyzed developers to fix panics

It's good that rust-analyzer doesn't belly-up on a panic in some random
assist.

It is less good that rust-analyzer devs only know that the assists are
buggy when they are actively looking at the logs.
This commit is contained in:
Aleksey Kladov
2021-08-22 17:41:09 +03:00
parent c6baf3dcf8
commit 85fbbc5372
4 changed files with 68 additions and 26 deletions

View File

@@ -42,6 +42,25 @@ impl GlobalState {
)
}
/// rust-analyzer is resilient -- if it fails, this doesn't usually affect
/// the user experience. Part of that is that we deliberately hide panics
/// from the user.
///
/// We do however want to pester rust-analyzer developers with panics and
/// other "you really gotta fix that" messages. The current strategy is to
/// be noisy for "from source" builds or when profiling is enabled.
///
/// It's unclear if making from source `cargo xtask install` builds more
/// panicky is a good idea, let's see if we can keep our awesome bleeding
/// edge users from being upset!
pub(crate) fn poke_rust_analyzer_developer(&mut self, message: String) {
let from_source_build = env!("REV").contains("dev");
let profiling_enabled = std::env::var("RA_PROFILE").is_ok();
if from_source_build || profiling_enabled {
self.show_message(lsp_types::MessageType::Error, message)
}
}
pub(crate) fn report_progress(
&mut self,
title: &str,