From 346825df86466cf151be61b9429ef2c1734e66ea Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Sun, 27 Jun 1999 05:33:04 +0000 Subject: zsh-3.1.5-pws-24 --- Completion/Base/_subscript | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'Completion/Base/_subscript') diff --git a/Completion/Base/_subscript b/Completion/Base/_subscript index abaabec8c..66d88b00c 100644 --- a/Completion/Base/_subscript +++ b/Completion/Base/_subscript @@ -1,7 +1,27 @@ #compdef -subscript- if [[ ${(Pt)${compstate[parameter]}} = assoc* ]]; then - compgen -S ']' -k "( ${(kP)${compstate[parameter]}} )" + if [[ "$RBUFFER" = \]* ]]; then + compadd -S '' - "${(@kP)${compstate[parameter]}}" + else + compadd -S ']' - "${(@kP)${compstate[parameter]}}" + fi +elif [[ ${(Pt)${compstate[parameter]}} = array* ]]; then + local list i j + + ind=( {1..${#${(P)${compstate[parameter]}}}} ) + list=() + for i in "$ind[@]"; do + [[ "$i" = ${PREFIX}*${SUFFIX} ]] && + list=( "$list[@]" + "${(r:4:: ::):)i} $(print -D ${(P)${compstate[parameter]}[$i]})" ) + done + + if [[ "$RBUFFER" = \]* ]]; then + compadd -S '' -V default -y list - "$ind[@]" + else + compadd -S ']' -V default -y list - "$ind[@]" + fi else _compalso -math- fi -- cgit 1.4.1