Skip to content

Commit d2eef03

Browse files
authored
Merge branch 'master' into todo-comment
2 parents 57b25a5 + 6b13e98 commit d2eef03

File tree

3 files changed

+274
-8
lines changed

3 files changed

+274
-8
lines changed

syntax/markdown.vim

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,14 @@ syn region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained
8686
syn region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained
8787

8888
"HTML headings
89-
syn region htmlH1 matchgroup=mkdHeading start="^\s*#" end="$" contains=mkdLink,mkdInlineURL,@Spell
90-
syn region htmlH2 matchgroup=mkdHeading start="^\s*##" end="$" contains=mkdLink,mkdInlineURL,@Spell
91-
syn region htmlH3 matchgroup=mkdHeading start="^\s*###" end="$" contains=mkdLink,mkdInlineURL,@Spell
92-
syn region htmlH4 matchgroup=mkdHeading start="^\s*####" end="$" contains=mkdLink,mkdInlineURL,@Spell
93-
syn region htmlH5 matchgroup=mkdHeading start="^\s*#####" end="$" contains=mkdLink,mkdInlineURL,@Spell
94-
syn region htmlH6 matchgroup=mkdHeading start="^\s*######" end="$" contains=mkdLink,mkdInlineURL,@Spell
95-
syn match htmlH1 /^.\+\n=\+$/ contains=mkdLink,mkdInlineURL,@Spell
96-
syn match htmlH2 /^.\+\n-\+$/ contains=mkdLink,mkdInlineURL,@Spell
89+
syn region htmlH1 matchgroup=mkdHeading start="^\s*#" end="$" contains=@mkdHeadingContent,@Spell
90+
syn region htmlH2 matchgroup=mkdHeading start="^\s*##" end="$" contains=@mkdHeadingContent,@Spell
91+
syn region htmlH3 matchgroup=mkdHeading start="^\s*###" end="$" contains=@mkdHeadingContent,@Spell
92+
syn region htmlH4 matchgroup=mkdHeading start="^\s*####" end="$" contains=@mkdHeadingContent,@Spell
93+
syn region htmlH5 matchgroup=mkdHeading start="^\s*#####" end="$" contains=@mkdHeadingContent,@Spell
94+
syn region htmlH6 matchgroup=mkdHeading start="^\s*######" end="$" contains=@mkdHeadingContent,@Spell
95+
syn match htmlH1 /^.\+\n=\+$/ contains=@mkdHeadingContent,@Spell
96+
syn match htmlH2 /^.\+\n-\+$/ contains=@mkdHeadingContent,@Spell
9797

9898
"define Markdown groups
9999
syn match mkdLineBreak / \+$/
@@ -157,6 +157,7 @@ if get(g:, 'vim_markdown_strikethrough', 0)
157157
HtmlHiLink mkdStrike htmlStrike
158158
endif
159159

160+
syn cluster mkdHeadingContent contains=htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdLink,mkdInlineURL,mkdStrike
160161
syn cluster mkdNonListItem contains=@htmlTop,htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdInlineURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,mkdMath,mkdStrike
161162

162163
"highlighting for Markdown groups

test/strikethrough.vader

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
Before:
2+
let g:vim_markdown_strikethrough = 1
3+
syn off | syn on
4+
5+
After:
6+
unlet! g:vim_markdown_strikethrough
7+
8+
Given markdown;
9+
a ~~b~~ c
10+
11+
Execute (strikethrough):
12+
AssertNotEqual SyntaxOf('a'), 'mkdStrike'
13+
AssertEqual SyntaxOf('b'), 'mkdStrike'
14+
AssertNotEqual SyntaxOf('c'), 'mkdStrike'
15+
16+
Given markdown;
17+
# ~~h1~~
18+
## ~~h2~~
19+
### ~~h3~~
20+
#### ~~h4~~
21+
##### ~~h5~~
22+
###### ~~h6~~
23+
24+
Execute (strikethrough in atx headings):
25+
AssertEqual SyntaxOf('h1'), 'mkdStrike'
26+
AssertEqual SyntaxOf('h2'), 'mkdStrike'
27+
AssertEqual SyntaxOf('h3'), 'mkdStrike'
28+
AssertEqual SyntaxOf('h4'), 'mkdStrike'
29+
AssertEqual SyntaxOf('h5'), 'mkdStrike'
30+
AssertEqual SyntaxOf('h6'), 'mkdStrike'
31+
32+
Given markdown;
33+
~~h1~~
34+
=
35+
36+
~~h2~~
37+
-
38+
39+
Execute (strikethrough in setext headings):
40+
AssertEqual SyntaxOf('h1'), 'mkdStrike'
41+
AssertEqual SyntaxOf('h2'), 'mkdStrike'

