Skip to content

Commit d454358

Browse files
committed
feat: add syntax highlighting (WIP)
1 parent 7ac3c4b commit d454358

File tree

5 files changed

+124
-27
lines changed

5 files changed

+124
-27
lines changed

.vscode/extensions.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"recommendations": [
3+
"redcmd.tmlanguage-syntax-highlighter"
4+
]
5+
}

package.json

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,46 @@
3434
"markdown.previewStyles": [
3535
"./dist/style.css"
3636
],
37+
"languages": [
38+
{
39+
"id": "markmap",
40+
"extensions": [
41+
".mm.md"
42+
]
43+
},
44+
{
45+
"id": "markmap-markdown-codeblock"
46+
}
47+
],
3748
"grammars": [
3849
{
50+
"language": "markmap",
3951
"path": "./dist/syntaxes/markmap.tmLanguage.json",
40-
"scopeName": "text.markmap",
52+
"scopeName": "source.markmap",
53+
"embeddedLanguages": {
54+
"meta.embedded.block.frontmatter": "source.yaml"
55+
}
56+
},
57+
{
58+
"language": "markmap-markdown-codeblock",
59+
"scopeName": "markdown.markmap.codeblock",
60+
"path": "./dist/syntaxes/codeblock.tmLanguage.json",
61+
"embeddedLanguages": {
62+
"meta.embedded.block.markmap": "markmap"
63+
},
4164
"injectTo": [
4265
"text.html.markdown"
43-
],
66+
]
67+
},
68+
{
69+
"scopeName": "markdown.markmap.tag",
70+
"path": "./dist/syntaxes/tag.tmLanguage.json",
4471
"embeddedLanguages": {
45-
"meta.embedded.block.frontmatter": "yaml"
46-
}
72+
"meta.embedded.block.markmap": "markmap"
73+
},
74+
"injectTo": [
75+
"text.html.markdown"
76+
]
4777
}
4878
]
4979
},
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"injectionSelector": "L:text.html.markdown",
3+
"patterns": [
4+
{
5+
"include": "#fenced-block-markmap"
6+
}
7+
],
8+
"repository": {
9+
"fenced-block-markmap": {
10+
"begin": "(^|\\G)(\\s*)(\\`{3,}|~{3,})\\s*(?i:(markmap)(\\s+[^`~]*)?$)",
11+
"name": "markup.fenced_code.block.markdown",
12+
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
13+
"beginCaptures": {
14+
"3": {
15+
"name": "punctuation.definition.markdown"
16+
},
17+
"4": {
18+
"name": "fenced_code.block.language.markdown"
19+
},
20+
"5": {
21+
"name": "fenced_code.block.language.attributes.markdown"
22+
}
23+
},
24+
"endCaptures": {
25+
"3": {
26+
"name": "punctuation.definition.markdown"
27+
}
28+
},
29+
"patterns": [
30+
{
31+
"begin": "(^|\\G)(\\s*)(.*)",
32+
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
33+
"contentName": "meta.embedded.block.markmap",
34+
"patterns": [
35+
{
36+
"include": "source.markmap"
37+
}
38+
]
39+
}
40+
]
41+
}
42+
},
43+
"scopeName": "markdown.markmap.codeblock"
44+
}
Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,28 @@
11
{
2-
"scopeName": "text.markmap",
3-
"injectionSelector": "text.html.markdown",
2+
"name": "markmap",
3+
"scopeName": "source.markmap",
44
"patterns": [
5-
{
6-
"name": "meta.tag.template.markmap",
7-
"begin": "^{%\\s*markmap\\b",
8-
"end": "%}",
9-
"captures": {
10-
"0": { "name": "entity.name.tag.markmap" }
11-
},
5+
{ "include": "#frontMatter" },
6+
{ "include": "text.html.markdown" }
7+
],
8+
"repository": {
9+
"frontMatter": {
10+
"begin": "\\A(?=(-{3,}))",
11+
"end": "^ {,3}\\1-*[ \\t]*$|^[ \\t]*\\.{3}$",
12+
"applyEndPatternLast": 1,
13+
"endCaptures": { "0": { "name": "punctuation.definition.tag.frontmatter"} },
1214
"patterns": [
1315
{
14-
"match": "\\d+",
15-
"name": "constant.numeric.markmap-param"
16-
},
17-
{
18-
"match": "\\w+",
19-
"name": "variable.parameter.markmap"
16+
"begin": "\\A(-{3,})(.*)$",
17+
"while": "^(?! {,3}\\1-*[ \\t]*$|[ \\t]*\\.{3}$)",
18+
"beginCaptures": {
19+
"1": { "name": "punctuation.definition.tag.frontmatter" },
20+
"2": { "name": "comment.frontmatter" }
21+
},
22+
"contentName": "meta.embedded.block.frontmatter",
23+
"patterns": [ { "include": "source.yaml" } ]
2024
}
2125
]
22-
},
23-
{
24-
"name": "meta.tag.template.markmap",
25-
"match": "^{%\\s*endmarkmap\\s*%}",
26-
"captures": {
27-
"0": { "name": "entity.name.tag.markmap" }
28-
}
2926
}
30-
]
27+
}
3128
}

src/syntaxes/tag.tmLanguage.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"scopeName": "markdown.markmap.tag",
3+
"injectionSelector": "L:text.html.markdown",
4+
"patterns": [
5+
{ "include": "#markmap-block" }
6+
],
7+
"repository": {
8+
"markmap-block": {
9+
"name": "markup.markmap",
10+
"begin": "^{%\\s*markmap\\s*(.*?)\\s*%}$",
11+
"beginCaptures": {
12+
"0": { "name": "entity.name.tag.markmap" },
13+
"1": { "name": "constant.numeric.markmap-param" }
14+
},
15+
"end": "^{%\\s*endmarkmap\\s*%}$",
16+
"endCaptures": { "0": { "name": "entity.name.tag.markmap" } },
17+
"contentName": "meta.embedded.block.markmap",
18+
"patterns": [ { "include": "source.markmap" } ]
19+
}
20+
}
21+
}

0 commit comments

Comments
 (0)