X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=crates%2Frust-analyzer%2Fsrc%2Fmain_loop.rs;h=979b3b1522159679d2c1de1d81e5ca0bf2c9453e;hb=a68ce62f6a33d3e5777c1d64c946e0f1d9c7f457;hp=9e1bac854d5e146bfdd8aac8f77a81236cd14a8a;hpb=3a79af7e277839f803bd0304f28dbe4971ffdad6;p=rust.git diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs index 9e1bac854d5..979b3b15221 100644 --- a/crates/rust-analyzer/src/main_loop.rs +++ b/crates/rust-analyzer/src/main_loop.rs @@ -112,7 +112,7 @@ fn run(mut self, inbox: Receiver) -> Result<()> { && self.config.notifications().cargo_toml_not_found { self.show_message( - lsp_types::MessageType::Error, + lsp_types::MessageType::ERROR, "rust-analyzer failed to discover workspace".to_string(), ); }; @@ -166,7 +166,7 @@ fn run(mut self, inbox: Receiver) -> Result<()> { self.handle_event(event)? } - Err("client exited without proper shutdown sequence")? + return Err("client exited without proper shutdown sequence".into()); } fn next_event(&self, inbox: &Receiver) -> Option { @@ -395,7 +395,7 @@ fn handle_event(&mut self, event: Event) -> Result<()> { flycheck::Progress::DidFinish(result) => { if let Err(err) = result { self.show_message( - lsp_types::MessageType::Error, + lsp_types::MessageType::ERROR, format!("cargo check failed: {}", err), ); } @@ -406,7 +406,10 @@ fn handle_event(&mut self, event: Event) -> Result<()> { // When we're running multiple flychecks, we have to include a disambiguator in // the title, or the editor complains. Note that this is a user-facing string. let title = if self.flycheck.len() == 1 { - "cargo check".to_string() + match self.config.flycheck() { + Some(config) => format!("{}", config), + None => "cargo check".to_string(), + } } else { format!("cargo check (#{})", id + 1) }; @@ -430,7 +433,9 @@ fn handle_event(&mut self, event: Event) -> Result<()> { for flycheck in &self.flycheck { flycheck.update(); } - self.prime_caches_queue.request_op(); + if self.config.prefill_caches() { + self.prime_caches_queue.request_op(); + } } if !was_quiescent || state_changed { @@ -509,7 +514,7 @@ fn handle_event(&mut self, event: Event) -> Result<()> { 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()); + self.show_message(lsp_types::MessageType::ERROR, message.clone()); } if self.config.server_status_notification() { @@ -561,7 +566,7 @@ fn on_request(&mut self, request_received: Instant, req: Request) -> Result<()> s.shutdown_requested = true; Ok(()) })? - .on_sync_mut::(|s, p| handlers::handle_memory_usage(s, p))? + .on_sync_mut::(handlers::handle_memory_usage)? .on_sync::(handlers::handle_join_lines)? .on_sync::(handlers::handle_on_enter)? .on_sync::(handlers::handle_selection_range)? @@ -769,7 +774,6 @@ fn update_diagnostics(&mut self) { if !is_cancelled(&*err) { tracing::error!("failed to compute diagnostics: {:?}", err); } - () }) .ok() .map(|diags| (file_id, diags))