#autoload # This can be used to add options or values with descriptions as matches. local _opt _expl _tmps _tmpd _tmpmd _tmpms _ret=1 _showd _nm _hide _args local _type=values # Get the option. if [[ "$1" = -o ]]; then _type=options shift fi # Do the tests. `showd' is set if the descriptions should be shown. _tags "$_type" || return 1 _style "$_type" verbose && _showd=yes _description _expl "$1" shift if [[ -n "$_showd" ]]; then compdescribe -I ' -- ' "$@" else compdescribe -i "$@" fi [[ "$_type" = options ]] && _style options prefix-hidden && _hide=yes while compdescribe -g _args _tmpd _tmpmd _tmps _tmpms; do # See if we should remove the option prefix characters. if [[ -n "$_hide" ]]; then if [[ "$PREFIX" = --* ]]; then _tmpd=( "${(@)_tmpd#--}" ) _tmps=( "${(@)_tmps#--}" ) elif [[ "$PREFIX" = [-+]* ]]; then _tmpd=( "${(@)_tmpd#[-+]}" ) _tmps=( "${(@)_tmps#[-+]}" ) fi fi compadd "$_args[@]" "$_expl[@]" -ld _tmpd - "$_tmpmd[@]" && _ret=0 compadd "$_args[@]" "$_expl[@]" -d _tmps - "$_tmpms[@]" && _ret=0 done return _ret