Crate clap_autocomplete

Source
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 ValueHints 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_subcommand
Add the complete subcommand to your Command.
test_subcommand
Check the ArgMatches for the subcommand added by add_subcommand.