diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-06-18 10:55:45 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-06-18 10:55:45 +0000 |
commit | a2159285e80508bb682d90a71270fbddada8bd05 (patch) | |
tree | c491bf7a28d7f8fac7ab05cc860c01dea95c19b1 /Completion/Base | |
parent | 805381040dd69dd02b78423d2d71913b33f3cc33 (diff) | |
download | zsh-a2159285e80508bb682d90a71270fbddada8bd05.tar.gz zsh-a2159285e80508bb682d90a71270fbddada8bd05.tar.xz zsh-a2159285e80508bb682d90a71270fbddada8bd05.zip |
zsh-3.1.5-pws-22 zsh-3.1.5-pws-22
Diffstat (limited to 'Completion/Base')
-rw-r--r-- | Completion/Base/_brace_parameter | 2 | ||||
-rw-r--r-- | Completion/Base/_vars | 19 |
2 files changed, 20 insertions, 1 deletions
diff --git a/Completion/Base/_brace_parameter b/Completion/Base/_brace_parameter index f688e175a..5993aecba 100644 --- a/Completion/Base/_brace_parameter +++ b/Completion/Base/_brace_parameter @@ -16,4 +16,6 @@ ls="$RBUFFER[${#SUFFIX}+1,-1]" n=${(M)#ls##\"#} q=${(M)lp%%\"#} +[[ n -gt 0 ]] && suf='' + _parameters -s "${q[1,-n-1]}" -S "$suf" -r '-:?#%+=[/' diff --git a/Completion/Base/_vars b/Completion/Base/_vars index f06562694..a40df7699 100644 --- a/Completion/Base/_vars +++ b/Completion/Base/_vars @@ -1,3 +1,20 @@ #compdef getopts read unset vared -compgen -v +# This will handle completion of keys of associative arrays, e.g. at +# `vared compconfig[<TAB>'. However, in this version the [ must be +# added by hand. + +if [[ $PREFIX = *\[* ]]; then + local var=${PREFIX%%\[*} + local elt="${PREFIX#*\]}${SUFFIX%\]}" + local addclose + compset -p $(( ${#var} + 1 )) + if ! compset -S \]; then + addclose=(-S ']') + fi + if [[ ${(tP)var} = assoc* ]]; then + compadd $addclose - ${(kP)var} + fi +else + compgen -v +fi |