diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-11-14 19:57:24 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-11-14 19:57:24 +0000 |
commit | b6fdcbc539e762c243e520a48a946d904c55835d (patch) | |
tree | 4a3b11a04e95154dfaa6e28d20ece49c0d74f466 /Completion/Builtins | |
parent | 51a999e60b16c3113c01d81dac7989d979b386e5 (diff) | |
download | zsh-b6fdcbc539e762c243e520a48a946d904c55835d.tar.gz zsh-b6fdcbc539e762c243e520a48a946d904c55835d.tar.xz zsh-b6fdcbc539e762c243e520a48a946d904c55835d.zip |
zsh-workers:8631
Diffstat (limited to 'Completion/Builtins')
-rw-r--r-- | Completion/Builtins/_vars | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Completion/Builtins/_vars b/Completion/Builtins/_vars new file mode 100644 index 000000000..43cdf5d2c --- /dev/null +++ b/Completion/Builtins/_vars @@ -0,0 +1,28 @@ +#compdef getopts read unset vared + +# 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 + local expl + + _tags subscript association-keys || return 1 + + _description expl 'association key' + compadd "$expl[@]" $addclose - ${(kP)var} + fi +else + _tags any parameters || return 1 + + _parameters +fi |