main: Highlight backticks in double quotes

This commit is contained in:
Matthew Martin 2018-01-14 21:28:42 -06:00
parent 8d2955f51a
commit f16e858f0c
2 changed files with 13 additions and 4 deletions

View file

@ -894,7 +894,7 @@ _zsh_highlight_main_highlighter_highlight_single_quote()
# Highlight special chars inside double-quoted strings
_zsh_highlight_main_highlighter_highlight_double_quote()
{
local -a match mbegin mend
local -a match mbegin mend saved_reply
local MATCH; integer MBEGIN MEND
local i j k style
reply=()
@ -904,6 +904,12 @@ _zsh_highlight_main_highlighter_highlight_double_quote()
(( k = j + 1 ))
case "$arg[$i]" in
'"') break;;
'`') saved_reply=($reply)
_zsh_highlight_main_highlighter_highlight_backtick $i
(( i = REPLY ))
reply=($saved_reply $reply)
continue
;;
'$' ) style=dollar-double-quoted-argument
# Look for an alphanumeric parameter name.
if [[ ${arg:$i} =~ ^([A-Za-z_][A-Za-z0-9_]*|[0-9]+) ]] ; then

View file

@ -28,9 +28,12 @@
# -------------------------------------------------------------------------------------------------
# 42 is in the command position in a nested subshell.
BUFFER='echo `echo \`42\`` `echo 6 times 9'
BUFFER='echo `echo \`42\`` "is `echo equal` to" `echo 6 times 9'
expected_region_highlight=(
"6 18 back-quoted-argument"
"20 34 back-quoted-argument-unclosed"
"6 18 back-quoted-argument" # `echo \`42\``
"20 23 double-quoted-argument" # "is
"24 35 back-quoted-argument" # `echo equal`
"36 39 double-quoted-argument" # to"
"41 55 back-quoted-argument-unclosed" # `echo 6 times 9
)