Zsh completion arguments: Difference between revisions
From wikinotes
Line 52: | Line 52: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
local state | local state # scope state locally | ||
_arguments -C \ | _arguments -C \ |
Revision as of 21:23, 24 July 2021
Arguments Params
Flag Arguments
_arguments \ {-h,--help}'[show help]' \ # short/long form (no value) '-o[output file]:::_files # short form w/ following value (a file)Positional Arguments
_arguments \ '1:user:_users' \ # 1st positional arg (required) '2:priority:(low med high)' \ # 2nd positional arg (required) (complete to low/med/high) '3::group:_groups' \ # 3nd positional arg (optional)Value for last defined Param
:${message}:${action} # reqd completion for prev command ::${message}:${action} # optional completion for prev command_arguments \ {-h,--help}'[show help]' \ '*::extra:(foo bar baz)' \ # any extra parameters, (complete to (foo bar baz)) ':value:(foo bar baz)' # after prev param (extra), always complete one of these wordsRest Arguments
Any arguments not consumed earlier use this completer.
*:${message}:${action} # *::${message}:${action} # *:::${message}:${action} #State Setting/Parsing
The
-C
argument enables state-setting.
This lets you determine the parser that gets used based on the state you set.local state # scope state locally _arguments -C \ '*:extra:->my-state' # sets `$state='my-state'` case $state in (my-state) _arguments '1:foo:(one two three four)' ;; esac