Include buildfiles in vfs

This commit is contained in:
David Richey 2024-09-26 11:58:30 -04:00
parent af9a658864
commit 85ca217765
2 changed files with 16 additions and 0 deletions

View file

@ -265,6 +265,11 @@ impl ProjectFolders {
entries.push(manifest.to_owned()); entries.push(manifest.to_owned());
} }
for buildfile in ws.buildfiles() {
file_set_roots.push(VfsPath::from(buildfile.to_owned()));
entries.push(buildfile.to_owned());
}
// In case of detached files we do **not** look for a rust-analyzer.toml. // In case of detached files we do **not** look for a rust-analyzer.toml.
if !matches!(ws.kind, ProjectWorkspaceKind::DetachedFile { .. }) { if !matches!(ws.kind, ProjectWorkspaceKind::DetachedFile { .. }) {
let ws_root = ws.workspace_root(); let ws_root = ws.workspace_root();

View file

@ -539,6 +539,17 @@ impl ProjectWorkspace {
} }
} }
pub fn buildfiles(&self) -> Vec<AbsPathBuf> {
match &self.kind {
ProjectWorkspaceKind::Json(project) => project
.crates()
.filter_map(|(_, krate)| krate.build.as_ref().map(|build| build.build_file.clone()))
.map(AbsPathBuf::assert)
.collect(),
_ => vec![],
}
}
pub fn find_sysroot_proc_macro_srv(&self) -> anyhow::Result<AbsPathBuf> { pub fn find_sysroot_proc_macro_srv(&self) -> anyhow::Result<AbsPathBuf> {
self.sysroot.discover_proc_macro_srv() self.sysroot.discover_proc_macro_srv()
} }