Automatically reload project on config change

This commit is contained in:
Aleksey Kladov 2020-07-01 16:42:14 +02:00
parent 298adb27b9
commit a03cfa4926
3 changed files with 8 additions and 5 deletions

View file

@ -44,7 +44,7 @@ pub struct Config {
pub root_path: AbsPathBuf,
}
#[derive(Debug, Clone)]
#[derive(Debug, Clone, Eq, PartialEq)]
pub enum LinkedProject {
ProjectManifest(ProjectManifest),
InlineJsonProject(ProjectJson),

View file

@ -19,11 +19,14 @@ impl GlobalState {
if self.config.lru_capacity != old_config.lru_capacity {
self.analysis_host.update_lru_capacity(old_config.lru_capacity);
}
if self.config.flycheck != old_config.flycheck {
if self.config.linked_projects != old_config.linked_projects {
self.reload()
} else if self.config.flycheck != old_config.flycheck {
self.reload_flycheck();
}
}
pub(crate) fn reload(&mut self) {
log::info!("reloading projects: {:?}", self.config.linked_projects);
let workspaces = {
if self.config.linked_projects.is_empty()
&& self.config.notifications.cargo_toml_not_found