summaryrefslogtreecommitdiff
path: root/Completion/Zsh/Context
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Zsh/Context')
-rw-r--r--Completion/Zsh/Context/_in_vared2
-rw-r--r--Completion/Zsh/Context/_redirect15
-rw-r--r--Completion/Zsh/Context/_subscript2
-rw-r--r--Completion/Zsh/Context/_value32
4 files changed, 21 insertions, 30 deletions
diff --git a/Completion/Zsh/Context/_in_vared b/Completion/Zsh/Context/_in_vared
index 03f6d404e..c3c8a20e2 100644
--- a/Completion/Zsh/Context/_in_vared
+++ b/Completion/Zsh/Context/_in_vared
@@ -32,4 +32,4 @@ fi
compstate[insert]="${compstate[insert]//tab /}"
-_dispatch comps "$also"
+_dispatch "$also" "$also"
diff --git a/Completion/Zsh/Context/_redirect b/Completion/Zsh/Context/_redirect
index 5e454014b..b33e785ee 100644
--- a/Completion/Zsh/Context/_redirect
+++ b/Completion/Zsh/Context/_redirect
@@ -1,17 +1,16 @@
#compdef -redirect-
-# This searches for `<command-name>:<redir-op>' and `<redir-op>', where
-# `<redir-op>' is something like `<' or `2>'.
-
-local strs _comp_command1 _comp_command2
+local strs _comp_command1 _comp_command2 _comp_command
_set_command
-strs=( "$compstate[redirect]" )
+strs=( -default- )
if [[ -n "$_comp_command1" ]]; then
- strs=( "${_comp_command1}:$strs[-1]" "$strs[@]" )
- [[ -n "$_comp_command2" ]] && strs=( "${_comp_command2}:$strs[1]" "$strs[@]" )
+ strs=( "${_comp_command1}" "$strs[@]" )
+ [[ -n "$_comp_command2" ]] &&
+ strs=( "${_comp_command2}" "$strs[@]" )
fi
-_dispatch -d redirs "$strs[@]"
+_dispatch -redirect-,${compstate[redirect]},${_comp_command} \
+ -redirect-,{${compstate[redirect]},-default-},${^strs}
diff --git a/Completion/Zsh/Context/_subscript b/Completion/Zsh/Context/_subscript
index 0f1138e1a..052848ffe 100644
--- a/Completion/Zsh/Context/_subscript
+++ b/Completion/Zsh/Context/_subscript
@@ -113,5 +113,5 @@ elif [[ ${(Pt)${compstate[parameter]}} = array* ]]; then
return 1
else
- _dispatch comps -math-
+ _dispatch -math- -math-
fi
diff --git a/Completion/Zsh/Context/_value b/Completion/Zsh/Context/_value
index 9d0acaa0e..15732f22c 100644
--- a/Completion/Zsh/Context/_value
+++ b/Completion/Zsh/Context/_value
@@ -1,4 +1,4 @@
-#compdef -value- -array-value- -T values -default-
+#compdef -value- -array-value- -value-,-default-,-default-
# You can customize completion for different parameters by writing
# functions with the tag-line `#compdef -T value <name>'.
@@ -6,30 +6,20 @@
# and `<param-name>'. If the line contains a command (as in `make foo=<TAB>')
# the string `<command>:<param-name>:<param-type>' is also searched for.
-if [[ "$service" != -default- ]]; then
- local strs type
+if [[ "$service" != -value-,* ]]; then
+ local strs ctx=
- type="${(Pt)compstate[parameter]}"
-
- if [[ -z "$type" ]]; then
- if [[ "$compstate[parameter]" = *-* ]]; then
- type=association-value
- elif [[ "$compstate[context]" = value ]]; then
- type=scalar
- else
- type=array
- fi
- fi
-
- strs=( "${compstate[parameter]}:$type" "$compstate[parameter]" )
+ strs=( -default- )
if [[ "$compstate[context]" != *value && -n "$_comp_command1" ]]; then
- strs=( "${_comp_command1}:$^strs[@]" "$strs[@]" )
+ ctx="${_comp_command}"
+ strs=( "${_comp_command1}" "$strs[@]" )
[[ -n "$_comp_command2" ]] &&
- strs=( "${_comp_command2}:${(@)^strs[-2,-1]}" "$strs[@]" )
+ strs=( "${_comp_command2}" "$strs[@]" )
fi
- _dispatch -d values "$strs[@]"
+ _dispatch -value-,${compstate[parameter]},$ctx \
+ -value-,{${compstate[parameter]},-default-},${^strs}
else
if [[ "$compstate[parameter]" != *-* &&
"$compstate[context]" = *value &&
@@ -39,7 +29,9 @@ else
compadd -k "$compstate[parameter]"
else
compstate[parameter]="${compstate[parameter]}-${words[CURRENT-1]}"
- _value "$@"
+
+ _dispatch -value-,${compstate[parameter]}, \
+ -value-,{${compstate[parameter]},-default-},-default-
fi
else
local pats