]> git.lizzy.rs Git - rust.git/blobdiff - crates/rust-analyzer/src/main_loop.rs
Add toggle to disable cache priming
[rust.git] / crates / rust-analyzer / src / main_loop.rs
index 6dd1c76c2e6e7115add0030899516fb613dfc725..979b3b1522159679d2c1de1d81e5ca0bf2c9453e 100644 (file)
@@ -112,7 +112,7 @@ fn run(mut self, inbox: Receiver<lsp_server::Message>) -> 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(),
             );
         };
@@ -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::<lsp_ext::MemoryUsage>(|s, p| handlers::handle_memory_usage(s, p))?
+            .on_sync_mut::<lsp_ext::MemoryUsage>(handlers::handle_memory_usage)?
             .on_sync::<lsp_ext::JoinLines>(handlers::handle_join_lines)?
             .on_sync::<lsp_ext::OnEnter>(handlers::handle_on_enter)?
             .on_sync::<lsp_types::request::SelectionRangeRequest>(handlers::handle_selection_range)?