summaryrefslogtreecommitdiff
path: root/src/dynamic
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-02-02 22:06:16 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-02-02 22:06:16 +0000
commit40c82bbbef9536ef86cb84fb53950ca655de90f2 (patch)
tree1d693e1cdf2ace296ebacf893aa7293deafa8a62 /src/dynamic
parentf0eba62f7c65672e37713530fe123fe47fb93921 (diff)
parentfc66cf0e5917c166989360408d265133020fd510 (diff)
downloadclap_complete-40c82bbbef9536ef86cb84fb53950ca655de90f2.tar.gz
Snap for 11399400 from fc66cf0e5917c166989360408d265133020fd510 to sdk-release
Change-Id: Ic464c4b478f1283d22c7157d6bb386ca4f8ff5d0
Diffstat (limited to 'src/dynamic')
-rw-r--r--src/dynamic/completer.rs4
-rw-r--r--src/dynamic/mod.rs2
-rw-r--r--src/dynamic/shells/bash.rs2
-rw-r--r--src/dynamic/shells/fish.rs2
-rw-r--r--src/dynamic/shells/mod.rs6
-rw-r--r--src/dynamic/shells/shell.rs2
6 files changed, 13 insertions, 5 deletions
diff --git a/src/dynamic/completer.rs b/src/dynamic/completer.rs
index 8c8cb93..232dd4b 100644
--- a/src/dynamic/completer.rs
+++ b/src/dynamic/completer.rs
@@ -16,7 +16,7 @@ pub trait Completer {
completer: &str,
buf: &mut dyn std::io::Write,
) -> Result<(), std::io::Error>;
- /// Complete the command
+ /// Complete the given command
fn write_complete(
&self,
cmd: &mut clap::Command,
@@ -26,7 +26,7 @@ pub trait Completer {
) -> Result<(), std::io::Error>;
}
-/// Complete the command specified
+/// Complete the given command
pub fn complete(
cmd: &mut clap::Command,
args: Vec<std::ffi::OsString>,
diff --git a/src/dynamic/mod.rs b/src/dynamic/mod.rs
index f7c9857..ed72565 100644
--- a/src/dynamic/mod.rs
+++ b/src/dynamic/mod.rs
@@ -1,4 +1,6 @@
//! Complete commands within shells
+//!
+//! For quick-start, see [`shells::CompleteCommand`]
mod completer;
diff --git a/src/dynamic/shells/bash.rs b/src/dynamic/shells/bash.rs
index 43c128e..1308e67 100644
--- a/src/dynamic/shells/bash.rs
+++ b/src/dynamic/shells/bash.rs
@@ -1,6 +1,6 @@
use unicode_xid::UnicodeXID as _;
-/// Bash completions
+/// Completion support for Bash
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
pub struct Bash;
diff --git a/src/dynamic/shells/fish.rs b/src/dynamic/shells/fish.rs
index 9d7e8c6..cfb9519 100644
--- a/src/dynamic/shells/fish.rs
+++ b/src/dynamic/shells/fish.rs
@@ -1,4 +1,4 @@
-/// Fish completions
+/// Completion support for Fish
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
pub struct Fish;
diff --git a/src/dynamic/shells/mod.rs b/src/dynamic/shells/mod.rs
index 54d23a3..6cfed97 100644
--- a/src/dynamic/shells/mod.rs
+++ b/src/dynamic/shells/mod.rs
@@ -13,20 +13,26 @@ use std::io::Write as _;
use crate::dynamic::Completer as _;
+/// A subcommand definition to `flatten` into your CLI
+///
+/// This provides a one-stop solution for integrating completions into your CLI
#[derive(clap::Subcommand)]
#[allow(missing_docs)]
#[derive(Clone, Debug)]
+#[command(about = None, long_about = None)]
pub enum CompleteCommand {
/// Register shell completions for this program
#[command(hide = true)]
Complete(CompleteArgs),
}
+/// Generally used via [`CompleteCommand`]
#[derive(clap::Args)]
#[command(arg_required_else_help = true)]
#[command(group = clap::ArgGroup::new("complete").multiple(true).conflicts_with("register"))]
#[allow(missing_docs)]
#[derive(Clone, Debug)]
+#[command(about = None, long_about = None)]
pub struct CompleteArgs {
/// Specify shell to complete for
#[arg(long)]
diff --git a/src/dynamic/shells/shell.rs b/src/dynamic/shells/shell.rs
index a9f48ce..c36d2a2 100644
--- a/src/dynamic/shells/shell.rs
+++ b/src/dynamic/shells/shell.rs
@@ -4,7 +4,7 @@ use std::str::FromStr;
use clap::builder::PossibleValue;
use clap::ValueEnum;
-/// Shell with auto-generated completion script available.
+/// Completion support for built-in shells
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[non_exhaustive]
pub enum Shell {