4 releases
0.2.1 | Sep 16, 2024 |
---|---|
0.2.0 | Aug 13, 2024 |
0.1.1 | Apr 9, 2024 |
0.1.0 | Jan 9, 2024 |
#272 in Command-line interface
1,640 downloads per month
Used in 2 crates
12KB
91 lines
Clap All-Gen
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.
Examples
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");
Features
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
License
This project is licensed under either of:
at your option.
Contribution
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.
Dependencies
~1.3–2.2MB
~41K SLoC