github-linguist 7.6.1 → 7.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/bin/github-linguist +17 -4
- data/grammars/annotation.liquidhaskell.haskell.json +58 -11
- data/grammars/etc.json +212 -3
- data/grammars/hidden.manref.json +29 -0
- data/grammars/hint.haskell.json +58 -11
- data/grammars/hint.message.haskell.json +58 -11
- data/grammars/hint.type.haskell.json +58 -11
- data/grammars/injections.etc.json +601 -1
- data/grammars/markdown.plantuml.codeblock.json +26 -0
- data/grammars/source.4dm.json +1100 -0
- data/grammars/source.abap.json +7 -7
- data/grammars/source.abnf.json +23 -1
- data/grammars/source.agda.json +32 -202
- data/grammars/source.ahk.json +9 -5
- data/grammars/source.angelscript.json +1 -1
- data/grammars/source.ballerina.json +54 -18
- data/grammars/source.chapel.json +4 -4
- data/grammars/source.csound.json +1 -1
- data/grammars/source.css.json +2 -2
- data/grammars/source.css.scss.json +164 -15
- data/grammars/source.curlrc.json +869 -65
- data/grammars/source.dart.json +58 -32
- data/grammars/source.dircolors.json +137 -0
- data/grammars/source.direct-x.json +135 -0
- data/grammars/source.ebnf.json +67 -39
- data/grammars/source.editorconfig.json +23 -5
- data/grammars/source.elixir.json +51 -0
- data/grammars/source.elm.json +1 -1
- data/grammars/source.emacs.lisp.json +10 -0
- data/grammars/source.faust.json +119 -0
- data/grammars/source.gcode.json +166 -8
- data/grammars/source.gfm.json +1 -1
- data/grammars/source.gitconfig.json +1 -1
- data/grammars/source.hack.json +200 -98
- data/grammars/source.haskell.json +58 -11
- data/grammars/source.hlsl.json +9 -5
- data/grammars/source.hosts.json +40 -0
- data/grammars/source.hsig.json +58 -11
- data/grammars/source.hx.json +4 -0
- data/grammars/source.igor.json +46 -2
- data/grammars/source.ini.npmrc.json +311 -0
- data/grammars/source.inno.json +133 -0
- data/grammars/source.inputrc.json +500 -0
- data/grammars/source.js.json +4 -4
- data/grammars/source.julia.json +69 -23
- data/grammars/source.kotlin.json +1 -1
- data/grammars/source.lean.json +19 -3
- data/grammars/source.lean.markdown.json +2598 -0
- data/grammars/source.lex.json +4 -4
- data/grammars/source.m4.json +141 -99
- data/grammars/source.man-conf.json +46 -34
- data/grammars/source.matlab.json +437 -184
- data/grammars/source.mcfunction-snapshot.json +21388 -561
- data/grammars/source.mcfunction.json +55 -5
- data/grammars/source.meson.json +1 -1
- data/grammars/source.mlir.json +37 -317
- data/grammars/source.mrc.json +740 -0
- data/grammars/source.nasl.json +155 -0
- data/grammars/source.nextflow.json +2 -2
- data/grammars/source.odin-ehr.json +806 -0
- data/grammars/source.odin.json +402 -0
- data/grammars/source.opts.json +12 -2
- data/grammars/source.p4.json +21 -5
- data/grammars/source.prisma.json +435 -0
- data/grammars/source.python.json +2 -0
- data/grammars/source.qasm.json +66 -0
- data/grammars/source.ql.json +1408 -0
- data/grammars/source.reason.json +28 -16
- data/grammars/source.rego.json +124 -0
- data/grammars/source.sass.json +158 -3
- data/grammars/source.scala.json +53 -18
- data/grammars/source.ssh-config.json +1 -14
- data/grammars/source.swift.json +162 -2
- data/grammars/source.sy.json +2088 -183
- data/grammars/source.terraform.json +576 -132
- data/grammars/source.tnsaudit.json +256 -0
- data/grammars/source.ts.json +159 -51
- data/grammars/source.tsx.json +160 -52
- data/grammars/source.v.json +559 -764
- data/grammars/source.vim-snippet.json +645 -0
- data/grammars/source.viml.json +6 -6
- data/grammars/source.webassembly.json +10 -0
- data/grammars/source.wgetrc.json +1640 -0
- data/grammars/source.wsd.json +775 -0
- data/grammars/source.zig.json +169 -304
- data/grammars/text.html.php.blade.json +1 -1
- data/grammars/text.html.riot.json +788 -0
- data/grammars/text.muse.json +1471 -0
- data/grammars/text.tex.latex.haskell.json +58 -11
- data/grammars/text.vim-help.json +383 -0
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/blob_helper.rb +4 -2
- data/lib/linguist/file_blob.rb +1 -1
- data/lib/linguist/generated.rb +60 -13
- data/lib/linguist/heuristics.yml +64 -4
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +336 -45
- data/lib/linguist/lazy_blob.rb +10 -10
- data/lib/linguist/linguist.bundle +0 -0
- data/lib/linguist/samples.json +43560 -31457
- data/lib/linguist/shebang.rb +5 -3
- data/lib/linguist/vendor.yml +9 -0
- metadata +29 -10
- data/grammars/source.LS.json +0 -85
- data/grammars/source.MCPOST.json +0 -54
- data/grammars/source.MOD.json +0 -55
- data/grammars/source.apt.json +0 -18
- data/grammars/source.jlex.json +0 -322
- data/grammars/source.yaml-ext.json +0 -324
data/grammars/source.dart.json
CHANGED
@@ -14,6 +14,9 @@
|
|
14
14
|
{
|
15
15
|
"include": "#strings"
|
16
16
|
},
|
17
|
+
{
|
18
|
+
"include": "#comments"
|
19
|
+
},
|
17
20
|
{
|
18
21
|
"name": "keyword.other.import.dart",
|
19
22
|
"match": "\\b(as|show|hide)\\b"
|
@@ -40,10 +43,10 @@
|
|
40
43
|
"include": "#annotations"
|
41
44
|
},
|
42
45
|
{
|
43
|
-
"include": "#
|
46
|
+
"include": "#keywords"
|
44
47
|
},
|
45
48
|
{
|
46
|
-
"include": "#
|
49
|
+
"include": "#constants-and-special-vars"
|
47
50
|
},
|
48
51
|
{
|
49
52
|
"include": "#strings"
|
@@ -80,34 +83,31 @@
|
|
80
83
|
}
|
81
84
|
]
|
82
85
|
},
|
83
|
-
"comments-
|
86
|
+
"comments-block": {
|
84
87
|
"patterns": [
|
85
88
|
{
|
86
|
-
"
|
87
|
-
"
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
"name": "variable.other.source.dart"
|
89
|
+
"name": "comment.block.dart",
|
90
|
+
"begin": "/\\*",
|
91
|
+
"end": "\\*/",
|
92
|
+
"patterns": [
|
93
|
+
{
|
94
|
+
"include": "#comments-block"
|
93
95
|
}
|
94
|
-
|
95
|
-
}
|
96
|
+
]
|
97
|
+
}
|
98
|
+
]
|
99
|
+
},
|
100
|
+
"comments-doc": {
|
101
|
+
"patterns": [
|
96
102
|
{
|
97
|
-
"
|
98
|
-
"
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
"name": "comment.block.documentation.dart",
|
104
|
-
"patterns": [
|
105
|
-
{
|
106
|
-
"include": "#dartdoc"
|
107
|
-
}
|
108
|
-
]
|
103
|
+
"name": "comment.block.documentation.dart",
|
104
|
+
"begin": "///",
|
105
|
+
"while": "^\\s*///",
|
106
|
+
"patterns": [
|
107
|
+
{
|
108
|
+
"include": "#dartdoc"
|
109
109
|
}
|
110
|
-
|
110
|
+
]
|
111
111
|
}
|
112
112
|
]
|
113
113
|
},
|
@@ -121,6 +121,9 @@
|
|
121
121
|
{
|
122
122
|
"include": "#comments-doc-oldschool"
|
123
123
|
},
|
124
|
+
{
|
125
|
+
"include": "#comments-block"
|
126
|
+
},
|
124
127
|
{
|
125
128
|
"include": "#dartdoc"
|
126
129
|
}
|
@@ -131,9 +134,7 @@
|
|
131
134
|
"comments-inline": {
|
132
135
|
"patterns": [
|
133
136
|
{
|
134
|
-
"
|
135
|
-
"begin": "/\\*",
|
136
|
-
"end": "\\*/"
|
137
|
+
"include": "#comments-block"
|
137
138
|
},
|
138
139
|
{
|
139
140
|
"match": "((//).*)$",
|
@@ -161,7 +162,7 @@
|
|
161
162
|
},
|
162
163
|
{
|
163
164
|
"name": "support.class.dart",
|
164
|
-
"match": "(?\u003c![a-zA-Z0-9_$])[_$]*[A-Z][a-zA-Z0-9_$]
|
165
|
+
"match": "(?\u003c![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*|bool\\b|num\\b|int\\b|double\\b|dynamic\\b)"
|
165
166
|
},
|
166
167
|
{
|
167
168
|
"match": "([_$]*[a-z][a-zA-Z0-9_$]*)(\u003c|\\(|\\s+=\u003e)",
|
@@ -183,6 +184,27 @@
|
|
183
184
|
}
|
184
185
|
}
|
185
186
|
},
|
187
|
+
{
|
188
|
+
"match": "^ {4,}(?![ \\*]).*",
|
189
|
+
"captures": {
|
190
|
+
"0": {
|
191
|
+
"name": "variable.name.source.dart"
|
192
|
+
}
|
193
|
+
}
|
194
|
+
},
|
195
|
+
{
|
196
|
+
"contentName": "variable.other.source.dart",
|
197
|
+
"begin": "```.*?$",
|
198
|
+
"end": "```"
|
199
|
+
},
|
200
|
+
{
|
201
|
+
"match": "(`.*?`)",
|
202
|
+
"captures": {
|
203
|
+
"0": {
|
204
|
+
"name": "variable.other.source.dart"
|
205
|
+
}
|
206
|
+
}
|
207
|
+
},
|
186
208
|
{
|
187
209
|
"match": "(`.*?`)",
|
188
210
|
"captures": {
|
@@ -232,7 +254,7 @@
|
|
232
254
|
},
|
233
255
|
{
|
234
256
|
"name": "keyword.declaration.dart",
|
235
|
-
"match": "(?\u003c!\\$)\\b(abstract|class|enum|extends|external|factory|implements|get|mixin|native|operator|set|typedef|with|covariant)\\b(?!\\$)"
|
257
|
+
"match": "(?\u003c!\\$)\\b(abstract|class|enum|extends|extension|external|factory|implements|get|mixin|native|operator|set|typedef|with|covariant)\\b(?!\\$)"
|
236
258
|
},
|
237
259
|
{
|
238
260
|
"name": "keyword.operator.dart",
|
@@ -250,6 +272,10 @@
|
|
250
272
|
"name": "keyword.operator.assignment.bitwise.dart",
|
251
273
|
"match": "((\u0026|\\^|\\||\u003c\u003c|\u003e\u003e\u003e?)=)"
|
252
274
|
},
|
275
|
+
{
|
276
|
+
"name": "keyword.operator.closure.dart",
|
277
|
+
"match": "(=\u003e)"
|
278
|
+
},
|
253
279
|
{
|
254
280
|
"name": "keyword.operator.comparison.dart",
|
255
281
|
"match": "(==|!=|\u003c=?|\u003e=?)"
|
@@ -276,11 +302,11 @@
|
|
276
302
|
},
|
277
303
|
{
|
278
304
|
"name": "storage.modifier.dart",
|
279
|
-
"match": "(?\u003c!\\$)\\b(static|final|const)\\b(?!\\$)"
|
305
|
+
"match": "(?\u003c!\\$)\\b(static|final|const|required|late)\\b(?!\\$)"
|
280
306
|
},
|
281
307
|
{
|
282
308
|
"name": "storage.type.primitive.dart",
|
283
|
-
"match": "(?\u003c!\\$)\\b(?:void|
|
309
|
+
"match": "(?\u003c!\\$)\\b(?:void|var)\\b(?!\\$)"
|
284
310
|
}
|
285
311
|
]
|
286
312
|
},
|
@@ -0,0 +1,137 @@
|
|
1
|
+
{
|
2
|
+
"name": "dircolors",
|
3
|
+
"scopeName": "source.dircolors",
|
4
|
+
"patterns": [
|
5
|
+
{
|
6
|
+
"begin": "(^\\s+)?(?\u003c!\\S)(?=#)(?!#\\{)",
|
7
|
+
"end": "(?!\\G)",
|
8
|
+
"patterns": [
|
9
|
+
{
|
10
|
+
"name": "comment.line.number-sign.dircolors",
|
11
|
+
"begin": "#",
|
12
|
+
"end": "\\n",
|
13
|
+
"beginCaptures": {
|
14
|
+
"0": {
|
15
|
+
"name": "punctuation.definition.comment.dircolors"
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
],
|
20
|
+
"beginCaptures": {
|
21
|
+
"1": {
|
22
|
+
"name": "punctuation.whitespace.comment.leading.dircolors"
|
23
|
+
}
|
24
|
+
}
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"name": "constant.numeric.radix.dircolors",
|
28
|
+
"match": "\\b[0-3]?[0-9]#[0-9a-zA-Z]+\\b"
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"name": "constant.numeric.dircolors",
|
32
|
+
"match": "\\b\\d+?\\b"
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"name": "punctuation.delimiter.semicolon.dircolors",
|
36
|
+
"match": ";"
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"match": "(?i)^(\\s*)(TERM)\\s+((?:[^\\s#\\\\]|\\\\.)+)",
|
40
|
+
"captures": {
|
41
|
+
"1": {
|
42
|
+
"name": "punctuation.whitespace.comment.leading.dircolors"
|
43
|
+
},
|
44
|
+
"2": {
|
45
|
+
"name": "keyword.other.dircolors"
|
46
|
+
},
|
47
|
+
"3": {
|
48
|
+
"name": "variable.parameter.function.terminal-type.dircolors"
|
49
|
+
}
|
50
|
+
}
|
51
|
+
},
|
52
|
+
{
|
53
|
+
"match": "(?i)^(\\s*)(COLOR|EIGHTBIT)\\s+(all|none|no|tty|yes)\\b",
|
54
|
+
"captures": {
|
55
|
+
"1": {
|
56
|
+
"name": "punctuation.whitespace.comment.leading.dircolors"
|
57
|
+
},
|
58
|
+
"2": {
|
59
|
+
"name": "keyword.other.dircolors"
|
60
|
+
},
|
61
|
+
"3": {
|
62
|
+
"name": "constant.language.${3:/downcase}.dircolors"
|
63
|
+
}
|
64
|
+
}
|
65
|
+
},
|
66
|
+
{
|
67
|
+
"match": "(?i)^(\\s*)(OPTIONS)\\s+((?:[^\\s#\\\\]|\\\\.)+)",
|
68
|
+
"captures": {
|
69
|
+
"1": {
|
70
|
+
"name": "punctuation.whitespace.comment.leading.dircolors"
|
71
|
+
},
|
72
|
+
"2": {
|
73
|
+
"name": "keyword.other.dircolors"
|
74
|
+
},
|
75
|
+
"3": {
|
76
|
+
"patterns": [
|
77
|
+
{
|
78
|
+
"include": "source.opts"
|
79
|
+
}
|
80
|
+
]
|
81
|
+
}
|
82
|
+
}
|
83
|
+
},
|
84
|
+
{
|
85
|
+
"match": "(?ix)\n^ (\\s*)\n(TERM|COLOR|EIGHTBIT|OPTION|NORMAL|NORM|FILE|RESET|DIR|LNK|LINK|SYMLINK|ORPHAN|MISSING\n|FIFO|PIPE|SOCK|BLK|BLOCK|CHR|CHAR|DOOR|EXEC|LEFT|LEFTCODE|RIGHT|RIGHTCODE|END|ENDCODE\n|SUID|SETUID|SGID|SETGID|STICKY|OTHER_WRITABLE|OWR|STICKY_OTHER_WRITABLE|OWT|CAPABILITY\n|MULTIHARDLINK|CLRTOEOL)\n(?=\\s|\\#|$)",
|
86
|
+
"captures": {
|
87
|
+
"1": {
|
88
|
+
"name": "punctuation.whitespace.comment.leading.dircolors"
|
89
|
+
},
|
90
|
+
"2": {
|
91
|
+
"name": "keyword.other.dircolors"
|
92
|
+
}
|
93
|
+
}
|
94
|
+
},
|
95
|
+
{
|
96
|
+
"match": "^(\\s*)((?:[^\\s#\\\\]|\\\\.)+)",
|
97
|
+
"captures": {
|
98
|
+
"1": {
|
99
|
+
"name": "punctuation.whitespace.comment.leading.dircolors"
|
100
|
+
},
|
101
|
+
"2": {
|
102
|
+
"name": "keyword.other.extension.dircolors",
|
103
|
+
"patterns": [
|
104
|
+
{
|
105
|
+
"include": "#escape"
|
106
|
+
}
|
107
|
+
]
|
108
|
+
}
|
109
|
+
}
|
110
|
+
},
|
111
|
+
{
|
112
|
+
"include": "#escape"
|
113
|
+
}
|
114
|
+
],
|
115
|
+
"repository": {
|
116
|
+
"escape": {
|
117
|
+
"patterns": [
|
118
|
+
{
|
119
|
+
"name": "constant.character.escape.caret-notation.dircolors",
|
120
|
+
"match": "\\^[?@A-Za-z\\[\\\\\\]^_]"
|
121
|
+
},
|
122
|
+
{
|
123
|
+
"name": "constant.character.escape.codepoint.hexadecimal.dircolors",
|
124
|
+
"match": "\\\\x[0-9A-Fa-f]{1,3}"
|
125
|
+
},
|
126
|
+
{
|
127
|
+
"name": "constant.character.escape.codepoint.octal.dircolors",
|
128
|
+
"match": "\\\\[0-7]{1,3}"
|
129
|
+
},
|
130
|
+
{
|
131
|
+
"name": "constant.character.escape.dircolors",
|
132
|
+
"match": "(?i)\\\\[abefnrtv?\\_^#]"
|
133
|
+
}
|
134
|
+
]
|
135
|
+
}
|
136
|
+
}
|
137
|
+
}
|
@@ -0,0 +1,135 @@
|
|
1
|
+
{
|
2
|
+
"name": "DirectX 3D File",
|
3
|
+
"scopeName": "source.direct-x",
|
4
|
+
"patterns": [
|
5
|
+
{
|
6
|
+
"include": "#main"
|
7
|
+
}
|
8
|
+
],
|
9
|
+
"repository": {
|
10
|
+
"header": {
|
11
|
+
"name": "meta.signature.header.direct-x",
|
12
|
+
"match": "^\\s*(xof)\\s*(\\d+)\\s*(txt|bin|tzip|bzip)\\s*(.*)",
|
13
|
+
"captures": {
|
14
|
+
"1": {
|
15
|
+
"name": "keyword.control.magic-number.direct-x"
|
16
|
+
},
|
17
|
+
"2": {
|
18
|
+
"name": "constant.numeric.integer.int.version-number.direct-x"
|
19
|
+
},
|
20
|
+
"3": {
|
21
|
+
"name": "storage.type.var.format.direct-x"
|
22
|
+
},
|
23
|
+
"4": {
|
24
|
+
"patterns": [
|
25
|
+
{
|
26
|
+
"include": "etc"
|
27
|
+
}
|
28
|
+
]
|
29
|
+
}
|
30
|
+
}
|
31
|
+
},
|
32
|
+
"keywords": {
|
33
|
+
"name": "keyword.operator.reserved.direct-x",
|
34
|
+
"match": "(?ix) \\b\n(ARRAY|BINARY_RESOURCE|BINARY|CHAR|CSTRING|DOUBLE|DWORD|FLOAT\n|SDWORD|STRING|SWORD|TEMPLATE|UCHAR|ULONGLONG|UNICODE|WORD)\\b"
|
35
|
+
},
|
36
|
+
"main": {
|
37
|
+
"patterns": [
|
38
|
+
{
|
39
|
+
"include": "#header"
|
40
|
+
},
|
41
|
+
{
|
42
|
+
"include": "#template"
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"include": "#uuid"
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"include": "#keywords"
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"include": "#templateTypes"
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"include": "#name"
|
55
|
+
},
|
56
|
+
{
|
57
|
+
"include": "etc#ellipsis"
|
58
|
+
},
|
59
|
+
{
|
60
|
+
"include": "etc#commentHash"
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"include": "etc#commentSlash"
|
64
|
+
},
|
65
|
+
{
|
66
|
+
"include": "etc"
|
67
|
+
}
|
68
|
+
]
|
69
|
+
},
|
70
|
+
"name": {
|
71
|
+
"name": "variable.other.direct-x",
|
72
|
+
"match": "(?!\\d)\\w+"
|
73
|
+
},
|
74
|
+
"template": {
|
75
|
+
"name": "meta.template.direct-x",
|
76
|
+
"begin": "\\b([A-Za-z_]\\w*)\\s+((?!\\d)\\w+)\\s*({)",
|
77
|
+
"end": "}",
|
78
|
+
"patterns": [
|
79
|
+
{
|
80
|
+
"include": "#main"
|
81
|
+
}
|
82
|
+
],
|
83
|
+
"beginCaptures": {
|
84
|
+
"1": {
|
85
|
+
"name": "storage.type.function.template.direct-x"
|
86
|
+
},
|
87
|
+
"2": {
|
88
|
+
"name": "entity.name.function.direct-x"
|
89
|
+
},
|
90
|
+
"3": {
|
91
|
+
"name": "punctuation.section.scope.begin.direct-x"
|
92
|
+
}
|
93
|
+
},
|
94
|
+
"endCaptures": {
|
95
|
+
"0": {
|
96
|
+
"name": "punctuation.section.scope.end.direct-x"
|
97
|
+
}
|
98
|
+
}
|
99
|
+
},
|
100
|
+
"templateTypes": {
|
101
|
+
"name": "storage.type.var.template.direct-x",
|
102
|
+
"match": "(?ix) \\b\n(AnimTicksPerSecond|AnimationKey|AnimationOptions|AnimationSet|Animation|Boolean2d|Boolean|ColorRGBA?|CompressedAnimationSet\n|Coords2d|DeclData|EffectDWord|EffectFloats|EffectInstance|EffectParamDWord|EffectParamFloats|EffectParamString|EffectString\n|FVFData|FaceAdjacency|FloatKeys|FrameTransformMatrix|Frame|Guid|IndexedColor|MaterialWrap|Material|Matrix4x4|MeshFaceWraps\n|MeshFace|MeshMaterialList|MeshNormals|MeshTextureCoords|MeshVertexColors|Mesh|PMAttributeRange|PMInfo|PMVSplitRecord\n|PatchMesh9|PatchMesh|Patch|SkinWeights|Templates|TextureFilename|TimedFloatKeys|Vector|VertexDuplicationIndices\n|VertexElement|XSkinMeshHeader) \\b"
|
103
|
+
},
|
104
|
+
"uuid": {
|
105
|
+
"name": "meta.uuid.direct-x",
|
106
|
+
"match": "(\u003c)([-\\sA-Fa-f0-9]+)(\u003e)",
|
107
|
+
"captures": {
|
108
|
+
"1": {
|
109
|
+
"patterns": [
|
110
|
+
{
|
111
|
+
"include": "etc#bracket"
|
112
|
+
}
|
113
|
+
]
|
114
|
+
},
|
115
|
+
"2": {
|
116
|
+
"patterns": [
|
117
|
+
{
|
118
|
+
"include": "etc#dash"
|
119
|
+
},
|
120
|
+
{
|
121
|
+
"include": "etc#hexNoSign"
|
122
|
+
}
|
123
|
+
]
|
124
|
+
},
|
125
|
+
"3": {
|
126
|
+
"patterns": [
|
127
|
+
{
|
128
|
+
"include": "etc#bracket"
|
129
|
+
}
|
130
|
+
]
|
131
|
+
}
|
132
|
+
}
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
data/grammars/source.ebnf.json
CHANGED
@@ -22,13 +22,46 @@
|
|
22
22
|
}
|
23
23
|
}
|
24
24
|
},
|
25
|
+
"lhs": {
|
26
|
+
"patterns": [
|
27
|
+
{
|
28
|
+
"name": "meta.lhs.ebnf",
|
29
|
+
"match": "(?x)\n(?: \\s++\n| ^|\\G\n| (?= ^|\\G )\n| (?\u003c= ;|\\*\\) )\n)\n\n# Exclude leading whitespace\n\\s*\n\n([A-Za-z][A-Za-z0-9_]*+)",
|
30
|
+
"captures": {
|
31
|
+
"1": {
|
32
|
+
"name": "entity.name.rule.identifier.ebnf"
|
33
|
+
}
|
34
|
+
}
|
35
|
+
},
|
36
|
+
{
|
37
|
+
"name": "meta.lhs.non-standard.ebnf",
|
38
|
+
"contentName": "entity.name.rule.identifier.non-standard.ebnf",
|
39
|
+
"begin": "(?x)\n(?: \\s++\n| ^|\\G\n| (?= ^|\\G )\n| (?\u003c= \\*\\) )\n)\n\n# Exclude leading whitespace\n\\s*\n\n# Check for at least one “invalid” character\n(?=\n\t# Starts with a digit\n\t[0-9]\n\t|\n\t\n\t# Contains at least one non-“word” character\n\t[A-Za-z0-9_]* # Skip any legal characters\n\t(?: [^:;=()] # Don't swallow symbols for comments, terminators, or assignments\n\t| \\((?!\\*) # Permit open brackets if they don't introduce a comment\n\t)\n)",
|
40
|
+
"end": "(?x)\n# Exclude trailing whitespace\n\\s*\n\n# Stop before an...\n(?= :*= # Assignment operator separating `#lhs` from `#rhs`\n| ; # Unexpected terminator\n| \\(\\* # Embedded comment\n)",
|
41
|
+
"patterns": [
|
42
|
+
{
|
43
|
+
"include": "#comment"
|
44
|
+
}
|
45
|
+
]
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"include": "#comment"
|
49
|
+
}
|
50
|
+
]
|
51
|
+
},
|
25
52
|
"main": {
|
26
53
|
"patterns": [
|
27
54
|
{
|
28
55
|
"include": "#comment"
|
29
56
|
},
|
30
57
|
{
|
31
|
-
"include": "#
|
58
|
+
"include": "#semicolon"
|
59
|
+
},
|
60
|
+
{
|
61
|
+
"include": "#lhs"
|
62
|
+
},
|
63
|
+
{
|
64
|
+
"include": "#rhs"
|
32
65
|
},
|
33
66
|
{
|
34
67
|
"include": "#special"
|
@@ -36,6 +69,27 @@
|
|
36
69
|
]
|
37
70
|
},
|
38
71
|
"rhs": {
|
72
|
+
"name": "meta.rhs.ebnf",
|
73
|
+
"begin": "(::=)|(:=)|(=)",
|
74
|
+
"end": "(?=;|^\\s*(?:\u003c?[A-Za-z][A-Za-z0-9_]*\u003e?\\s*)?:*=)",
|
75
|
+
"patterns": [
|
76
|
+
{
|
77
|
+
"include": "#rhs-innards"
|
78
|
+
}
|
79
|
+
],
|
80
|
+
"beginCaptures": {
|
81
|
+
"1": {
|
82
|
+
"name": "keyword.operator.assignment.non-standard.double-colon.ebnf"
|
83
|
+
},
|
84
|
+
"2": {
|
85
|
+
"name": "keyword.operator.assignment.non-standard.single-colon.ebnf"
|
86
|
+
},
|
87
|
+
"3": {
|
88
|
+
"name": "keyword.operator.assignment.ebnf"
|
89
|
+
}
|
90
|
+
}
|
91
|
+
},
|
92
|
+
"rhs-innards": {
|
39
93
|
"patterns": [
|
40
94
|
{
|
41
95
|
"name": "punctuation.delimiter.comma.ebnf",
|
@@ -92,7 +146,7 @@
|
|
92
146
|
"end": "\\]",
|
93
147
|
"patterns": [
|
94
148
|
{
|
95
|
-
"include": "#rhs"
|
149
|
+
"include": "#rhs-innards"
|
96
150
|
}
|
97
151
|
],
|
98
152
|
"beginCaptures": {
|
@@ -112,7 +166,7 @@
|
|
112
166
|
"end": "}",
|
113
167
|
"patterns": [
|
114
168
|
{
|
115
|
-
"include": "#rhs"
|
169
|
+
"include": "#rhs-innards"
|
116
170
|
}
|
117
171
|
],
|
118
172
|
"beginCaptures": {
|
@@ -132,7 +186,7 @@
|
|
132
186
|
"end": "\\)",
|
133
187
|
"patterns": [
|
134
188
|
{
|
135
|
-
"include": "#rhs"
|
189
|
+
"include": "#rhs-innards"
|
136
190
|
}
|
137
191
|
],
|
138
192
|
"beginCaptures": {
|
@@ -152,45 +206,19 @@
|
|
152
206
|
{
|
153
207
|
"name": "variable.parameter.argument.identifier.reference.ebnf",
|
154
208
|
"match": "[A-Za-z][A-Za-z0-9_]*"
|
155
|
-
}
|
156
|
-
]
|
157
|
-
},
|
158
|
-
"rule": {
|
159
|
-
"begin": "(?=[A-Za-z][A-Za-z0-9_]*)",
|
160
|
-
"end": ";",
|
161
|
-
"patterns": [
|
209
|
+
},
|
162
210
|
{
|
163
|
-
"name": "
|
164
|
-
"
|
165
|
-
"end": "(?=[=;])",
|
166
|
-
"patterns": [
|
167
|
-
{
|
168
|
-
"name": "entity.name.rule.identifier.ebnf",
|
169
|
-
"match": "[A-Za-z][A-Za-z0-9_]*"
|
170
|
-
}
|
171
|
-
]
|
211
|
+
"name": "keyword.operator.logical.not.negation.non-standard.ebnf",
|
212
|
+
"match": "!"
|
172
213
|
},
|
173
214
|
{
|
174
|
-
"
|
175
|
-
"begin": "=",
|
176
|
-
"end": "(?=;)",
|
177
|
-
"patterns": [
|
178
|
-
{
|
179
|
-
"include": "#rhs"
|
180
|
-
}
|
181
|
-
],
|
182
|
-
"beginCaptures": {
|
183
|
-
"0": {
|
184
|
-
"name": "keyword.operator.assignment.ebnf"
|
185
|
-
}
|
186
|
-
}
|
215
|
+
"include": "source.lex.regexp#quantifier"
|
187
216
|
}
|
188
|
-
]
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
}
|
217
|
+
]
|
218
|
+
},
|
219
|
+
"semicolon": {
|
220
|
+
"name": "punctuation.terminator.statement.ebnf",
|
221
|
+
"match": ";"
|
194
222
|
},
|
195
223
|
"special": {
|
196
224
|
"name": "meta.pragma.directive.special.ebnf",
|