summaryrefslogtreecommitdiff
path: root/Completion/Core/_complete
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2000-05-02 08:18:54 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2000-05-02 08:18:54 +0000
commit3d088f16aab58abcedcad8720ffbbfadee38bdc3 (patch)
treed7c8bb53de457af2672f9db98b451b7977683a93 /Completion/Core/_complete
parente102702cd5c2372a248a9ddadad4dedeb7c55e8f (diff)
downloadzsh-3d088f16aab58abcedcad8720ffbbfadee38bdc3.tar.gz
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/_complete18
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.