@@ -76,8 +76,9 @@ syn region markdownCodeBlock start=" \|\t" end="$" contained
7676syn match markdownListMarker " \% (\t\| \{ 0,4\}\) [-*+]\% (\s\+\S\)\@ =" contained
7777syn match markdownOrderedListMarker " \% (\t\| \{ 0,4}\)\<\d\+\.\% (\s\+\S\)\@ =" contained
7878
79- syn match markdownRule " \* *\* *\* [ *]*$" contained
80- syn match markdownRule " - *- *-[ -]*$" contained
79+ syn match markdownRule " ^ \{ 0,3\}\* *\* *\* [ *]*$" contained
80+ syn match markdownRule " ^ \{ 0,3\} - *- *-[ -]*$" contained
81+ syn match markdownRule " ^ \{ 0,3\} _ *_ *_[ _]*$" contained
8182
8283syn match markdownLineBreak " \{ 2,\} $"
8384
@@ -97,12 +98,12 @@ let s:concealends = ''
9798if has (' conceal' ) && get (g: , ' markdown_syntax_conceal' , 1 ) == 1
9899 let s: concealends = ' concealends'
99100endif
100- exe ' syn region markdownItalic matchgroup=markdownItalicDelimiter start="\S\ @<=\*\|\*\S \@=" end="\S\@<=\*\|\*\S\@=" skip="\\\*" contains=markdownLineStart,@Spell' . s: concealends
101- exe ' syn region markdownItalic matchgroup=markdownItalicDelimiter start="\w\@<!_\S \@=" end="\S\@<=_\w\@!" skip="\\_" contains=markdownLineStart,@Spell' . s: concealends
102- exe ' syn region markdownBold matchgroup=markdownBoldDelimiter start="\S\ @<=\*\*\|\*\*\S \@=" end="\S\@<=\*\*\|\*\*\S\@=" skip="\\\*" contains=markdownLineStart,markdownItalic,@Spell' . s: concealends
103- exe ' syn region markdownBold matchgroup=markdownBoldDelimiter start="\w\@<!__\S \@=" end="\S\@<=__\w\@!" skip="\\_" contains=markdownLineStart,markdownItalic,@Spell' . s: concealends
104- exe ' syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\S\ @<=\*\*\*\|\*\*\*\S \@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" skip="\\\*" contains=markdownLineStart,@Spell' . s: concealends
105- exe ' syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\w\@<!___\S \@=" end="\S\@<=___\w\@!" skip="\\_" contains=markdownLineStart,@Spell' . s: concealends
101+ exe ' syn region markdownItalic matchgroup=markdownItalicDelimiter start="\%(\S\&[^\*]\)\ @<=\*\|\*\%(\S\&[^\*]\) \@=" end="\S\@<=\*\|\*\S\@=" skip="\\\*" contains=markdownLineStart,@Spell' . s: concealends
102+ exe ' syn region markdownItalic matchgroup=markdownItalicDelimiter start="\w\@<!_\%(\S\&[^_]\) \@=" end="\S\@<=_\w\@!" skip="\\_" contains=markdownLineStart,@Spell' . s: concealends
103+ exe ' syn region markdownBold matchgroup=markdownBoldDelimiter start="\%(\S\&[^\*]\)\ @<=\*\*\|\*\*\%(\S\&[^\*]\) \@=" end="\S\@<=\*\*\|\*\*\S\@=" skip="\\\*" contains=markdownLineStart,markdownItalic,@Spell' . s: concealends
104+ exe ' syn region markdownBold matchgroup=markdownBoldDelimiter start="\w\@<!__\%(\S\&[^_]\) \@=" end="\S\@<=__\w\@!" skip="\\_" contains=markdownLineStart,markdownItalic,@Spell' . s: concealends
105+ exe ' syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\%(\S\&[^\*]\)\ @<=\*\*\*\|\*\*\*\%(\S\&[^\*]\) \@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" skip="\\\*" contains=markdownLineStart,@Spell' . s: concealends
106+ exe ' syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\w\@<!___\%(\S\&[^_]\) \@=" end="\S\@<=___\w\@!" skip="\\_" contains=markdownLineStart,@Spell' . s: concealends
106107
107108syn region markdownCode matchgroup =markdownCodeDelimiter start =" `" end =" `" keepend contains =markdownLineStart
108109syn region markdownCode matchgroup =markdownCodeDelimiter start =" `` \= " end =" \= ``" keepend contains =markdownLineStart
0 commit comments