X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/f71f25b87df3bd2a5315fdf432f0de3c35434345..c58a4f3586473f7476510714698e60835fcb94ef:/syntax/markdown.vim diff --git a/syntax/markdown.vim b/syntax/markdown.vim index d8d34ea1..07ae0a8a 100644 --- a/syntax/markdown.vim +++ b/syntax/markdown.vim @@ -7,7 +7,7 @@ " Read the HTML syntax to start with -if version < 600 +if v:version < 600 so :p:h/html.vim else runtime! syntax/html.vim @@ -17,14 +17,14 @@ else endif endif -if version < 600 +if v:version < 600 syntax clear -elseif exists("b:current_syntax") +elseif exists('b:current_syntax') finish endif " don't use standard HiLink, it will not work with included syntax files -if version < 508 +if v:version < 508 command! -nargs=+ HtmlHiLink hi link else command! -nargs=+ HtmlHiLink hi def link @@ -70,10 +70,10 @@ execute 'syn region mkdLink matchgroup=mkdDelimiter start="\\\@ ]*>" end=">" @@ -86,14 +86,14 @@ syn region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained syn region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained "HTML headings -syn region htmlH1 matchgroup=mkdHeading start="^\s*#" end="$" contains=mkdLink,mkdInlineURL,@Spell -syn region htmlH2 matchgroup=mkdHeading start="^\s*##" end="$" contains=mkdLink,mkdInlineURL,@Spell -syn region htmlH3 matchgroup=mkdHeading start="^\s*###" end="$" contains=mkdLink,mkdInlineURL,@Spell -syn region htmlH4 matchgroup=mkdHeading start="^\s*####" end="$" contains=mkdLink,mkdInlineURL,@Spell -syn region htmlH5 matchgroup=mkdHeading start="^\s*#####" end="$" contains=mkdLink,mkdInlineURL,@Spell -syn region htmlH6 matchgroup=mkdHeading start="^\s*######" end="$" contains=mkdLink,mkdInlineURL,@Spell -syn match htmlH1 /^.\+\n=\+$/ contains=mkdLink,mkdInlineURL,@Spell -syn match htmlH2 /^.\+\n-\+$/ contains=mkdLink,mkdInlineURL,@Spell +syn region htmlH1 matchgroup=mkdHeading start="^\s*#" end="$" contains=@mkdHeadingContent,@Spell +syn region htmlH2 matchgroup=mkdHeading start="^\s*##" end="$" contains=@mkdHeadingContent,@Spell +syn region htmlH3 matchgroup=mkdHeading start="^\s*###" end="$" contains=@mkdHeadingContent,@Spell +syn region htmlH4 matchgroup=mkdHeading start="^\s*####" end="$" contains=@mkdHeadingContent,@Spell +syn region htmlH5 matchgroup=mkdHeading start="^\s*#####" end="$" contains=@mkdHeadingContent,@Spell +syn region htmlH6 matchgroup=mkdHeading start="^\s*######" end="$" contains=@mkdHeadingContent,@Spell +syn match htmlH1 /^.\+\n=\+$/ contains=@mkdHeadingContent,@Spell +syn match htmlH2 /^.\+\n-\+$/ contains=@mkdHeadingContent,@Spell "define Markdown groups syn match mkdLineBreak / \+$/ @@ -103,14 +103,15 @@ execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\ 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 -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="]*\)\\\@" end=""' . s:concealcode syn region mkdFootnote start="\[^" end="\]" syn match mkdCode /^\s*\n\(\(\s\{8,}[^ ]\|\t\t\+[^\t]\).*\n\)\+/ syn match mkdCode /\%^\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ syn match mkdCode /^\s*\n\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ contained -syn match mkdListItem /^\s*\%([-*+]\|\d\+\.\)\ze\s\+/ contained -syn region mkdListItemLine start="^\s*\%([-*+]\|\d\+\.\)\s\+" end="$" oneline contains=@mkdNonListItem,mkdListItem,@Spell +syn match mkdListItem /^\s*\%([-*+]\|\d\+\.\)\ze\s\+/ contained nextgroup=mkdListItemCheckbox +syn match mkdListItemCheckbox /\[[xXoO ]\]\ze\s\+/ contained contains=mkdListItem +syn region mkdListItemLine start="^\s*\%([-*+]\|\d\+\.\)\s\+" end="$" oneline contains=@mkdNonListItem,mkdListItem,mkdListItemCheckbox,@Spell syn region mkdNonListItemBlock start="\(\%^\(\s*\([-*+]\|\d\+\.\)\s\+\)\@!\|\n\(\_^\_$\|\s\{4,}[^ ]\|\t+[^\t]\)\@!\)" end="^\(\s*\([-*+]\|\d\+\.\)\s\+\)\@=" contains=@mkdNonListItem,@Spell syn match mkdRule /^\s*\*\s\{0,1}\*\s\{0,1}\*\(\*\|\s\)*$/ syn match mkdRule /^\s*-\s\{0,1}-\s\{0,1}-\(-\|\s\)*$/ @@ -151,34 +152,36 @@ endif " Strike through if get(g:, 'vim_markdown_strikethrough', 0) - syn region mkdStrike matchgroup=mkdStrike start="\%(\~\~\)" end="\%(\~\~\)" + execute 'syn region mkdStrike matchgroup=htmlStrike start="\%(\~\~\)" end="\%(\~\~\)"' . s:concealends HtmlHiLink mkdStrike htmlStrike endif -syn cluster mkdNonListItem contains=@htmlTop,htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdInlineURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,mkdMath,htmlStrike +syn cluster mkdHeadingContent contains=htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdLink,mkdInlineURL,mkdStrike,mkdCode +syn cluster mkdNonListItem contains=@htmlTop,htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdInlineURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,mkdMath,mkdStrike "highlighting for Markdown groups -HtmlHiLink mkdString String -HtmlHiLink mkdCode String -HtmlHiLink mkdCodeDelimiter String -HtmlHiLink mkdCodeStart String -HtmlHiLink mkdCodeEnd String -HtmlHiLink mkdFootnote Comment -HtmlHiLink mkdBlockquote Comment -HtmlHiLink mkdListItem Identifier -HtmlHiLink mkdRule Identifier -HtmlHiLink mkdLineBreak Visual -HtmlHiLink mkdFootnotes htmlLink -HtmlHiLink mkdLink htmlLink -HtmlHiLink mkdURL htmlString -HtmlHiLink mkdInlineURL htmlLink -HtmlHiLink mkdID Identifier -HtmlHiLink mkdLinkDef mkdID -HtmlHiLink mkdLinkDefTarget mkdURL -HtmlHiLink mkdLinkTitle htmlString -HtmlHiLink mkdDelimiter Delimiter - -let b:current_syntax = "mkd" +HtmlHiLink mkdString String +HtmlHiLink mkdCode String +HtmlHiLink mkdCodeDelimiter String +HtmlHiLink mkdCodeStart String +HtmlHiLink mkdCodeEnd String +HtmlHiLink mkdFootnote Comment +HtmlHiLink mkdBlockquote Comment +HtmlHiLink mkdListItem Identifier +HtmlHiLink mkdListItemCheckbox Identifier +HtmlHiLink mkdRule Identifier +HtmlHiLink mkdLineBreak Visual +HtmlHiLink mkdFootnotes htmlLink +HtmlHiLink mkdLink htmlLink +HtmlHiLink mkdURL htmlString +HtmlHiLink mkdInlineURL htmlLink +HtmlHiLink mkdID Identifier +HtmlHiLink mkdLinkDef mkdID +HtmlHiLink mkdLinkDefTarget mkdURL +HtmlHiLink mkdLinkTitle htmlString +HtmlHiLink mkdDelimiter Delimiter + +let b:current_syntax = 'mkd' delcommand HtmlHiLink " vim: ts=8