diff options
| author | Ali Bektas <bektasali@protonmail.com> | 2024-07-22 02:42:39 +0200 |
|---|---|---|
| committer | Ali Bektas <bektasali@protonmail.com> | 2024-07-22 02:42:39 +0200 |
| commit | d5cfeb5f88fd8d80f3c39badcea8cd2e95dad96d (patch) | |
| tree | 944a83e7cbe530f2606518d5b38cdd2011c750e6 /src/tools/rust-analyzer/crates/project-model | |
| parent | 402e176f06f21d3bac348dbe09a2af689672b0c6 (diff) | |
Read rust-analyzer.toml files on startup
Diffstat (limited to 'src/tools/rust-analyzer/crates/project-model')
| -rw-r--r-- | src/tools/rust-analyzer/crates/project-model/src/project_json.rs | 5 | ||||
| -rw-r--r-- | src/tools/rust-analyzer/crates/project-model/src/workspace.rs | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/project-model/src/project_json.rs b/src/tools/rust-analyzer/crates/project-model/src/project_json.rs index 421ef25a45a..cf0a6ad4025 100644 --- a/src/tools/rust-analyzer/crates/project-model/src/project_json.rs +++ b/src/tools/rust-analyzer/crates/project-model/src/project_json.rs @@ -291,6 +291,11 @@ impl ProjectJson { self.manifest.as_ref().map_or(&self.project_root, |manifest| manifest.as_ref()) } + /// Returns the path to the project's root folder. + pub fn project_root(&self) -> &AbsPath { + &self.project_root + } + pub fn runnables(&self) -> &[Runnable] { &self.runnables } diff --git a/src/tools/rust-analyzer/crates/project-model/src/workspace.rs b/src/tools/rust-analyzer/crates/project-model/src/workspace.rs index 8c77da8f38a..bfbdf038357 100644 --- a/src/tools/rust-analyzer/crates/project-model/src/workspace.rs +++ b/src/tools/rust-analyzer/crates/project-model/src/workspace.rs @@ -523,6 +523,14 @@ impl ProjectWorkspace { } } + pub fn workspace_root(&self) -> &AbsPath { + match &self.kind { + ProjectWorkspaceKind::Cargo { cargo, .. } => cargo.workspace_root(), + ProjectWorkspaceKind::Json(project) => project.project_root(), + ProjectWorkspaceKind::DetachedFile { file, .. } => file.parent(), + } + } + pub fn manifest(&self) -> Option<&ManifestPath> { match &self.kind { ProjectWorkspaceKind::Cargo { cargo, .. } => Some(cargo.manifest_path()), |
