mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-05-28 10:56:08 +02:00
57 lines
2.4 KiB
Plaintext
57 lines
2.4 KiB
Plaintext
#compdef compadd
|
|
|
|
local curcontext="$curcontext" state line ret=1
|
|
typeset -A opt_args
|
|
|
|
_arguments -C -s -S -A "-*" \
|
|
'-P+[specify prefix]:prefix' \
|
|
'-S+[specify suffix]:suffix' \
|
|
'-p+[specify hidden prefix]:hidden prefix' \
|
|
'-s+[specify hidden suffix]:hidden suffix' \
|
|
'-i+[specify ignored prefix]:ignored prefix' \
|
|
'-I+[specify ignored suffix]:ignored suffix' \
|
|
'(-k)-a[matches are elements of specified arrays]' \
|
|
'(-a)-k[matches are keys of specified associative arrays]' \
|
|
'-d+[specify display strings]:array:_parameters -g "*array*"' \
|
|
'-l[list display strings one per line, not in columns]' \
|
|
'-o[specify order for matches by match string not by display string]:: : _values -s , order
|
|
"match[order by match not by display string]"
|
|
"nosort[matches are pre-ordered]"
|
|
"numeric[order numerically]"
|
|
"reverse[order backwards]"' \
|
|
'(-1 -E)-J+[specify match group]:group' \
|
|
'!-V+:group' \
|
|
'(-J -E)-1[remove only consecutive duplicates from group]' \
|
|
'-2[preserve all duplicates]' \
|
|
'(-x)-X[specify explanation]:explanation' \
|
|
'(-X)-x[specify unconditional explanation]:explanation' \
|
|
'-q[make suffix autoremovable]' \
|
|
'-r+[specify character class for suffix autoremoval]:character class' \
|
|
'-R+[specify function for suffix autoremoval]:function:_functions' \
|
|
'-f[mark matches as being files]' \
|
|
'-e[mark matches as being parameters]' \
|
|
'-W[specify location for matches marked as files]' \
|
|
'-F+[specify array of ignore patterns]:array:_parameters -g "*array*"' \
|
|
'-Q[disable quoting of possible completions]' \
|
|
'*-M[specify matching specifications]' \
|
|
'-n[hide matches in completion listing]' \
|
|
'-U[disable internal matching of completion candidates]' \
|
|
'-O+[populate array with matches instead of adding them]:array:_parameters -g "*array*"' \
|
|
'-A+[populate array with expanded matches instead of adding them]:array:_parameters -g "*array*"' \
|
|
'-D+[delete elements from array corresponding to non-matching candidates]:array:_parameters -g "*array*"' \
|
|
'-C[add special match that expands to all other matches]' \
|
|
'(-1 -J)-E+[add specified number of display only matches]:number' \
|
|
'*:candidate:->candidates' && ret=0
|
|
|
|
if [[ -n $state ]]; then
|
|
if (( $+opt_args[-a] )); then
|
|
_parameters -g "*array*" && ret=0
|
|
elif (( $+opt_args[-k] )); then
|
|
_parameters -g "*assoc*" && ret=0
|
|
else
|
|
_message -e candidates candidate
|
|
fi
|
|
fi
|
|
|
|
return ret
|