diff --git a/Cargo.lock b/Cargo.lock index 280bbac0..55e7c618 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "aho-corasick" @@ -172,6 +172,27 @@ dependencies = [ "clap", ] +[[package]] +name = "clap_complete_command" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da8e198c052315686d36371e8a3c5778b7852fc75cc313e4e11eeb7a644a1b62" +dependencies = [ + "clap", + "clap_complete", + "clap_complete_nushell", +] + +[[package]] +name = "clap_complete_nushell" +version = "4.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6a8b1593457dfc2fe539002b795710d022dc62a65bf15023f039f9760c7b18a" +dependencies = [ + "clap", + "clap_complete", +] + [[package]] name = "clap_derive" version = "4.5.18" @@ -737,7 +758,7 @@ version = "1.13.2" dependencies = [ "anyhow", "clap", - "clap_complete", + "clap_complete_command", "crossbeam", "flexi_logger", "ignore", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index cb9e8cd6..6edb71b1 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -30,5 +30,5 @@ typeshare-core = { path = "../core", version = "=1.13.2" } log.workspace = true flexi_logger.workspace = true anyhow = "1" -clap_complete = "4.5.32" +clap_complete_command = "0.6.1" crossbeam = "0.8" diff --git a/cli/src/args.rs b/cli/src/args.rs index 05b79619..a78a8401 100644 --- a/cli/src/args.rs +++ b/cli/src/args.rs @@ -83,7 +83,7 @@ pub enum Command { /// Generate shell completions Completions { /// The shell to generate the completions for - shell: clap_complete::Shell, + shell: clap_complete_command::Shell, }, } diff --git a/cli/src/main.rs b/cli/src/main.rs index 7a702b4e..91bfaf5e 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -15,7 +15,6 @@ use std::{ use anyhow::{anyhow, Context}; use clap::{CommandFactory, Parser}; -use clap_complete::aot::generate; use flexi_logger::AdaptiveFormat; use ignore::{overrides::OverrideBuilder, types::TypesBuilder, WalkBuilder}; use log::{error, info}; @@ -51,8 +50,7 @@ fn main() -> anyhow::Result<()> { match options { Command::Completions { shell } => { let mut cmd = Args::command(); - let bin_name = cmd.get_name().to_string(); - generate(shell, &mut cmd, bin_name, &mut io::stdout()); + shell.generate(&mut cmd, &mut io::stdout()); } }