#autoload local name gropt format gname hidden hide match gropt=(-J) hide=() match=() if [[ "$1" = -([12]|)[VJ] ]]; then gropt=("$1") shift fi _lastdescr=( "$_lastdescr[@]" "$3" ) _setup "$1" name="$2" zstyle -s ":completion${curcontext}:$1" format format || zstyle -s ":completion${curcontext}:descriptions" format format zstyle -s ":completion${curcontext}:$1" hidden hidden if [[ "$hidden" = (all|yes|true|1|on) ]]; then [[ "$hidden" = all ]] && format='' hide=(-n) fi zstyle -s ":completion${curcontext}:$1" group-name gname && [[ -z "$gname" ]] && gname="$1" zstyle -s ":completion${curcontext}:$1" matcher match && match=(-M "${(q)match}") shift 2 [[ -n "$format" ]] && zformat -f format "$format" "d:$1" "${(@)argv[2,-1]}" if [[ -n "$gname" ]]; then if [[ -n "$format" ]]; then eval "${name}=($hide $match $gropt ${(q)gname} -X \"${format}\")" else eval "${name}=($hide $match $gropt ${(q)gname})" fi else if [[ -n "$format" ]]; then eval "${name}=($hide $match $gropt -default- -X \"${format}\")" else eval "${name}=($hide $match $gropt -default-)" fi fi return 0