From e0615edb7590591356384465fec8413ebbeece8c Mon Sep 17 00:00:00 2001 From: highlyunavailable Date: Fri, 20 Mar 2015 11:50:14 -0700 Subject: [PATCH] Fix literal \ characters at the end of a string Given a statement like `{% set sep = '\\' %}`, the syntax highlighter was considering the literal `'\\'` to be a literal quote inside the string by matching `\'` and thus highlighting the rest of the entire document as a string. This change fixes that issue by adding some regex to ensure that an escaped quote is preceded by an uneven number of slashes (that is, `'\\\\\''` would accept the literal string `\\'` without issues). A`"` quoted string is modified the same way. --- ext/Vim/jinja.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/Vim/jinja.vim b/ext/Vim/jinja.vim index 503aec66..ac72efe7 100644 --- a/ext/Vim/jinja.vim +++ b/ext/Vim/jinja.vim @@ -59,8 +59,8 @@ syn match jinjaFunction contained /[a-zA-Z_][a-zA-Z0-9_]*/ syn match jinjaBlockName contained /[a-zA-Z_][a-zA-Z0-9_]*/ " Jinja template constants -syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/"/ skip=/\\"/ end=/"/ -syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/'/ skip=/\\'/ end=/'/ +syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/"/ skip=/\(\\\)\@\)*\\"/ end=/"/ +syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/'/ skip=/\(\\\)\@\)*\\'/ end=/'/ syn match jinjaNumber containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[0-9]\+\(\.[0-9]\+\)\?/ " Operators -- 2.47.2