Disable cargo checking in workspaces with no cargo projects
This commit is contained in:
parent
d6da18e99d
commit
480c44918c
@ -58,6 +58,12 @@ pub fn new(options: &CheckOptions, workspace_root: PathBuf) -> CheckWatcher {
|
||||
CheckWatcher { task_recv, cmd_send: Some(cmd_send), handle: Some(handle), shared }
|
||||
}
|
||||
|
||||
/// Returns a CheckWatcher that doesn't actually do anything
|
||||
pub fn dummy() -> CheckWatcher {
|
||||
let shared = Arc::new(RwLock::new(CheckWatcherSharedState::new()));
|
||||
CheckWatcher { task_recv: never(), cmd_send: None, handle: None, shared }
|
||||
}
|
||||
|
||||
/// Schedule a re-start of the cargo check worker.
|
||||
pub fn update(&self) {
|
||||
if let Some(cmd_send) = &self.cmd_send {
|
||||
|
@ -132,20 +132,20 @@ pub fn new(
|
||||
change.set_crate_graph(crate_graph);
|
||||
|
||||
// FIXME: Figure out the multi-workspace situation
|
||||
let check_watcher = {
|
||||
let first_workspace = workspaces.first().unwrap();
|
||||
let cargo_project_root = match first_workspace {
|
||||
ProjectWorkspace::Cargo { cargo, .. } => cargo.workspace_root().to_path_buf(),
|
||||
ProjectWorkspace::Json { .. } => {
|
||||
log::warn!(
|
||||
"Cargo check watching only supported for cargo workspaces, disabling"
|
||||
);
|
||||
options.cargo_watch.enable = false;
|
||||
PathBuf::new()
|
||||
}
|
||||
};
|
||||
CheckWatcher::new(&options.cargo_watch, cargo_project_root)
|
||||
};
|
||||
let check_watcher = workspaces
|
||||
.iter()
|
||||
.find_map(|w| match w {
|
||||
ProjectWorkspace::Cargo { cargo, .. } => Some(cargo),
|
||||
ProjectWorkspace::Json { .. } => None,
|
||||
})
|
||||
.map(|cargo| {
|
||||
let cargo_project_root = cargo.workspace_root().to_path_buf();
|
||||
CheckWatcher::new(&options.cargo_watch, cargo_project_root)
|
||||
})
|
||||
.unwrap_or_else(|| {
|
||||
log::warn!("Cargo check watching only supported for cargo workspaces, disabling");
|
||||
CheckWatcher::dummy()
|
||||
});
|
||||
|
||||
let mut analysis_host = AnalysisHost::new(lru_capacity, feature_flags);
|
||||
analysis_host.apply_change(change);
|
||||
|
Loading…
Reference in New Issue
Block a user