back-dollar-quoted-argument: Highlight incomplete escape sequences as unknown-token

Followup to 219184f046, which fixed issue #196.
This commit is contained in:
Daniel Shahaf 2015-09-25 21:36:20 +00:00
parent f657406159
commit 6488284814
2 changed files with 8 additions and 2 deletions

View file

@ -332,6 +332,10 @@ _zsh_highlight_main_highlighter_highlight_dollar_string()
(( k += $#MATCH ))
(( i += $#MATCH ))
else
if (( $#arg > $i+1 )) && [[ $arg[$i+1] == [xXuU] ]]; then
# \x not followed by hex digits is probably an error
style=$ZSH_HIGHLIGHT_STYLES[unknown-token]
fi
(( k += 1 )) # Color following char too.
(( i += 1 )) # Skip parsing the escaped char.
fi

View file

@ -29,12 +29,14 @@
# -------------------------------------------------------------------------------------------------
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]=$unused_highlight
BUFFER=": \$'foo\xbar\udeadbeef'"
BUFFER=": \$'foo\xbar\udeadbeef\uzzzz'"
expected_region_highlight=(
"3 7 $ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]" # $'foo
"8 11 $ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]" # \xba
"12 12 $ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]" # r
"13 18 $ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]" # \dead
"19 23 $ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]" # beef'
"19 22 $ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]" # beef
"23 24 $ZSH_HIGHLIGHT_STYLES[unknown-token]" # \u
"25 29 $ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]" # zzzz'
)