diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh index cfac262..f0f2215 100644 --- a/highlighters/main/main-highlighter.zsh +++ b/highlighters/main/main-highlighter.zsh @@ -610,6 +610,8 @@ _zsh_highlight_main_highlighter_highlight_list() hashed) style=hashed-command;; none) if _zsh_highlight_main_highlighter_check_assign; then style=assign + _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style + already_added=1 local i=$(( arg[(i)=] + 1 )) if [[ $arg[i] == '(' ]]; then in_array_assignment=true @@ -617,6 +619,9 @@ _zsh_highlight_main_highlighter_highlight_list() # assignment to a scalar parameter. # (For array assignments, the command doesn't start until the ")" token.) next_word+=':start:' + if (( start_pos + i <= end_pos )); then + highlight_glob=false _zsh_highlight_main_highlighter_highlight_argument $i + fi fi elif [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )); then style=history-expansion diff --git a/highlighters/main/test-data/assign-argv.zsh b/highlighters/main/test-data/assign-argv.zsh index fdf30aa..ec5acc2 100644 --- a/highlighters/main/test-data/assign-argv.zsh +++ b/highlighters/main/test-data/assign-argv.zsh @@ -27,9 +27,12 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- +touch foo BUFFER='42=foo 43+=bar' expected_region_highlight=( "1 6 assign" # 42=foo + "4 6 path" # foo "8 14 assign" # 43+=bar + "12 14 default" # bar ) diff --git a/highlighters/main/test-data/assign-array3.zsh b/highlighters/main/test-data/assign-array3.zsh index 4e20cfc..986d71f 100644 --- a/highlighters/main/test-data/assign-array3.zsh +++ b/highlighters/main/test-data/assign-array3.zsh @@ -35,4 +35,5 @@ expected_region_highlight=( "10 14 default" # world "15 15 assign" # ) "17 20 assign" # b=42 + "19 20 default" # 42 ) diff --git a/highlighters/main/test-data/assign-not-array.zsh b/highlighters/main/test-data/assign-not-array.zsh index 658cc89..651ab80 100644 --- a/highlighters/main/test-data/assign-not-array.zsh +++ b/highlighters/main/test-data/assign-not-array.zsh @@ -31,5 +31,6 @@ BUFFER='a=foo( bar ) :' expected_region_highlight=( '1 12 assign' # a=foo( bar ) + '3 12 default' # foo( bar ) '14 14 builtin' # : ) diff --git a/highlighters/main/test-data/assign-not-array2.zsh b/highlighters/main/test-data/assign-not-array2.zsh index 3ca2214..dfda106 100644 --- a/highlighters/main/test-data/assign-not-array2.zsh +++ b/highlighters/main/test-data/assign-not-array2.zsh @@ -31,5 +31,6 @@ BUFFER='a=foo\( :' expected_region_highlight=( '1 7 assign' # a=foo\( + '3 7 default' # foo\( '9 9 builtin' # : ) diff --git a/highlighters/main/test-data/assign-semicolon.zsh b/highlighters/main/test-data/assign-semicolon.zsh index fe55b6a..f748c94 100644 --- a/highlighters/main/test-data/assign-semicolon.zsh +++ b/highlighters/main/test-data/assign-semicolon.zsh @@ -31,6 +31,7 @@ BUFFER='A=1; echo hello world' expected_region_highlight=( "1 3 assign" # A=1 + "3 3 default" # 1 "4 4 commandseparator" # ; "6 9 builtin" # echo "11 15 default" # hello diff --git a/highlighters/main/test-data/assign-subshell.zsh b/highlighters/main/test-data/assign-subshell.zsh index fc04f6b..2022889 100644 --- a/highlighters/main/test-data/assign-subshell.zsh +++ b/highlighters/main/test-data/assign-subshell.zsh @@ -32,5 +32,6 @@ BUFFER='(A=1)' expected_region_highlight=( "1 1 reserved-word" # ( "2 4 assign" # A=1 + "4 4 default" # 1 "5 5 reserved-word" # ) ) diff --git a/highlighters/main/test-data/assign.zsh b/highlighters/main/test-data/assign.zsh index 36fa5d1..6e797ac 100644 --- a/highlighters/main/test-data/assign.zsh +++ b/highlighters/main/test-data/assign.zsh @@ -31,6 +31,7 @@ BUFFER='A=1 b=("foo" bar)' expected_region_highlight=( "1 3 assign" # A=1 + "3 3 default" # 1 "5 7 assign" # b=( "8 12 default" # "foo" "8 12 double-quoted-argument" # "foo"