Skip to content

Commit 80fc321

Browse files
Merge pull request intersystems-community#964 from gjsjohnmurray/markdown-codeblocks
Support `objectscript` and `objectscript-class` in Markdown fenced codeblocks
2 parents 06322eb + b29bb06 commit 80fc321

File tree

3 files changed

+118
-0
lines changed

3 files changed

+118
-0
lines changed

package.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,12 @@
601601
{
602602
"id": "vscode-objectscript-output",
603603
"aliases": []
604+
},
605+
{
606+
"id": "objectscript-injection"
607+
},
608+
{
609+
"id": "objectscript-class-injection"
604610
}
605611
],
606612
"grammars": [
@@ -648,6 +654,28 @@
648654
"language": "vscode-objectscript-output",
649655
"scopeName": "source.vscode_objectscript_output",
650656
"path": "syntaxes/vscode-objectscript-output.tmLanguage.json"
657+
},
658+
{
659+
"language": "objectscript-injection",
660+
"scopeName": "markdown.objectscript.codeblock",
661+
"path": "./syntaxes/objectscript_codeblock.json",
662+
"injectTo": [
663+
"text.html.markdown"
664+
],
665+
"embeddedLanguages": {
666+
"meta.embedded.block.objectscript": "objectscript"
667+
}
668+
},
669+
{
670+
"language": "objectscript-class-injection",
671+
"scopeName": "markdown.objectscript_class.codeblock",
672+
"path": "./syntaxes/objectscript-class_codeblock.json",
673+
"injectTo": [
674+
"text.html.markdown"
675+
],
676+
"embeddedLanguages": {
677+
"meta.embedded.block.objectscript_class": "objectscript-class"
678+
}
651679
}
652680
],
653681
"snippets": [
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
"fileTypes": [],
3+
"injectionSelector": "L:text.html.markdown",
4+
"patterns": [
5+
{
6+
"include": "#objectscript-class-code-block"
7+
}
8+
],
9+
"repository": {
10+
"objectscript-class-code-block": {
11+
"begin": "(^|\\G)(\\s*)(\\`{3,}|~{3,})\\s*(?i:(objectscript-class)(\\s+[^`~]*)?$)",
12+
"name": "markup.fenced_code.block.markdown",
13+
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
14+
"beginCaptures": {
15+
"3": {
16+
"name": "punctuation.definition.markdown"
17+
},
18+
"4": {
19+
"name": "fenced_code.block.language.markdown"
20+
},
21+
"5": {
22+
"name": "fenced_code.block.language.attributes.markdown"
23+
}
24+
},
25+
"endCaptures": {
26+
"3": {
27+
"name": "punctuation.definition.markdown"
28+
}
29+
},
30+
"patterns": [
31+
{
32+
"begin": "(^|\\G)(\\s*)(.*)",
33+
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
34+
"contentName": "meta.embedded.block.objectscript_class",
35+
"patterns": [
36+
{
37+
"include": "source.objectscript_class"
38+
}
39+
]
40+
}
41+
]
42+
}
43+
},
44+
"scopeName": "markdown.objectscript_class.codeblock"
45+
}

syntaxes/objectscript_codeblock.json

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
"fileTypes": [],
3+
"injectionSelector": "L:text.html.markdown",
4+
"patterns": [
5+
{
6+
"include": "#objectscript-code-block"
7+
}
8+
],
9+
"repository": {
10+
"objectscript-code-block": {
11+
"begin": "(^|\\G)(\\s*)(\\`{3,}|~{3,})\\s*(?i:(objectscript)(\\s+[^`~]*)?$)",
12+
"name": "markup.fenced_code.block.markdown",
13+
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
14+
"beginCaptures": {
15+
"3": {
16+
"name": "punctuation.definition.markdown"
17+
},
18+
"4": {
19+
"name": "fenced_code.block.language.markdown"
20+
},
21+
"5": {
22+
"name": "fenced_code.block.language.attributes.markdown"
23+
}
24+
},
25+
"endCaptures": {
26+
"3": {
27+
"name": "punctuation.definition.markdown"
28+
}
29+
},
30+
"patterns": [
31+
{
32+
"begin": "(^|\\G)(\\s*)(.*)",
33+
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
34+
"contentName": "meta.embedded.block.objectscript",
35+
"patterns": [
36+
{
37+
"include": "source.objectscript"
38+
}
39+
]
40+
}
41+
]
42+
}
43+
},
44+
"scopeName": "markdown.objectscript.codeblock"
45+
}

0 commit comments

Comments
 (0)