aboutsummaryrefslogtreecommitdiff
path: root/crates/rust-analyzer/src/cargo_target_spec.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-12-08 13:28:21 +0000
committerAleksey Kladov <[email protected]>2020-12-08 13:28:21 +0000
commit944f30bd694be71d76e1a175033e19409fe9f8b4 (patch)
tree7e5f94903cf0777c37789d94d0d3cc251e1834cb /crates/rust-analyzer/src/cargo_target_spec.rs
parentecd1c11f9e8ae7718f4243d1eb4c9a45efd060a2 (diff)
Open Cargo.toml opens more specific manifest
Diffstat (limited to 'crates/rust-analyzer/src/cargo_target_spec.rs')
-rw-r--r--crates/rust-analyzer/src/cargo_target_spec.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/crates/rust-analyzer/src/cargo_target_spec.rs b/crates/rust-analyzer/src/cargo_target_spec.rs
index 1ab72bd91..8a8b4a32c 100644
--- a/crates/rust-analyzer/src/cargo_target_spec.rs
+++ b/crates/rust-analyzer/src/cargo_target_spec.rs
@@ -14,6 +14,7 @@ use crate::{global_state::GlobalStateSnapshot, Result};
14#[derive(Clone)] 14#[derive(Clone)]
15pub(crate) struct CargoTargetSpec { 15pub(crate) struct CargoTargetSpec {
16 pub(crate) workspace_root: AbsPathBuf, 16 pub(crate) workspace_root: AbsPathBuf,
17 pub(crate) cargo_toml: AbsPathBuf,
17 pub(crate) package: String, 18 pub(crate) package: String,
18 pub(crate) target: String, 19 pub(crate) target: String,
19 pub(crate) target_kind: TargetKind, 20 pub(crate) target_kind: TargetKind,
@@ -115,12 +116,17 @@ impl CargoTargetSpec {
115 Some(it) => it, 116 Some(it) => it,
116 None => return Ok(None), 117 None => return Ok(None),
117 }; 118 };
119
120 let target_data = &cargo_ws[target];
121 let package_data = &cargo_ws[target_data.package];
118 let res = CargoTargetSpec { 122 let res = CargoTargetSpec {
119 workspace_root: cargo_ws.workspace_root().to_path_buf(), 123 workspace_root: cargo_ws.workspace_root().to_path_buf(),
120 package: cargo_ws.package_flag(&cargo_ws[cargo_ws[target].package]), 124 cargo_toml: package_data.manifest.clone(),
121 target: cargo_ws[target].name.clone(), 125 package: cargo_ws.package_flag(&package_data),
122 target_kind: cargo_ws[target].kind, 126 target: target_data.name.clone(),
127 target_kind: target_data.kind,
123 }; 128 };
129
124 Ok(Some(res)) 130 Ok(Some(res))
125 } 131 }
126 132