Don't prime caches when just opening a file

This commit is contained in:
Jonas Schievink 2020-12-02 20:18:28 +01:00
parent a3043cf53f
commit 6da651f5da

View file

@ -506,7 +506,7 @@ impl GlobalState {
.write() .write()
.0 .0
.set_file_contents(path, Some(params.text_document.text.into_bytes())); .set_file_contents(path, Some(params.text_document.text.into_bytes()));
this.update_file_notifications_on_threadpool(); this.maybe_update_diagnostics();
} }
Ok(()) Ok(())
})? })?
@ -616,6 +616,23 @@ impl GlobalState {
Ok(()) Ok(())
} }
fn update_file_notifications_on_threadpool(&mut self) { fn update_file_notifications_on_threadpool(&mut self) {
self.maybe_update_diagnostics();
self.task_pool.handle.spawn_with_sender({
let snap = self.snapshot();
move |sender| {
snap.analysis
.prime_caches(|progress| {
sender.send(Task::PrimeCaches(progress)).unwrap();
})
.unwrap_or_else(|_: Canceled| {
// Pretend that we're done, so that the progress bar is removed. Otherwise
// the editor may complain about it already existing.
sender.send(Task::PrimeCaches(PrimeCachesProgress::Finished)).unwrap()
});
}
});
}
fn maybe_update_diagnostics(&mut self) {
let subscriptions = self let subscriptions = self
.mem_docs .mem_docs
.keys() .keys()
@ -644,19 +661,5 @@ impl GlobalState {
Task::Diagnostics(diagnostics) Task::Diagnostics(diagnostics)
}) })
} }
self.task_pool.handle.spawn_with_sender({
let snap = self.snapshot();
move |sender| {
snap.analysis
.prime_caches(|progress| {
sender.send(Task::PrimeCaches(progress)).unwrap();
})
.unwrap_or_else(|_: Canceled| {
// Pretend that we're done, so that the progress bar is removed. Otherwise
// the editor may complain about it already existing.
sender.send(Task::PrimeCaches(PrimeCachesProgress::Finished)).unwrap()
});
}
});
} }
} }