Skip to content

Commit d51d829

Browse files
committed
Add schema support. "defaultSnippets", "markdownDescription" and "pattern"
1 parent 37bb9c4 commit d51d829

File tree

5 files changed

+183
-0
lines changed

5 files changed

+183
-0
lines changed

package.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,45 @@
6262
"source.json.comments"
6363
]
6464
},
65+
{
66+
"scopeName": "source.json.snippets",
67+
"path": "./syntaxes/schema-defaultSnippets.tmLanguage.json",
68+
"embeddedLanguages": {
69+
"meta.embedded.json.comments.snippets.snippets": "snippets-snippets",
70+
"meta.embedded.json.comments.snippets": "snippets",
71+
"meta.embedded.json.textmate.regexp": "json-textmate-regex"
72+
},
73+
"injectTo": [
74+
"source.json"
75+
]
76+
},
77+
{
78+
"scopeName": "source.json.pattern",
79+
"path": "./syntaxes/schema-pattern.tmLanguage.json",
80+
"embeddedLanguages": {
81+
"meta.embedded.json.textmate.regexp": "json-textmate-regex"
82+
},
83+
"injectTo": [
84+
"source.json"
85+
]
86+
},
87+
{
88+
"scopeName": "source.json.markdown",
89+
"path": "./syntaxes/schema-markdown.tmLanguage.json",
90+
"embeddedLanguages": {
91+
"meta.embedded.text.html.markdown": "markdown"
92+
},
93+
"injectTo": [
94+
"source.json"
95+
]
96+
},
97+
{
98+
"scopeName": "source.json.markdown.escape",
99+
"path": "./syntaxes/schema-markdown-escape.tmLanguage.json",
100+
"injectTo": [
101+
"source.json"
102+
]
103+
},
65104
{
66105
"scopeName": "source.json.legacy_tox_ini",
67106
"path": "./syntaxes/legacy_tox_ini.tmLanguage.json",
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/RedCMD/TmLanguage-Syntax-Highlighter/main/vscode.tmLanguage.schema.json",
3+
"name": "Schema \"defaultSnippets\" Snippets",
4+
"scopeName": "source.json.snippets",
5+
"injectionSelector": [
6+
"L:source.json .meta.embedded.defaultSnippets. meta.structure.array.json .meta.embedded.bodyText. string.quoted.double.json -(.meta.embedded.bodyText. meta.structure.dictionary.json) -(.meta.embedded.bodyText. meta.structure.array.json) -(.meta.embedded.defaultSnippets. meta.structure.array.json meta.structure.array.json .meta.embedded.bodyText.) -(.meta.embedded.defaultSnippets. meta.structure.dictionary.json meta.structure.dictionary.json .meta.embedded.bodyText.) -meta.embedded.json.comments.snippets.snippets -comment -source.json.comments",
7+
"L:source.json .meta.embedded.defaultSnippets. meta.structure.array.json .meta.embedded.body. (string.quoted.double.json | support.type.property-name.json) -(.meta.embedded.defaultSnippets. meta.structure.array.json meta.structure.array.json .meta.embedded.body.) -(.meta.embedded.defaultSnippets. meta.structure.dictionary.json meta.structure.dictionary.json .meta.embedded.body.) -meta.embedded.json.comments.snippets.snippets -comment -source.json.comments"
8+
],
9+
"patterns": [
10+
{
11+
"comment": "https://github.com/microsoft/vscode-textmate/issues/242",
12+
"include": "source.json.comments.snippets#_pre-load_"
13+
},
14+
{ "include": "#body-key" },
15+
{ "include": "#bodyText-string" },
16+
{ "include": "#body-string" }
17+
],
18+
"repository": {
19+
"body-key": {
20+
"match": "(?<={\\s*+\")\\G(?>[^\\\\\"\\x-\\x1F]++|\\\\.)++|(?<=\")\\G(?>[^\\\\\"\\x-\\x1F]++|\\\\.)++(?=\"\\s*+:)",
21+
"captures": {
22+
"0": {
23+
"name": "meta.embedded.json.comments.snippets.snippets string.json support.type.property-name.json",
24+
"patterns": [
25+
{ "include": "source.json.comments.snippets#any" },
26+
{ "include": "source.json.comments.snippets#body_stringcontent" },
27+
{ "include": "source.json#stringcontent" }
28+
]
29+
}
30+
}
31+
},
32+
"bodyText-string": {
33+
"match": "(?<=\"bodyText\"\\s*+:\\s*+\")\\G(?>[^\\\\\"\\x-\\x1F]++|\\\\.)++",
34+
"captures": {
35+
"0": {
36+
"name": "meta.embedded.json.comments.snippets.snippets string.quoted.double.json",
37+
"patterns": [
38+
{ "include": "source.json.comments.snippets#any" },
39+
{ "include": "source.json.comments.snippets#body_stringcontent" },
40+
{ "include": "source.json#stringcontent" }
41+
]
42+
}
43+
}
44+
},
45+
"body-string": {
46+
"match": "(?<=\")\\G(?>(\\^)?+((?>[^\\\\\"\\x-\\x1F]++|\\\\.)++)|(\\^))",
47+
"captures": {
48+
"1": { "name": "keyword.control.unstringify.json.schema" },
49+
"2": {
50+
"name": "meta.embedded.json.comments.snippets.snippets string.quoted.double.json",
51+
"patterns": [
52+
{ "include": "source.json.comments.snippets#any" },
53+
{ "include": "source.json.comments.snippets#body_stringcontent" },
54+
{ "include": "source.json#stringcontent" }
55+
]
56+
},
57+
"3": { "name": "keyword.control.unstringify.json.schema" }
58+
}
59+
}
60+
}
61+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/RedCMD/TmLanguage-Syntax-Highlighter/main/vscode.tmLanguage.schema.json",
3+
"name": "Schema \"markdownDescription\" and \"patternProperties\" Escapes",
4+
"scopeName": "source.json.markdown.escape",
5+
"injectionSelector": "L:source.json meta.embedded.text.html.markdown -source.json.comments",
6+
"patterns": [
7+
{ "include": "#raw" },
8+
{ "include": "source.json#stringcontent" }
9+
],
10+
"repository": {
11+
"raw": {
12+
"match": "(?<!`)(`++)((?>[^`]++|(?!\\1(?!`))`++)++)(\\1)",
13+
"name": "markup.inline.raw.string.markdown",
14+
"captures": {
15+
"1": { "name": "punctuation.definition.raw.markdown" },
16+
"2": { "patterns": [ { "include": "source.json#stringcontent" } ] },
17+
"3": { "name": "punctuation.definition.raw.markdown" }
18+
}
19+
}
20+
}
21+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/RedCMD/TmLanguage-Syntax-Highlighter/main/vscode.tmLanguage.schema.json",
3+
"name": "Schema \"markdownDescription\" and \"patternProperties\" Markdown",
4+
"scopeName": "source.json.markdown",
5+
"injectionSelector": "L:source.json .meta.embedded.markdownDescription. string.quoted.double.json -(.meta.embedded.markdownDescription. meta.structure.dictionary.json) -(.meta.embedded.markdownDescription. meta.structure.array.json) -meta.embedded.text.html.markdown -comment -source.json.comments",
6+
"patterns": [
7+
{
8+
"comment": "https://github.com/microsoft/vscode-textmate/issues/242",
9+
"include": "text.html.markdown#_pre-load_"
10+
},
11+
{ "include": "#markdown" },
12+
{ "include": "source.json#stringcontent" }
13+
],
14+
"repository": {
15+
"markdown": {
16+
"match": "(?<=\"|\\\\[nr])(?>[^\\\\\"\\x-\\x1F]++|\\\\[^nr])++(?=\"|\\\\[nr])",
17+
"captures": {
18+
"0": {
19+
"name": "meta.embedded.text.html.markdown",
20+
"patterns": [
21+
{
22+
"comment": "Setup \\G anchor for Markdown",
23+
"begin": "|",
24+
"end": "(*FAIL)",
25+
"patterns": [ { "include": "text.html.markdown" } ]
26+
}
27+
]
28+
}
29+
}
30+
}
31+
}
32+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/RedCMD/TmLanguage-Syntax-Highlighter/main/vscode.tmLanguage.schema.json",
3+
"name": "Schema \"pattern\" and \"patternProperties\" Regex",
4+
"scopeName": "source.json.pattern",
5+
"injectionSelector": [
6+
"L:source.json .meta.embedded.patternProperties. meta.structure.dictionary.json support.type.property-name.json -(.meta.embedded.patternProperties. meta.structure.dictionary.json meta.structure.dictionary.json) -(.meta.embedded.patternProperties. meta.structure.array.json) -meta.embedded.json.textmate.regexp -comment -source.json.comments",
7+
"L:source.json .meta.embedded.pattern. string.quoted.double.json -(.meta.embedded.pattern. meta.structure.dictionary.json) -(.meta.embedded.pattern. meta.structure.array.json) -meta.embedded.json.textmate.regexp -comment -source.json.comments"
8+
],
9+
"patterns": [
10+
{
11+
"comment": "https://github.com/microsoft/vscode-textmate/issues/242",
12+
"include": "source.json.textmate.regexp#_pre-load_"
13+
},
14+
{ "include": "#regexp" }
15+
],
16+
"repository": {
17+
"regexp": {
18+
"match": "(?<=\")\\G(?>[^\\\\\"\\x-\\x1F]++|\\\\.)++",
19+
"captures": {
20+
"0": {
21+
"name": "meta.embedded.json.textmate.regexp",
22+
"patterns": [
23+
{ "include": "source.json.textmate.regexp" },
24+
{ "include": "source.json#stringcontent" }
25+
]
26+
}
27+
}
28+
}
29+
}
30+
}

0 commit comments

Comments
 (0)