diff options
Diffstat (limited to 'Completion/Zsh/Context')
-rw-r--r-- | Completion/Zsh/Context/_in_vared | 2 | ||||
-rw-r--r-- | Completion/Zsh/Context/_redirect | 15 | ||||
-rw-r--r-- | Completion/Zsh/Context/_subscript | 2 | ||||
-rw-r--r-- | Completion/Zsh/Context/_value | 32 |
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 |