1
0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-11-19 13:33:52 +01:00
zsh/Completion/Zsh/Command/_zmodload
2001-04-02 11:33:40 +00:00

49 lines
1.5 KiB
Plaintext

#compdef zmodload
local suf comp state line expl curcontext="$curcontext" ret=1
typeset -A opt_args
suf=()
_arguments -C -A "-*" -s \
'(-d -e)-i[suppress error if command would do nothing]' \
'-u[unload module]' \
'(-i)-d[list or specify module dependencies]' \
'(-e)-a[autoload module]' \
'(-c -I -p -f)-b[autoload module for builtins]' \
'(-b -I -p -f)-c[autoload module for condition codes]' \
'(-b -c -p -f)-I[define infix condition names]' \
'(-b -c -I -f)-p[autoload module for parameters]' \
'(-b -c -I -p)-f[autoload module for math functions]' \
'(-i -u -d -a -b -c -p -f -L -A)-e[test if modules are loaded]' \
'(-e -u)-L[output in the form of calls to zmodload]' \
'(-i -u -d -a -b -c -I -p -f -e)-A[create module aliases]' \
'*:params:->params' && ret=0
[[ $state = params ]] || return ret
(( $+opt_args[-A] )) && compset -P '*=' || suf=( -S '=' )
comp=( files aliases )
if (( $+opt_args[-u] )); then
if (( $+opt_args[-b] || $+opt_args[-a] )); then
comp=( builtins )
else
comp=( loadedmodules aliases )
fi
fi
(( $+opt_args[-a] && CURRENT > 3 )) && comp=( builtins )
_tags "$comp[@]"
while _tags; do
_requested builtins expl 'builtin command' \
compadd "$@" -k builtins && ret=0
_requested loadedmodules expl 'loaded modules' \
compadd -k 'modules[(R)loaded]' && ret=0
_requested files expl 'module file' \
_files -W module_path -/g '*.(dll|s[ol])(:r)' && ret=0
_requested aliases expl 'module alias' \
compadd "$suf[@]" -k 'modules[(R)alias*]' && ret=0
done
return ret