mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-03 15:15:24 +00:00
Refactor arg parsing
This commit is contained in:
parent
2ba918775c
commit
6a3ec2dfa5
1 changed files with 8 additions and 11 deletions
|
@ -132,18 +132,15 @@ fn main() -> Result<()> {
|
||||||
}
|
}
|
||||||
let verbose = matches.contains(["-v", "--verbose"]);
|
let verbose = matches.contains(["-v", "--verbose"]);
|
||||||
let path: String = matches.opt_value_from_str("--path")?.unwrap_or_default();
|
let path: String = matches.opt_value_from_str("--path")?.unwrap_or_default();
|
||||||
let highlight_path = matches.opt_value_from_str("--highlight")?;
|
let highlight_path: Option<String> = matches.opt_value_from_str("--highlight")?;
|
||||||
let complete_path: Option<String> = matches.opt_value_from_str("--complete")?;
|
let complete_path: Option<String> = matches.opt_value_from_str("--complete")?;
|
||||||
if highlight_path.is_some() && complete_path.is_some() {
|
let op = match (highlight_path, complete_path) {
|
||||||
panic!("either --highlight or --complete must be set, not both")
|
(Some(path), None) => {
|
||||||
}
|
let path: String = path;
|
||||||
let op = if let Some(path) = highlight_path {
|
analysis_bench::Op::Highlight { path: path.into() }
|
||||||
let path: String = path;
|
}
|
||||||
analysis_bench::Op::Highlight { path: path.into() }
|
(None, Some(position)) => analysis_bench::Op::Complete(position.parse()?),
|
||||||
} else if let Some(position) = complete_path {
|
_ => panic!("exactly one of `--highlight`, `--complete` must be set"),
|
||||||
analysis_bench::Op::Complete(position.parse()?)
|
|
||||||
} else {
|
|
||||||
panic!("either --highlight or --complete must be set")
|
|
||||||
};
|
};
|
||||||
matches.finish().or_else(handle_extra_flags)?;
|
matches.finish().or_else(handle_extra_flags)?;
|
||||||
analysis_bench::run(verbose, path.as_ref(), op)?;
|
analysis_bench::run(verbose, path.as_ref(), op)?;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue