From 5c9ce6b5230654c73d3bc3311f9dff7c4404f228 Mon Sep 17 00:00:00 2001 From: Hiroshi Shirosaki <h.shirosaki@gmail.com> Date: Thu, 17 Jan 2019 14:12:44 +0900 Subject: [PATCH] Fix code quotes when ending with backslash Backslash inside of a backtick should not escape a backtick. Fix #311 --- syntax/markdown.vim | 2 +- test/syntax.vader | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/syntax/markdown.vim b/syntax/markdown.vim index 86b10b0..d0077a4 100644 --- a/syntax/markdown.vim +++ b/syntax/markdown.vim @@ -98,7 +98,7 @@ syn match htmlH2 /^.\+\n-\+$/ contains=mkdLink,mkdInlineURL,@Spell "define Markdown groups syn match mkdLineBreak / \+$/ syn region mkdBlockquote start=/^\s*>/ end=/$/ contains=mkdLink,mkdInlineURL,mkdLineBreak,@Spell -execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@<!`/ end=/\(\([^\\]\|^\)\\\)\@<!`/' . s:concealcode +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@<!`/ end=/`/' . s:concealcode execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@<!``/ skip=/[^`]`[^`]/ end=/\(\([^\\]\|^\)\\\)\@<!``/' . s:concealcode execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/^\s*\z(`\{3,}\)[^`]*$/ end=/^\s*\z1`*\s*$/' . s:concealcode execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@<!\~\~/ end=/\(\([^\\]\|^\)\\\)\@<!\~\~/' . s:concealcode diff --git a/test/syntax.vader b/test/syntax.vader index fdf9c0b..3baa41f 100644 --- a/test/syntax.vader +++ b/test/syntax.vader @@ -882,6 +882,23 @@ a Execute (not code block in escaped code tag): AssertNotEqual SyntaxOf('a'), 'mkdCode' +# Code quotes + +Given markdown; +`a` + +Execute (code in code quotes): + AssertEqual SyntaxOf('a'), 'mkdCode' + +Given markdown; +`a\` b `c\` d + +Execute (code quotes not escaped ending with backslash): + AssertEqual SyntaxOf('a\'), 'mkdCode' + AssertNotEqual SyntaxOf('b'), 'mkdCode' + AssertEqual SyntaxOf('c\'), 'mkdCode' + AssertNotEqual SyntaxOf('d'), 'mkdCode' + # Math Given markdown; -- 2.39.5