The complete clap generation utility to give your command-line application users a more polished experience right out of the box.
This single crate integrates all other shell-specific crates to generate all the things at once.
To create all shell completions use the following command:
use clap_allgen::render_shell_completions;
#[derive(Debug, clap::Parser)]
enum Commands {
First,
Second,
Third,
}
render_shell_completions::<Commands>("/tmp/shell-completions").expect("generation to work");
To generate man pages for your commands use:
use clap_allgen::render_manpages;
#[derive(Debug, clap::Parser)]
enum Commands {
First,
Second,
Third,
}
render_manpages::<Commands>("/tmp/man-pages").expect("generation to work");
Since the project is called clap_allgen it tries to generate completions for every shell that has a Rust crate.
For people who want to have more fine-grained control over dependencies that are pulled in, this crate offers a way to disable individual dependencies by using crate features.
By default all features are enabled so default-features = false
is required to override it.
Then, one can opt-in using the following features:
nushell
- generates NuShell completions usingclap_complete_nushell
fig
- generates Fig completions usingclap_complete_fig
carapace
- generates Carapace spec files usingcarapace_spec_clap
This project is licensed under either of:
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.