diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh index 8e31728..975df35 100755 --- a/highlighters/main/main-highlighter.zsh +++ b/highlighters/main/main-highlighter.zsh @@ -160,7 +160,11 @@ _zsh_highlight_main_highlighter() *': hashed') style=$ZSH_HIGHLIGHT_STYLES[hashed-command];; *) if _zsh_highlight_main_highlighter_check_assign; then style=$ZSH_HIGHLIGHT_STYLES[assign] - new_expression=true + if [[ $arg[-1] != '(' ]]; then + # assignment to a scalar parameter. + # (For array assignments, the command doesn't start until the ")" token.) + new_expression=true + fi elif _zsh_highlight_main_highlighter_check_path; then style=$ZSH_HIGHLIGHT_STYLES[path] elif [[ $arg[0,1] == $histchars[0,1] || $arg[0,1] == $histchars[2,2] ]]; then diff --git a/highlighters/main/test-data/assign.zsh b/highlighters/main/test-data/assign.zsh index 0401bf4..61edd6d 100644 --- a/highlighters/main/test-data/assign.zsh +++ b/highlighters/main/test-data/assign.zsh @@ -28,8 +28,9 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -BUFFER='A=1' +BUFFER='A=1 b=("foo" bar)' expected_region_highlight=( "1 3 $ZSH_HIGHLIGHT_STYLES[assign]" # A=1 + "8 12 $ZSH_HIGHLIGHT_STYLES[double-quoted-argument]" # "foo" )