diff options
author | Christian Duerr <contact@christianduerr.com> | 2022-06-16 17:01:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-16 18:01:13 +0300 |
commit | 9f02fb95685f46c390148eeab760e3a0dcfa49a9 (patch) | |
tree | 50a05564188eaded4a3133560c5caeb7e8b1ddb1 | |
parent | ff7f74fd29945ec7913c7b99fd743298164c7888 (diff) | |
download | alacritty-9f02fb95685f46c390148eeab760e3a0dcfa49a9.tar.gz alacritty-9f02fb95685f46c390148eeab760e3a0dcfa49a9.zip |
Add value hints for clap file paths
This ensures that the generated completions properly suggest file paths
for arguments which accept them.
-rw-r--r-- | Cargo.lock | 32 | ||||
-rw-r--r-- | alacritty/src/cli.rs | 14 | ||||
-rw-r--r-- | extra/completions/_alacritty | 20 | ||||
-rw-r--r-- | extra/completions/alacritty.bash | 6 | ||||
-rw-r--r-- | extra/completions/alacritty.fish | 13 |
5 files changed, 43 insertions, 42 deletions
@@ -168,16 +168,16 @@ dependencies = [ [[package]] name = "clap" -version = "3.0.3" +version = "3.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17a98d95cbe8abdf3bfe1a2bd4aa7215700403b79a0eb03cbddb017a5824e186" +checksum = "d53da17d37dba964b9b3ecb5c5a1f193a2762c700e6829201e645b9381c99dc7" dependencies = [ "atty", "bitflags", "clap_derive", + "clap_lex", "indexmap", - "lazy_static", - "os_str_bytes", + "once_cell", "strsim", "termcolor", "textwrap", @@ -185,18 +185,18 @@ dependencies = [ [[package]] name = "clap_complete" -version = "3.0.2" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a394f7ec0715b42a4e52b294984c27c9a61f77c8d82f7774c5198350be143f19" +checksum = "0f6ebaab5f25e4f0312dfa07cb30a755204b96e6531457c2cfdecfdf5f2adf40" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "3.0.2" +version = "3.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "448c8b00367288ad41804ac7a9e0fe58f2324a36901cb5d6b6db58be86d1db8f" +checksum = "c11d40217d16aee8508cc8e5fde8b4ff24639758608e5374e731b53f85749fb9" dependencies = [ "heck", "proc-macro-error", @@ -206,6 +206,15 @@ dependencies = [ ] [[package]] +name = "clap_lex" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5538cd660450ebeb4234cfecf8f2284b844ffc4c50531e66d584ad5b91293613" +dependencies = [ + "os_str_bytes", +] + +[[package]] name = "clipboard-win" version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1201,9 +1210,6 @@ name = "os_str_bytes" version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" -dependencies = [ - "memchr", -] [[package]] name = "osmesa-sys" @@ -1573,9 +1579,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.14.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "thiserror" diff --git a/alacritty/src/cli.rs b/alacritty/src/cli.rs index 83b317b9..be377700 100644 --- a/alacritty/src/cli.rs +++ b/alacritty/src/cli.rs @@ -3,7 +3,7 @@ use std::path::PathBuf; #[cfg(unix)] use clap::Subcommand; -use clap::{Args, Parser}; +use clap::{Args, Parser, ValueHint}; use log::{self, error, LevelFilter}; use serde::{Deserialize, Serialize}; use serde_yaml::Value; @@ -31,22 +31,22 @@ pub struct Options { /// Specify alternative configuration file [default: $XDG_CONFIG_HOME/alacritty/alacritty.yml]. #[cfg(not(any(target_os = "macos", windows)))] - #[clap(long)] + #[clap(long, value_hint = ValueHint::FilePath)] pub config_file: Option<PathBuf>, /// Specify alternative configuration file [default: %APPDATA%\alacritty\alacritty.yml]. #[cfg(windows)] - #[clap(long)] + #[clap(long, value_hint = ValueHint::FilePath)] pub config_file: Option<PathBuf>, /// Specify alternative configuration file [default: $HOME/.config/alacritty/alacritty.yml]. #[cfg(target_os = "macos")] - #[clap(long)] + #[clap(long, value_hint = ValueHint::FilePath)] pub config_file: Option<PathBuf>, /// Path for IPC socket creation. #[cfg(unix)] - #[clap(long)] + #[clap(long, value_hint = ValueHint::FilePath)] pub socket: Option<PathBuf>, /// Reduces the level of verbosity (the min level is -qq). @@ -177,7 +177,7 @@ fn parse_class(input: &str) -> Result<Class, String> { #[derive(Serialize, Deserialize, Args, Default, Debug, Clone, PartialEq, Eq)] pub struct TerminalOptions { /// Start the shell in the specified working directory. - #[clap(long)] + #[clap(long, value_hint = ValueHint::FilePath)] pub working_directory: Option<PathBuf>, /// Remain open after child process exit. @@ -260,7 +260,7 @@ pub enum Subcommands { #[derive(Args, Debug)] pub struct MessageOptions { /// IPC socket connection path override. - #[clap(long, short)] + #[clap(long, short, value_hint = ValueHint::FilePath)] pub socket: Option<PathBuf>, /// Message which should be sent. diff --git a/extra/completions/_alacritty b/extra/completions/_alacritty index 4f482236..86226236 100644 --- a/extra/completions/_alacritty +++ b/extra/completions/_alacritty @@ -16,11 +16,11 @@ _alacritty() { local context curcontext="$curcontext" state line _arguments "${_arguments_options[@]}" \ '--embed=[Defines the X11 window ID (as a decimal integer) to embed Alacritty within]:EMBED: ' \ -'--config-file=[Specify alternative configuration file \[default: $XDG_CONFIG_HOME/alacritty/alacritty.yml\]]:CONFIG_FILE: ' \ -'--socket=[Path for IPC socket creation]:SOCKET: ' \ +'--config-file=[Specify alternative configuration file \[default: $XDG_CONFIG_HOME/alacritty/alacritty.yml\]]:CONFIG_FILE:_files' \ +'--socket=[Path for IPC socket creation]:SOCKET:_files' \ '*-o+[Override configuration file options \[example: cursor.style=Beam\]]:OPTION: ' \ '*--option=[Override configuration file options \[example: cursor.style=Beam\]]:OPTION: ' \ -'--working-directory=[Start the shell in the specified working directory]:WORKING_DIRECTORY: ' \ +'--working-directory=[Start the shell in the specified working directory]:WORKING_DIRECTORY:_files' \ '*-e+[Command and args to execute (must be last argument)]:COMMAND: ' \ '*--command=[Command and args to execute (must be last argument)]:COMMAND: ' \ '-t+[Defines the window title \[default: Alacritty\]]:TITLE: ' \ @@ -46,8 +46,8 @@ _alacritty() { case $line[1] in (msg) _arguments "${_arguments_options[@]}" \ -'-s+[IPC socket connection path override]:SOCKET: ' \ -'--socket=[IPC socket connection path override]:SOCKET: ' \ +'-s+[IPC socket connection path override]:SOCKET:_files' \ +'--socket=[IPC socket connection path override]:SOCKET:_files' \ '-h[Print help information]' \ '--help[Print help information]' \ ":: :_alacritty__msg_commands" \ @@ -62,13 +62,12 @@ _arguments "${_arguments_options[@]}" \ case $line[1] in (create-window) _arguments "${_arguments_options[@]}" \ -'--working-directory=[Start the shell in the specified working directory]:WORKING_DIRECTORY: ' \ +'--working-directory=[Start the shell in the specified working directory]:WORKING_DIRECTORY:_files' \ '*-e+[Command and args to execute (must be last argument)]:COMMAND: ' \ '*--command=[Command and args to execute (must be last argument)]:COMMAND: ' \ '-t+[Defines the window title \[default: Alacritty\]]:TITLE: ' \ '--title=[Defines the window title \[default: Alacritty\]]:TITLE: ' \ '--class=[Defines window class/app_id on X11/Wayland \[default: Alacritty\]]:instance> | <instance>,<general: ' \ -'--version[Print version information]' \ '--hold[Remain open after child process exit]' \ '-h[Print help information]' \ '--help[Print help information]' \ @@ -76,9 +75,7 @@ _arguments "${_arguments_options[@]}" \ ;; (help) _arguments "${_arguments_options[@]}" \ -'--version[Print version information]' \ -'-h[Print help information]' \ -'--help[Print help information]' \ +'*::subcommand -- The subcommand whose help message to display:' \ && ret=0 ;; esac @@ -87,6 +84,7 @@ esac ;; (help) _arguments "${_arguments_options[@]}" \ +'*::subcommand -- The subcommand whose help message to display:' \ && ret=0 ;; esac @@ -126,4 +124,4 @@ _alacritty__msg_commands() { _describe -t commands 'alacritty msg commands' commands "$@" } -_alacritty "$@"
\ No newline at end of file +_alacritty "$@" diff --git a/extra/completions/alacritty.bash b/extra/completions/alacritty.bash index fcdfc6e8..428e9583 100644 --- a/extra/completions/alacritty.bash +++ b/extra/completions/alacritty.bash @@ -86,7 +86,7 @@ _alacritty() { return 0 ;; alacritty__help) - opts="" + opts="<SUBCOMMAND>..." if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -122,7 +122,7 @@ _alacritty() { return 0 ;; alacritty__msg__create__window) - opts="-e -t -h --version --working-directory --hold --command --title --class --help" + opts="-e -t -h --working-directory --hold --command --title --class --help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -160,7 +160,7 @@ _alacritty() { return 0 ;; alacritty__msg__help) - opts="-h --version --help" + opts="<SUBCOMMAND>..." if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 diff --git a/extra/completions/alacritty.fish b/extra/completions/alacritty.fish index 0ad2fd27..f425448b 100644 --- a/extra/completions/alacritty.fish +++ b/extra/completions/alacritty.fish @@ -1,8 +1,8 @@ complete -c alacritty -n "__fish_use_subcommand" -l embed -d 'Defines the X11 window ID (as a decimal integer) to embed Alacritty within' -r -complete -c alacritty -n "__fish_use_subcommand" -l config-file -d 'Specify alternative configuration file [default: $XDG_CONFIG_HOME/alacritty/alacritty.yml]' -r -complete -c alacritty -n "__fish_use_subcommand" -l socket -d 'Path for IPC socket creation' -r +complete -c alacritty -n "__fish_use_subcommand" -l config-file -d 'Specify alternative configuration file [default: $XDG_CONFIG_HOME/alacritty/alacritty.yml]' -r -F +complete -c alacritty -n "__fish_use_subcommand" -l socket -d 'Path for IPC socket creation' -r -F complete -c alacritty -n "__fish_use_subcommand" -s o -l option -d 'Override configuration file options [example: cursor.style=Beam]' -r -complete -c alacritty -n "__fish_use_subcommand" -l working-directory -d 'Start the shell in the specified working directory' -r +complete -c alacritty -n "__fish_use_subcommand" -l working-directory -d 'Start the shell in the specified working directory' -r -F complete -c alacritty -n "__fish_use_subcommand" -s e -l command -d 'Command and args to execute (must be last argument)' -r complete -c alacritty -n "__fish_use_subcommand" -s t -l title -d 'Defines the window title [default: Alacritty]' -r complete -c alacritty -n "__fish_use_subcommand" -l class -d 'Defines window class/app_id on X11/Wayland [default: Alacritty]' -r @@ -15,16 +15,13 @@ complete -c alacritty -n "__fish_use_subcommand" -s v -d 'Increases the level of complete -c alacritty -n "__fish_use_subcommand" -l hold -d 'Remain open after child process exit' complete -c alacritty -n "__fish_use_subcommand" -f -a "msg" -d 'Send a message to the Alacritty socket' complete -c alacritty -n "__fish_use_subcommand" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' -complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from help" -s s -l socket -d 'IPC socket connection path override' -r +complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from help" -s s -l socket -d 'IPC socket connection path override' -r -F complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help information' complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from help" -f -a "create-window" -d 'Create a new window in the same Alacritty process' complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' -complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l working-directory -d 'Start the shell in the specified working directory' -r +complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l working-directory -d 'Start the shell in the specified working directory' -r -F complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -s e -l command -d 'Command and args to execute (must be last argument)' -r complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -s t -l title -d 'Defines the window title [default: Alacritty]' -r complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l class -d 'Defines window class/app_id on X11/Wayland [default: Alacritty]' -r -complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l version -d 'Print version information' complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l hold -d 'Remain open after child process exit' complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -s h -l help -d 'Print help information' -complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from help" -l version -d 'Print version information' -complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from help" -s h -l help -d 'Print help information' |