diff --git a/Completion/Zsh/Type/_vars b/Completion/Zsh/Type/_vars new file mode 100644 index 000000000..dece0fecb --- /dev/null +++ b/Completion/Zsh/Type/_vars @@ -0,0 +1,25 @@ +#compdef getopts unset vared + +# This will handle completion of keys of associative arrays, e.g. at +# `vared foo['. + +local ret=1 + +if [[ $PREFIX = *\[* ]]; then + compstate[parameter]=${PREFIX%%(|\\)\[*} + + IPREFIX=${PREFIX%%\[*}\[ + PREFIX=${PREFIX#*\[} + + _subscript -q +else + _parameters -g '^a*' "$@" && ret=0 + + if compset -S '\[*'; then + set - -S "" "$@" + else + set - -qS"${${QIPREFIX:+[}:-\[}" "$@" + fi + _parameters -g 'a*' "$@" && ret=0 + return ret +fi