Browse Source

'main': Highlight array parameters in command position.

pull/550/head
Daniel Shahaf 6 years ago
committed by Matthew Martin
parent
commit
31ceaed4f4
2 changed files with 15 additions and 2 deletions
  1. +11
    -1
      highlighters/main/main-highlighter.zsh
  2. +4
    -1
      highlighters/main/test-data/commmand-parameter.zsh

+ 11
- 1
highlighters/main/main-highlighter.zsh 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

+ 4
- 1
highlighters/main/test-data/commmand-parameter.zsh 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
)

Loading…
Cancel
Save