Reduces boilerplate for adding a completion command to Clap
```rust use clap::{IntoApp, Parser, Subcommand};
struct Cli { #[clap(subcommand)] command: Commands, }
enum Commands { /// Generate shell completion Completion { /// The shell to generate the completions for #[clap(argenum)] shell: clapcomplete_command::Shell, }, }
fn main() { let cli = Cli::parse();
match cli.command {
// e.g. `$ cli completion bash`
Commands::Completion { shell } => {
shell.generate(
&mut Cli::command(),
env!("CARGO_PKG_NAME"),
&mut std::io::stdout(),
);
}
}
} ```
The supported shells can be seen in clap_complete_command::Shell
.