Zsh completion arguments: Difference between revisions
From wikinotes
Line 45: | Line 45: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Rest Arguments --> | </blockquote><!-- Rest Arguments --> | ||
== State Setting/Parsing == | |||
<blockquote> | |||
The <code>-C</code> argument enables state-setting.<br> | |||
This lets you determine the parser that gets used based on the state you set. | |||
<syntaxhighlight lang="bash"> | |||
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 | |||
</syntaxhighlight> | |||
</blockquote><!-- State Setting/Parsing --> | |||
</blockquote><!-- Examples --> | </blockquote><!-- Examples --> |
Revision as of 21:00, 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