summaryrefslogtreecommitdiff
path: root/Completion/Base/_in_vared
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2000-05-15 13:19:26 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2000-05-15 13:19:26 +0000
commit1dc5677a419456cc23a5e9fa763fc01c35ff1791 (patch)
tree18cd0867fc321be62d4fc7abdfd7f322f173f474 /Completion/Base/_in_vared
parent6ba3ec5ec416f5249dc94674a1ff76846321a25b (diff)
downloadzsh-1dc5677a419456cc23a5e9fa763fc01c35ff1791.tar.gz
zsh-1dc5677a419456cc23a5e9fa763fc01c35ff1791.zip
add _in_vared for completion inside vared; make insert-tab default to `false' there
Diffstat (limited to 'Completion/Base/_in_vared')
-rwxr-xr-xCompletion/Base/_in_vared28
1 files changed, 28 insertions, 0 deletions
diff --git a/Completion/Base/_in_vared b/Completion/Base/_in_vared
new file mode 100755
index 000000000..4d8e814db
--- /dev/null
+++ b/Completion/Base/_in_vared
@@ -0,0 +1,28 @@
+#compdef -vared-
+
+local also
+
+# Completion inside vared.
+
+if [[ $compstate[vared] = *\[* ]]; then
+ # vared on an array-element
+ compstate[parameter]=${compstate[vared]%%\[*}
+ compstate[context]=-value-
+ also=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
+ also=-array-value-
+ else
+ compstate[context]=value
+ also=-value-
+ fi
+fi
+
+# Don't insert TAB in first column. Never.
+
+compstate[insert]="${compstate[insert]//tab /}"
+
+_compalso "$also"