'main': Highlight array parameters in command position.

This commit is contained in:
Daniel Shahaf 2018-01-12 13:54:02 +00:00
parent caa727f9ac
commit 1bf54d7f26
2 changed files with 14 additions and 2 deletions

View File

@ -513,7 +513,17 @@ _zsh_highlight_highlighter_main_paint()
[[ ${parameter_name} =~ ^([A-Za-z_][A-Za-z0-9_]*|[0-9]+)$ ]] &&
(( ${+parameters[${MATCH}]} ))
then
# Set $arg.
case ${(tP)MATCH} in
(*array*|*assoc*)
local -a words=( ${(P)MATCH} )
arg=${words[1]}
;;
(*)
# scalar, presumably
arg=${(P)MATCH}
;;
esac
_zsh_highlight_main__type "$arg"
res=$REPLY
fi

View File

@ -29,10 +29,12 @@
local x=/usr/bin/env
local y=sudo
BUFFER='$x "argument"; $y'
local -a z; z=(zsh -f)
BUFFER='$x "argument"; $y; $z'
expected_region_highlight=(
"1 2 command" # $x
"4 13 double-quoted-argument" # "argument"
"16 17 precommand" # $y (sudo)
"20 21 command" # $z - 'zsh' being the command
)