X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/a3f273839d1b45fe73b3bc48e1d7a8c6d1422187..0b4eaea0a94362f64962130af52bef0af5407b0f:/syntax/markdown.vim?ds=inline
diff --git a/syntax/markdown.vim b/syntax/markdown.vim
index 05cf751..ed348cb 100644
--- a/syntax/markdown.vim
+++ b/syntax/markdown.vim
@@ -42,12 +42,22 @@ if has('conceal')
endif
"additions to HTML groups
-syn region htmlItalic start="\%(^\|\s\)\zs\*\ze[^\\\*\t ]" end="[^\\\*\t ]\zs\*\ze\_W" keepend
-syn region htmlItalic start="\%(^\|\s\)\zs_\ze[^\\_\t ]" end="[^\\_\t ]\zs_\ze\_W" keepend
-syn region htmlBold start="\*\*\ze\S" end="\S\zs\*\*" keepend
-syn region htmlBold start="__\ze\S" end="\S\zs__" keepend
-syn region htmlBoldItalic start="\*\*\*\ze\S" end="\S\zs\*\*\*" keepend
-syn region htmlBoldItalic start="___\ze\S" end="\S\zs___" keepend
+if get(g:, "vim_markdown_emphasis_multiline", 1)
+ syn region htmlItalic start="\%(^\|\s\)\zs\*\ze[^\\\*\t ]" end="[^\\\*\t ]\zs\*\ze\_W" keepend
+ syn region htmlItalic start="\%(^\|\s\)\zs_\ze[^\\_\t ]" end="[^\\_\t ]\zs_\ze\_W" keepend
+ syn region htmlBold start="\*\*\ze\S" end="\S\zs\*\*" keepend
+ syn region htmlBold start="__\ze\S" end="\S\zs__" keepend
+ syn region htmlBoldItalic start="\*\*\*\ze\S" end="\S\zs\*\*\*" keepend
+ syn region htmlBoldItalic start="___\ze\S" end="\S\zs___" keepend
+else
+ " single-line emphasis (emphasis only works with closing token on the same line)
+ syn region htmlItalic start="\%(^\|\s\)\zs\*\ze[^\\\*\t ]\([^\n]*[^\\\*\t ]\)\?\*" end="[^\\\*\t ]\zs\*\ze\_W" keepend
+ syn region htmlItalic start="\%(^\|\s\)\zs_\ze[^\\_\t ]\([^\n]*[^\\_\t ]\)\?_" end="[^\\_\t ]\zs_\ze\_W" keepend
+ syn region htmlBold start="\*\*\ze\S\([^\n]*[^\\\*\t ]\)\?\*\*" end="\S\zs\*\*" keepend
+ syn region htmlBold start="__\ze\S\([^\n]*[^\\_\t ]\)\?__" end="\S\zs__" keepend
+ syn region htmlBold start="\*\*\*\ze\S\([^\n]*[^\\\*\t ]\)\?\*\*\*" end="\S\zs\*\*\*" keepend
+ syn region htmlBold start="___\ze\S\([^\n]*[^\\_\t ]\)\?___" end="\S\zs___" keepend
+endif
" [link](URL) | [link][id] | [link][] | ![image](URL)
syn region mkdFootnotes matchgroup=mkdDelimiter start="\[^" end="\]"
@@ -88,11 +98,11 @@ syn match mkdLineBreak / \+$/
syn region mkdBlockquote start=/^\s*>/ end=/$/ contains=mkdLineBreak,@Spell
syn region mkdCode start=/\(\([^\\]\|^\)\\\)\@]*>" end=""
-syn region mkdCode start="]*>" end="
"
+syn region mkdCode start="
]*\\\@" end="" +syn region mkdCode start="
]*\\\@" end="
"
syn region mkdFootnote start="\[^" end="\]"
syn match mkdCode /^\s*\n\(\(\s\{8,}[^ ]\|\t\t\+[^\t]\).*\n\)\+/
syn match mkdCode /\%^\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/
@@ -124,9 +134,13 @@ if get(g:, 'vim_markdown_toml_frontmatter', 0)
endif
if get(g:, 'vim_markdown_json_frontmatter', 0)
- syn include @jsonTop syntax/json.vim
- syn region Comment matchgroup=mkdDelimiter start="\%^{$" end="^}$" contains=@jsonTop
- unlet! b:current_syntax
+ try
+ syn include @jsonTop syntax/json.vim
+ syn region Comment matchgroup=mkdDelimiter start="\%^{$" end="^}$" contains=@jsonTop
+ unlet! b:current_syntax
+ catch /E484/
+ syn region Comment matchgroup=mkdDelimiter start="\%^{$" end="^}$"
+ endtry
endif
if get(g:, 'vim_markdown_math', 0)