Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: pws-21: _vars
- X-seq: zsh-workers 6567
 
- From: Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>
 
- To: zsh-workers@xxxxxxxxxxxxxx (Zsh hackers list)
 
- Subject: PATCH: pws-21: _vars
 
- Date: Thu, 10 Jun 1999 12:22:54 +0200
 
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
 
This extends the _vars completion, used after things like read and vared,
to allow completion of the keys of associative arrays.  However, the [ has
to be added by hand because it can't tell whether you want
the parameter or an element.  Maybe there's a case for autoparamkeys
behaviour --- but that would need sensitivity to the command context, which
isn't really on.
--- Completion/Base/_vars.old	Tue Apr 13 09:37:37 1999
+++ Completion/Base/_vars	Thu Jun 10 12:17:04 1999
@@ -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
-- 
Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy
Messages sorted by:
Reverse Date,
Date,
Thread,
Author