Expand description
Easy to integrate shell completion for Clap. Tries to choose the user’s shell and put completion files in the appropriate locations.
For best results, please add [ValueHint
]s to every argument that takes a value.
This greatly improves the shell completion experience.
§Examples
// Create a command from the crate metadata
let mut command = clap::command!();
// Register `complete` subcommand
command = clap_autocomplete::add_subcommand(command);
// Add other arguments and subcommands
let command_copy = command.clone();
// Resolve the matches
let matches = command.get_matches();
if let Some(result) = clap_autocomplete::test_subcommand(&matches, command_copy) {
if let Err(err) = result {
eprintln!("Insufficient permissions: {err}");
std::process::exit(1);
} else {
std::process::exit(0);
}
} else {
// Continue with the application logic
}
Functions§
- Add the
complete
subcommand to your [Command
]. - Check the [
ArgMatches
] for the subcommand added byadd_subcommand
.