'main': Highlight array parameters in command position.

This commit is contained in:
Daniel Shahaf 2018-01-12 13:54:02 +00:00 committed by Matthew Martin
parent ad6261fbca
commit 31ceaed4f4
2 changed files with 15 additions and 2 deletions

View file

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

View file

@ -29,9 +29,10 @@
local x=/usr/bin/env
local y=sudo
local -a z; z=(zsh -f)
sudo(){}
BUFFER='$x "argument"; $y'
BUFFER='$x "argument"; $y; $z'
expected_region_highlight=(
"1 2 command" # $x
@ -39,4 +40,6 @@ expected_region_highlight=(
"4 13 double-quoted-argument" # "argument"
"14 14 commandseparator" # ;
"16 17 precommand" # $y (sudo)
"18 18 unknown-token" # ;
"20 21 command" # $z - 'zsh' being the command
)