mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 21:43:37 +00:00
Auto merge of #12007 - edwin0cheng:restart-proc-macro-reload, r=jonas-schievink
Restart proc-macro client when server reload Fix #10719
This commit is contained in:
commit
60c4f072eb
2 changed files with 14 additions and 6 deletions
|
@ -43,6 +43,13 @@ use crate::{
|
|||
to_proto, LspError, Result,
|
||||
};
|
||||
|
||||
pub(crate) fn handle_workspace_reload(state: &mut GlobalState, _: ()) -> Result<()> {
|
||||
state.proc_macro_client = None;
|
||||
state.fetch_workspaces_queue.request_op("reload workspace request".to_string());
|
||||
state.fetch_build_data_queue.request_op("reload workspace request".to_string());
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) fn handle_analyzer_status(
|
||||
snap: GlobalStateSnapshot,
|
||||
params: lsp_ext::AnalyzerStatusParams,
|
||||
|
|
|
@ -499,9 +499,13 @@ impl GlobalState {
|
|||
self.fetch_workspaces(cause);
|
||||
}
|
||||
}
|
||||
if let Some(cause) = self.fetch_build_data_queue.should_start_op() {
|
||||
self.fetch_build_data(cause);
|
||||
|
||||
if !self.fetch_workspaces_queue.op_in_progress() {
|
||||
if let Some(cause) = self.fetch_build_data_queue.should_start_op() {
|
||||
self.fetch_build_data(cause);
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(cause) = self.prime_caches_queue.should_start_op() {
|
||||
tracing::debug!(%cause, "will prime caches");
|
||||
let num_worker_threads = self.config.prime_caches_num_threads();
|
||||
|
@ -571,14 +575,11 @@ impl GlobalState {
|
|||
}
|
||||
|
||||
RequestDispatcher { req: Some(req), global_state: self }
|
||||
.on_sync_mut::<lsp_ext::ReloadWorkspace>(|s, ()| {
|
||||
s.fetch_workspaces_queue.request_op("reload workspace request".to_string());
|
||||
Ok(())
|
||||
})?
|
||||
.on_sync_mut::<lsp_types::request::Shutdown>(|s, ()| {
|
||||
s.shutdown_requested = true;
|
||||
Ok(())
|
||||
})?
|
||||
.on_sync_mut::<lsp_ext::ReloadWorkspace>(handlers::handle_workspace_reload)?
|
||||
.on_sync_mut::<lsp_ext::MemoryUsage>(handlers::handle_memory_usage)?
|
||||
.on_sync_mut::<lsp_ext::ShuffleCrateGraph>(handlers::handle_shuffle_crate_graph)?
|
||||
.on_sync::<lsp_ext::JoinLines>(handlers::handle_join_lines)?
|
||||
|
|
Loading…
Reference in a new issue