diff options
author | Hannes De Valkeneer <[email protected]> | 2020-03-09 21:06:45 +0000 |
---|---|---|
committer | Hannes De Valkeneer <[email protected]> | 2020-03-11 21:26:47 +0000 |
commit | e903fd0d9726dc6343a26ddeb919099fb8e4979e (patch) | |
tree | 23c2de00603542c434cc8e413c7d7cc425869cd2 /crates/rust-analyzer/src/cargo_target_spec.rs | |
parent | 05b4fc6d79060fc3120f92b01119e3a851c37829 (diff) |
feat: add debug code lens
Refs #3539
Diffstat (limited to 'crates/rust-analyzer/src/cargo_target_spec.rs')
-rw-r--r-- | crates/rust-analyzer/src/cargo_target_spec.rs | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/crates/rust-analyzer/src/cargo_target_spec.rs b/crates/rust-analyzer/src/cargo_target_spec.rs index 53751aafb..321861b16 100644 --- a/crates/rust-analyzer/src/cargo_target_spec.rs +++ b/crates/rust-analyzer/src/cargo_target_spec.rs | |||
@@ -19,50 +19,48 @@ impl CargoTargetSpec { | |||
19 | pub(crate) fn runnable_args( | 19 | pub(crate) fn runnable_args( |
20 | spec: Option<CargoTargetSpec>, | 20 | spec: Option<CargoTargetSpec>, |
21 | kind: &RunnableKind, | 21 | kind: &RunnableKind, |
22 | ) -> Result<Vec<String>> { | 22 | ) -> Result<(Vec<String>, Vec<String>)> { |
23 | let mut res = Vec::new(); | 23 | let mut args = Vec::new(); |
24 | let mut extra_args = Vec::new(); | ||
24 | match kind { | 25 | match kind { |
25 | RunnableKind::Test { test_id } => { | 26 | RunnableKind::Test { test_id } => { |
26 | res.push("test".to_string()); | 27 | args.push("test".to_string()); |
27 | if let Some(spec) = spec { | 28 | if let Some(spec) = spec { |
28 | spec.push_to(&mut res); | 29 | spec.push_to(&mut args); |
29 | } | 30 | } |
30 | res.push("--".to_string()); | 31 | extra_args.push(test_id.to_string()); |
31 | res.push(test_id.to_string()); | ||
32 | if let TestId::Path(_) = test_id { | 32 | if let TestId::Path(_) = test_id { |
33 | res.push("--exact".to_string()); | 33 | extra_args.push("--exact".to_string()); |
34 | } | 34 | } |
35 | res.push("--nocapture".to_string()); | 35 | extra_args.push("--nocapture".to_string()); |
36 | } | 36 | } |
37 | RunnableKind::TestMod { path } => { | 37 | RunnableKind::TestMod { path } => { |
38 | res.push("test".to_string()); | 38 | args.push("test".to_string()); |
39 | if let Some(spec) = spec { | 39 | if let Some(spec) = spec { |
40 | spec.push_to(&mut res); | 40 | spec.push_to(&mut args); |
41 | } | 41 | } |
42 | res.push("--".to_string()); | 42 | extra_args.push(path.to_string()); |
43 | res.push(path.to_string()); | 43 | extra_args.push("--nocapture".to_string()); |
44 | res.push("--nocapture".to_string()); | ||
45 | } | 44 | } |
46 | RunnableKind::Bench { test_id } => { | 45 | RunnableKind::Bench { test_id } => { |
47 | res.push("bench".to_string()); | 46 | args.push("bench".to_string()); |
48 | if let Some(spec) = spec { | 47 | if let Some(spec) = spec { |
49 | spec.push_to(&mut res); | 48 | spec.push_to(&mut args); |
50 | } | 49 | } |
51 | res.push("--".to_string()); | 50 | extra_args.push(test_id.to_string()); |
52 | res.push(test_id.to_string()); | ||
53 | if let TestId::Path(_) = test_id { | 51 | if let TestId::Path(_) = test_id { |
54 | res.push("--exact".to_string()); | 52 | extra_args.push("--exact".to_string()); |
55 | } | 53 | } |
56 | res.push("--nocapture".to_string()); | 54 | extra_args.push("--nocapture".to_string()); |
57 | } | 55 | } |
58 | RunnableKind::Bin => { | 56 | RunnableKind::Bin => { |
59 | res.push("run".to_string()); | 57 | args.push("run".to_string()); |
60 | if let Some(spec) = spec { | 58 | if let Some(spec) = spec { |
61 | spec.push_to(&mut res); | 59 | spec.push_to(&mut args); |
62 | } | 60 | } |
63 | } | 61 | } |
64 | } | 62 | } |
65 | Ok(res) | 63 | Ok((args, extra_args)) |
66 | } | 64 | } |
67 | 65 | ||
68 | pub(crate) fn for_file( | 66 | pub(crate) fn for_file( |