Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/project-model/src/workspace.rs')
-rw-r--r--crates/project-model/src/workspace.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/project-model/src/workspace.rs b/crates/project-model/src/workspace.rs
index 6b18b768cd..4dba11eac3 100644
--- a/crates/project-model/src/workspace.rs
+++ b/crates/project-model/src/workspace.rs
@@ -527,6 +527,16 @@ impl ProjectWorkspace {
}
}
+ pub fn manifest(&self) -> Option<&ManifestPath> {
+ match &self.kind {
+ ProjectWorkspaceKind::Cargo { cargo, .. } => Some(cargo.manifest_path()),
+ ProjectWorkspaceKind::Json(project) => project.manifest(),
+ ProjectWorkspaceKind::DetachedFile { cargo, .. } => {
+ Some(cargo.as_ref()?.0.manifest_path())
+ }
+ }
+ }
+
pub fn find_sysroot_proc_macro_srv(&self) -> anyhow::Result<AbsPathBuf> {
self.sysroot.discover_proc_macro_srv()
}