Auto merge of #16883 - Veykril:progress-report, r=Veykril

minor: Do progress reporting for crate-graph construction

Also fixes https://github.com/rust-lang/rust-analyzer/issues/16828
This commit is contained in:
bors 2024-03-19 09:08:56 +00:00
commit c626db048c
2 changed files with 17 additions and 3 deletions

View file

@ -653,7 +653,7 @@ impl GlobalState {
};
if let Some(state) = state {
self.report_progress("Building", state, msg, None, None);
self.report_progress("Building build-artifacts", state, msg, None, None);
}
}
Task::LoadProcMacros(progress) => {
@ -669,7 +669,7 @@ impl GlobalState {
};
if let Some(state) = state {
self.report_progress("Loading", state, msg, None, None);
self.report_progress("Loading proc-macros", state, msg, None, None);
}
}
Task::BuildDepsHaveChanged => self.build_deps_changed = true,
@ -861,7 +861,7 @@ impl GlobalState {
let title = if self.flycheck.len() == 1 {
format!("{}", self.config.flycheck())
} else {
format!("cargo check (#{})", id + 1)
format!("{} (#{})", self.config.flycheck(), id + 1)
};
self.report_progress(
&title,

View file

@ -526,6 +526,13 @@ impl GlobalState {
// crate graph construction relies on these paths, record them so when one of them gets
// deleted or created we trigger a reconstruction of the crate graph
let mut crate_graph_file_dependencies = FxHashSet::default();
self.report_progress(
"Building CrateGraph",
crate::lsp::utils::Progress::Begin,
None,
None,
None,
);
let (crate_graph, proc_macro_paths, layouts, toolchains) = {
// Create crate graph from all the workspaces
@ -564,6 +571,13 @@ impl GlobalState {
change.set_toolchains(toolchains);
self.analysis_host.apply_change(change);
self.crate_graph_file_dependencies = crate_graph_file_dependencies;
self.report_progress(
"Building CrateGraph",
crate::lsp::utils::Progress::End,
None,
None,
None,
);
self.process_changes();
self.reload_flycheck();