test/syntax.vader

Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1339,3 +1339,227 @@ Execute (todo inside non-HTML comment):
13391339
AssertNotEqual SyntaxOf('FIXME'), 'mkdTodo'
13401340
AssertNotEqual SyntaxOf('XXX'), 'mkdTodo'
13411341
AssertNotEqual SyntaxOf('TBD'), 'mkdTodo'
1342+
1343+
Given markdown;
1344+
# _h1_
1345+
1346+
## _h2_
1347+
1348+
### _h3_
1349+
1350+
#### _h4_
1351+
1352+
##### _h5_
1353+
1354+
###### _h6_
1355+
1356+
Execute (underscore italic text in atx headings):
1357+
AssertEqual SyntaxOf('h1'), 'htmlItalic'
1358+
AssertEqual SyntaxOf('h2'), 'htmlItalic'
1359+
AssertEqual SyntaxOf('h3'), 'htmlItalic'
1360+
AssertEqual SyntaxOf('h4'), 'htmlItalic'
1361+
AssertEqual SyntaxOf('h5'), 'htmlItalic'
1362+
AssertEqual SyntaxOf('h6'), 'htmlItalic'
1363+
1364+
Given markdown;
1365+
# *h1*
1366+
1367+
## *h2*
1368+
1369+
### *h3*
1370+
1371+
#### *h4*
1372+
1373+
##### *h5*
1374+
1375+
###### *h6*
1376+
1377+
Execute (asterisk italic text in atx headings):
1378+
AssertEqual SyntaxOf('h1'), 'htmlItalic'
1379+
AssertEqual SyntaxOf('h2'), 'htmlItalic'
1380+
AssertEqual SyntaxOf('h3'), 'htmlItalic'
1381+
AssertEqual SyntaxOf('h4'), 'htmlItalic'
1382+
AssertEqual SyntaxOf('h5'), 'htmlItalic'
1383+
AssertEqual SyntaxOf('h6'), 'htmlItalic'
1384+
1385+
Given markdown;
1386+
_h1_
1387+
=
1388+
1389+
_h2_
1390+
-
1391+
1392+
Execute (underscore italic text in setext headings):
1393+
AssertEqual SyntaxOf('h1'), 'htmlItalic'
1394+
AssertEqual SyntaxOf('h2'), 'htmlItalic'
1395+
1396+
Given markdown;
1397+
*h1*
1398+
=
1399+
1400+
*h2*
1401+
-
1402+
1403+
Execute (asterisk italic text in setext headings):
1404+
AssertEqual SyntaxOf('h1'), 'htmlItalic'
1405+
AssertEqual SyntaxOf('h2'), 'htmlItalic'
1406+
1407+
Given markdown;
1408+
# __h1__
1409+
1410+
## __h2__
1411+
1412+
### __h3__
1413+
1414+
#### __h4__
1415+
1416+
##### __h5__
1417+
1418+
###### __h6__
1419+
1420+
Execute (underscore bold text in atx headings):
1421+
AssertEqual SyntaxOf('h1'), 'htmlBold'
1422+
AssertEqual SyntaxOf('h2'), 'htmlBold'
1423+
AssertEqual SyntaxOf('h3'), 'htmlBold'
1424+
AssertEqual SyntaxOf('h4'), 'htmlBold'
1425+
AssertEqual SyntaxOf('h5'), 'htmlBold'
1426+
AssertEqual SyntaxOf('h6'), 'htmlBold'
1427+
1428+
Given markdown;
1429+
# **h1**
1430+
1431+
## **h2**
1432+
1433+
### **h3**
1434+
1435+
#### **h4**
1436+
1437+
##### **h5**
1438+
1439+
###### **h6**
1440+
1441+
Execute (asterisk bold text in atx headings):
1442+
AssertEqual SyntaxOf('h1'), 'htmlBold'
1443+
AssertEqual SyntaxOf('h2'), 'htmlBold'
1444+
AssertEqual SyntaxOf('h3'), 'htmlBold'
1445+
AssertEqual SyntaxOf('h4'), 'htmlBold'
1446+
AssertEqual SyntaxOf('h5'), 'htmlBold'
1447+
AssertEqual SyntaxOf('h6'), 'htmlBold'
1448+
1449+
Given markdown;
1450+
__h1__
1451+
=
1452+
1453+
__h2__
1454+
-
1455+
1456+
Execute (underscore bold text in setext headings):
1457+
AssertEqual SyntaxOf('h1'), 'htmlBold'
1458+
AssertEqual SyntaxOf('h2'), 'htmlBold'
1459+
1460+
Given markdown;
1461+
**h1**
1462+
=
1463+
1464+
**h2**
1465+
-
1466+
1467+
Execute (asterisk bold text in setext headings):
1468+
AssertEqual SyntaxOf('h1'), 'htmlBold'
1469+
AssertEqual SyntaxOf('h2'), 'htmlBold'
1470+
1471+
Given markdown;
1472+
# ___h1___
1473+
1474+
## ___h2___
1475+
1476+
### ___h3___
1477+
1478+
#### ___h4___
1479+
1480+
##### ___h5___
1481+
1482+
###### ___h6___
1483+
1484+
Execute (underscore bold italic text in atx headings):
1485+
AssertEqual SyntaxOf('h1'), 'htmlBoldItalic'
1486+
AssertEqual SyntaxOf('h2'), 'htmlBoldItalic'
1487+
AssertEqual SyntaxOf('h3'), 'htmlBoldItalic'
1488+
AssertEqual SyntaxOf('h4'), 'htmlBoldItalic'
1489+
AssertEqual SyntaxOf('h5'), 'htmlBoldItalic'
1490+
AssertEqual SyntaxOf('h6'), 'htmlBoldItalic'
1491+
1492+
Given markdown;
1493+
# ***h1***
1494+
1495+
## ***h2***
1496+
1497+
### ***h3***
1498+
1499+
#### ***h4***
1500+
1501+
##### ***h5***
1502+
1503+
###### ***h6***
1504+
1505+
Execute (asterisk bold italic text in atx headings):
1506+
AssertEqual SyntaxOf('h1'), 'htmlBoldItalic'
1507+
AssertEqual SyntaxOf('h2'), 'htmlBoldItalic'
1508+
AssertEqual SyntaxOf('h3'), 'htmlBoldItalic'
1509+
AssertEqual SyntaxOf('h4'), 'htmlBoldItalic'
1510+
AssertEqual SyntaxOf('h5'), 'htmlBoldItalic'
1511+
AssertEqual SyntaxOf('h6'), 'htmlBoldItalic'
1512+
1513+
Given markdown;
1514+
___h1___
1515+
=
1516+
1517+
___h2___
1518+
-
1519+
1520+
Execute (underscore bold italic text in setext headings):
1521+
AssertEqual SyntaxOf('h1'), 'htmlBoldItalic'
1522+
AssertEqual SyntaxOf('h2'), 'htmlBoldItalic'
1523+
1524+
Given markdown;
1525+
***h1***
1526+
=
1527+
1528+
***h2***
1529+
-
1530+
1531+
Execute (asterisk bold italic text in setext headings):
1532+
AssertEqual SyntaxOf('h1'), 'htmlBoldItalic'
1533+
AssertEqual SyntaxOf('h2'), 'htmlBoldItalic'
1534+
1535+
Given markdown;
1536+
# [^h1]
1537+
1538+
## [^h2]
1539+
1540+
### [^h3]
1541+
1542+
#### [^h4]
1543+
1544+
##### [^h5]
1545+
1546+
###### [^h6]
1547+
1548+
Execute (footnotes in atx headings):
1549+
AssertEqual SyntaxOf('h1'), 'mkdFootnotes'
1550+
AssertEqual SyntaxOf('h2'), 'mkdFootnotes'
1551+
AssertEqual SyntaxOf('h3'), 'mkdFootnotes'
1552+
AssertEqual SyntaxOf('h4'), 'mkdFootnotes'
1553+
AssertEqual SyntaxOf('h5'), 'mkdFootnotes'
1554+
AssertEqual SyntaxOf('h6'), 'mkdFootnotes'
1555+
1556+
Given markdown;
1557+
[^h1]
1558+
=
1559+
1560+
[^h2]
1561+
-
1562+
1563+
Execute (footnotes in setext headings):
1564+
AssertEqual SyntaxOf('h1'), 'mkdFootnotes'
1565+
AssertEqual SyntaxOf('h2'), 'mkdFootnotes'

0 commit comments

Comments
 (0)