No description
Find a file
2022-11-11 21:35:21 +08:00
.github/workflows chore: release 0.1.0 2022-11-11 21:35:21 +08:00
examples chore: release 0.1.0 2022-11-11 21:35:21 +08:00
src chore: release 0.1.0 2022-11-11 21:35:21 +08:00
tests chore: release 0.1.0 2022-11-11 21:35:21 +08:00
.gitignore chore: release 0.1.0 2022-11-11 21:35:21 +08:00
Cargo.toml chore: release 0.1.0 2022-11-11 21:35:21 +08:00
LICENSE chore: release 0.1.0 2022-11-11 21:35:21 +08:00
README.md chore: release 0.1.0 2022-11-11 21:35:21 +08:00

clap_complete_nushell

Generates Nushell completions for clap based CLIs

Examples

myapp.rs

use clap::{Arg, ArgAction, Command};
use clap_complete::generate;
use clap_complete_nushell::Nushell;
use std::io;

fn main() {
    let mut cmd = Command::new("myapp")
        .version("3.0")
        .propagate_version(true)
        .about("Tests completions")
        .arg(
            Arg::new("file")
                .value_hint(clap::ValueHint::FilePath)
                .help("some input file"),
        )
        .arg(
            Arg::new("config")
                .action(ArgAction::Count)
                .help("some config file")
                .short('c')
                .visible_short_alias('C')
                .long("config")
                .visible_alias("conf"),
        )
        .arg(Arg::new("choice").value_parser(["first", "second"]))
        .subcommand(
            Command::new("test").about("tests things").arg(
                Arg::new("case")
                    .long("case")
                    .action(ArgAction::Set)
                    .help("the case to test"),
            ),
        )
        .subcommand(
            Command::new("some_cmd")
                .about("top level subcommand")
                .subcommand(
                    Command::new("sub_cmd").about("sub-subcommand").arg(
                        Arg::new("config")
                            .long("config")
                            .action(ArgAction::Set)
                            .value_parser([clap::builder::PossibleValue::new(
                                "Lest quotes aren't escaped.",
                            )])
                            .help("the other case to test"),
                    ),
                ),
        );

    generate(Nushell, &mut cmd, "myapp", &mut io::stdout());
}

myapp.nu

module completions {

  # Tests completions
  export extern myapp [
    file?: string	# some input file
    --config(-c)	# some config file
    choice?: string
    --version(-V)	# Print version information
  ]

  # tests things
  export extern "myapp test" [
    --case: string	# the case to test
    --version(-V)	# Print version information
  ]

  # top level subcommand
  export extern "myapp some_cmd" [
    --version(-V)	# Print version information
  ]

  # sub-subcommand
  export extern "myapp some_cmd sub_cmd" [
    --config: string	# the other case to test
    --version(-V)	# Print version information
  ]

}

use completions *