Crate clap_complete

Source
Expand description

§Quick Start

Shell is a convenience enum for an argument value type that implements Generator for each natively-supported shell type.

§Example

use clap::{Command, Arg, ValueHint, value_parser, ArgAction};
use clap_complete::aot::{generate, Generator, Shell};
use std::io;

fn build_cli() -> Command {
    Command::new("example")
        .arg(Arg::new("file")
            .help("some input file")
            .value_hint(ValueHint::AnyPath))
        .arg(Arg::new("generator")
            .long("generate")
            .action(ArgAction::Set)
            .value_parser(value_parser!(Shell)))
}

fn print_completions<G: Generator>(generator: G, cmd: &mut Command) {
    generate(generator, cmd, cmd.get_name().to_string(), &mut io::stdout());
}

fn main() {
    let matches = build_cli().get_matches();

    if let Some(generator) = matches.get_one::<Shell>("generator").copied() {
        let mut cmd = build_cli();
        eprintln!("Generating completion file for {generator}...");
        print_completions(generator, &mut cmd);
    }
}

§clap_complete

Shell completion generation for clap

Crates.io Crates.io License License

Dual-licensed under Apache 2.0 or MIT.

  1. About
  2. API Reference
  3. Questions & Discussions
  4. CONTRIBUTING
  5. Sponsors

§About

Re-exports§

pub use engine::ArgValueCompleter;unstable-dynamic
pub use engine::PathCompleter;unstable-dynamic
pub use env::CompleteEnv;unstable-dynamic
pub use aot::generate;
pub use aot::generate_to;
pub use aot::Generator;
pub use aot::Shell;

Modules§

aot
Prebuilt completions
engineunstable-dynamic
clap-native completion system
envunstable-dynamic
COMPLETE=$SHELL <bin> completion integration
generator
Deprecated, see aot
shells
Deprecated, see aot

Structs§

ArgValueCandidatesunstable-dynamic
Extend Arg with a ValueCandidates
CompletionCandidateunstable-dynamic
A shell-agnostic completion candidate

Enums§

ValueHint
Provide shell with hint on how to complete an argument.