diff options
author | Daniel Shahaf <d.s@daniel.shahaf.name> | 2021-04-01 00:00:25 +0000 |
---|---|---|
committer | Daniel Shahaf <d.s@daniel.shahaf.name> | 2021-04-17 12:11:47 +0000 |
commit | df899d38e92f138dc655a40deda6d14f3ad05552 (patch) | |
tree | 982e4376d8bf35e476137dfac7f731fc6c9c160c /Completion/Zsh/Function | |
parent | 587cced35d925b95a8df41f13880a30a8fc66274 (diff) | |
download | zsh-df899d38e92f138dc655a40deda6d14f3ad05552.tar.gz zsh-df899d38e92f138dc655a40deda6d14f3ad05552.tar.xz zsh-df899d38e92f138dc655a40deda6d14f3ad05552.zip |
48361 (+ 48368 review comments): __arguments: New completion function for _arguments.
In the penultimate paragraph of the comment, the two possibilities for the relative path cover three cases: - The comment is read in the source tree - The comment is read in an installed tree with --enable-function-subdirs - The comment is read in an installed tree with --disable-function-subdirs Review-by: Matthew Martin Review-by: Oliver Kiddle
Diffstat (limited to 'Completion/Zsh/Function')
-rw-r--r-- | Completion/Zsh/Function/__arguments | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Completion/Zsh/Function/__arguments b/Completion/Zsh/Function/__arguments new file mode 100644 index 000000000..af7710971 --- /dev/null +++ b/Completion/Zsh/Function/__arguments @@ -0,0 +1,44 @@ +#compdef _arguments + +# Dear reader: This function is called "__arguments" and is the completion +# function for the completion function _arguments. This function, however, is +# not the completion function _arguments. If you're looking for the function +# _arguments, then you've come to the wrong place. +# +# _arguments is a completion utility function. It is called by completion +# functions for command-line tools. +# +# __arguments is a completion function for _arguments. It runs when one does +# `_arguments -<TAB>' at the shell prompt to jog one's memory about _arguments' +# option flags. +# +# _arguments is in documented in the manual. If you were looking for its +# source code, that'd be either in ../../../Completion/Base/Utility/_arguments +# or in ./_arguments, depending on where you're reading this file. +# +# __arguments takes no arguments. + +if (( ${words[(i)--]} < CURRENT )); then + # "Deriving spec forms from the help output" + _arguments : \ + '*-i[specify option name exclude patterns]:option name exclude pattern' \ + '*-s[specify option aliases]:pattern and replacement as "(this that)"' \ + '*:helpspec (pattern\:message\:action)' +else + _arguments -A '-([AMO]*|[0CRSWnsw])' : \ + '!-n[set $NORMARG]' \ + '-s[enable single-letter option stacking (-x -y == -xy)]' \ + '-w[(rarely needed) enable single-letter option stacking with arguments (-x X -y == -xy X)]' \ + '-W[(rarely needed) enable single-letter option stacking with arguments in the same word (-x X -y == -xXy)]' \ + "-C[modify \$curcontext for \`->action' (instead of \$context)]" \ + "-R[when \`->action' matches, return 300]" \ + "-S[honour \`--' as end-of-options guard]" \ + "-A[do not complete options after non-options]:pattern matching unknown options (e.g., '-*')" \ + '-O[pass elements of array variable to function calls in actions]:array variable name:_parameters -g array' \ + "-M[specify matchspec for completing option names and values]:matchspec for completing option names and values [ 'r\\:|[_-]=* r\\:|=*' ]" \ + '-0[have ${(v)opt_args} be NUL-joined rather than colon-escaped and colon-joined]' \ + "--[derive optspecs from \`\${command} --help' output]" \ + '1::optional delimiter:(\:)' \ + '*:spec (e.g., "(-t --to)"*{-t+,--to=}"[specify recipient]\:recipient'\''s address\:_email_addresses)' + # TODO: doesn't support "Specifying Multiple Sets of Arguments" +fi |