about summary refs log tree commit diff
path: root/Completion/Base/_vars
blob: a81a49f488e0a88a683b5e7deae8e730cebcd90f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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.

local expl

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
    _description expl 'association key'
    compadd "$expl[@]" $addclose - ${(kP)var}
  fi
else
  _parameter
fi