diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2000-05-02 08:18:54 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2000-05-02 08:18:54 +0000 |
commit | 3d088f16aab58abcedcad8720ffbbfadee38bdc3 (patch) | |
tree | d7c8bb53de457af2672f9db98b451b7977683a93 /Completion/Core/_complete | |
parent | e102702cd5c2372a248a9ddadad4dedeb7c55e8f (diff) | |
download | zsh-3d088f16aab58abcedcad8720ffbbfadee38bdc3.tar.gz zsh-3d088f16aab58abcedcad8720ffbbfadee38bdc3.tar.xz zsh-3d088f16aab58abcedcad8720ffbbfadee38bdc3.zip |
make completion-in-vared complete parameter values as default; cleanup for _path_files (11048)
Diffstat (limited to 'Completion/Core/_complete')
-rw-r--r-- | Completion/Core/_complete | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Completion/Core/_complete b/Completion/Core/_complete index c2679dcb8..e50f73b2e 100644 --- a/Completion/Core/_complete +++ b/Completion/Core/_complete @@ -33,6 +33,24 @@ if [[ ! -z "$comp" ]]; then fi fi +# If we are inside `vared' and we don't have a $compcontext, we treat +# this like a parameter assignment. Which it is. + +if [[ -n $compstate[vared] ]]; then + if [[ $compstate[vared] = *\[* ]]; then + # vared on an array-element + compstate[parameter]=${compstate[vared]%%\[*} + compstate[context]=value + else + # vared on a parameter, let's see if it is an array + compstate[parameter]=$compstate[vared] + if [[ ${(tP)compstate[vared]} = *(array|assoc)* ]]; then + compstate[context]=array_value + else + compstate[context]=value + fi + fi +fi # For arguments and command names we use the `_normal' function. |