#[non_exhaustive]
pub enum ValueHint {
Show 13 variants
Unknown,
Other,
AnyPath,
FilePath,
DirPath,
ExecutablePath,
CommandName,
CommandString,
CommandWithArguments,
Username,
Hostname,
Url,
EmailAddress,
}
Expand description
Provide shell with hint on how to complete an argument.
See Arg::value_hint to set this on an argument.
See the clap_complete
crate for completion script generation.
Overview of which hints are supported by which shell:
Hint | zsh | fish1 |
---|---|---|
AnyPath | Yes | Yes |
FilePath | Yes | Yes |
DirPath | Yes | Yes |
ExecutablePath | Yes | Partial |
CommandName | Yes | Yes |
CommandString | Yes | Partial |
CommandWithArguments | Yes | |
Username | Yes | Yes |
Hostname | Yes | Yes |
Url | Yes | |
EmailAddress | Yes |
fish completions currently only support named arguments (e.g. -o or –opt), not positional arguments. ↩
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Unknown
Default value if hint is not specified. Follows shell default behavior, which is usually auto-completing filenames.
Other
None of the hints below apply. Disables shell completion for this argument.
AnyPath
Any existing path.
FilePath
Path to a file.
DirPath
Path to a directory.
ExecutablePath
Path to an executable file.
CommandName
Name of a command, without arguments. May be relative to PATH, or full path to executable.
CommandString
A single string containing a command and its arguments.
CommandWithArguments
Capture the remaining arguments as a command name and arguments for that command. This is
common when writing shell wrappers that execute anther command, for example sudo
or env
.
This hint is special, the argument must be a positional argument and have
.num_args(1..)
and Command must use Command::trailing_var_arg(true)
. The result is that the
command line my_app ls -la /
will be parsed as ["ls", "-la", "/"]
and clap won’t try to
parse the -la
argument itself.
Username
Name of a local operating system user.
Hostname
Host name of a computer.
Shells usually parse /etc/hosts
and .ssh/known_hosts
to complete hostnames.
Url
Complete web address.
EmailAddress
Email address.