diff options
Diffstat (limited to 'crates/ra_cli/src/main.rs')
-rw-r--r-- | crates/ra_cli/src/main.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/crates/ra_cli/src/main.rs b/crates/ra_cli/src/main.rs index 9c23cf001..750cbab86 100644 --- a/crates/ra_cli/src/main.rs +++ b/crates/ra_cli/src/main.rs | |||
@@ -134,13 +134,14 @@ fn main() -> Result<()> { | |||
134 | let path: String = matches.opt_value_from_str("--path")?.unwrap_or_default(); | 134 | let path: String = matches.opt_value_from_str("--path")?.unwrap_or_default(); |
135 | let highlight_path: Option<String> = matches.opt_value_from_str("--highlight")?; | 135 | let highlight_path: Option<String> = matches.opt_value_from_str("--highlight")?; |
136 | let complete_path: Option<String> = matches.opt_value_from_str("--complete")?; | 136 | let complete_path: Option<String> = matches.opt_value_from_str("--complete")?; |
137 | let op = match (highlight_path, complete_path) { | 137 | let goto_def_path: Option<String> = matches.opt_value_from_str("--goto-def")?; |
138 | (Some(path), None) => { | 138 | let op = match (highlight_path, complete_path, goto_def_path) { |
139 | let path: String = path; | 139 | (Some(path), None, None) => analysis_bench::Op::Highlight { path: path.into() }, |
140 | analysis_bench::Op::Highlight { path: path.into() } | 140 | (None, Some(position), None) => analysis_bench::Op::Complete(position.parse()?), |
141 | } | 141 | (None, None, Some(position)) => analysis_bench::Op::GotoDef(position.parse()?), |
142 | (None, Some(position)) => analysis_bench::Op::Complete(position.parse()?), | 142 | _ => panic!( |
143 | _ => panic!("exactly one of `--highlight`, `--complete` must be set"), | 143 | "exactly one of `--highlight`, `--complete` or `--goto-def` must be set" |
144 | ), | ||
144 | }; | 145 | }; |
145 | matches.finish().or_else(handle_extra_flags)?; | 146 | matches.finish().or_else(handle_extra_flags)?; |
146 | analysis_bench::run(verbose, path.as_ref(), op)?; | 147 | analysis_bench::run(verbose, path.as_ref(), op)?; |