Module clap_complete::aot

source ·
Expand description

Prebuilt completions

§Quick Start

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

To customize completions, see

§Example

use clap::{Command, Arg, ValueHint, value_parser, ArgAction};
use clap_complete::{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>(gen: G, cmd: &mut Command) {
    generate(gen, 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);
    }
}

Modules§

  • Helpers for writing generators

Structs§

  • Generate bash completion file
  • Generate elvish completion file
  • Generate fish completion file
  • Generate powershell completion file
  • Generate zsh completion file

Enums§

  • Shell with auto-generated completion script available.
  • Provide shell with hint on how to complete an argument.

Traits§

  • Generator trait which can be used to write generators

Functions§

  • Generate a completions file for a specified shell at runtime.
  • Generate a completions file for a specified shell at compile-time.