#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