| use clap::FromArgMatches; |
| use clap::Subcommand; |
| |
| fn command() -> clap::Command { |
| let cmd = clap::Command::new("dynamic") |
| .arg( |
| clap::Arg::new("input") |
| .long("input") |
| .short('i') |
| .value_hint(clap::ValueHint::FilePath), |
| ) |
| .arg( |
| clap::Arg::new("format") |
| .long("format") |
| .short('F') |
| .value_parser(["json", "yaml", "toml"]), |
| ) |
| .args_conflicts_with_subcommands(true); |
| clap_complete::dynamic::shells::CompleteCommand::augment_subcommands(cmd) |
| } |
| |
| fn main() { |
| let cmd = command(); |
| let matches = cmd.get_matches(); |
| if let Ok(completions) = |
| clap_complete::dynamic::shells::CompleteCommand::from_arg_matches(&matches) |
| { |
| completions.complete(&mut command()); |
| } else { |
| println!("{matches:#?}"); |
| } |
| } |
| |
| #[test] |
| fn verify_cli() { |
| command().debug_assert(); |
| } |