github-linguist 4.8.8 → 4.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/grammars/hint.haskell.json +1123 -0
- data/grammars/hint.message.haskell.json +1147 -0
- data/grammars/hint.type.haskell.json +1120 -0
- data/grammars/source.asn.json +59 -0
- data/grammars/source.blitzmax.json +0 -2
- data/grammars/source.bsl.json +372 -0
- data/grammars/source.c++.json +67 -0
- data/grammars/source.c2hs.json +27 -0
- data/grammars/source.cabal.json +66 -0
- data/grammars/source.coffee.json +6 -5
- data/grammars/source.crystal.json +0 -11
- data/grammars/source.csound-score.json +3 -3
- data/grammars/source.csound.json +51 -15
- data/grammars/source.css.json +1 -1
- data/grammars/source.css.less.json +9 -5
- data/grammars/source.cython.json +42 -193
- data/grammars/source.d.json +7 -7
- data/grammars/source.elixir.json +2 -2
- data/grammars/source.forth.json +0 -2
- data/grammars/source.graphql.json +8 -2
- data/grammars/source.haskell.json +1089 -323
- data/grammars/source.hsc2hs.json +12 -0
- data/grammars/source.ideal.json +356 -0
- data/grammars/source.java.json +3 -0
- data/grammars/source.js.json +262 -131
- data/grammars/source.js.jsx.json +848 -256
- data/grammars/source.lsl.json +51 -103
- data/grammars/source.objc.json +1 -1
- data/grammars/source.parrot.pir.json +49 -15
- data/grammars/source.pic.json +868 -0
- data/grammars/source.purescript.json +114 -90
- data/grammars/source.python.json +11 -9
- data/grammars/source.regexp.babel.json +1 -1
- data/grammars/source.renpy.json +7 -7
- data/grammars/source.rexx.json +59 -0
- data/grammars/source.sas.json +8 -75
- data/grammars/source.sdbl.json +97 -0
- data/grammars/source.shell.json +1 -0
- data/grammars/source.smali.json +2 -2
- data/grammars/source.sqf.json +11 -11
- data/grammars/source.stan.json +60 -25
- data/grammars/source.tla.json +18 -6
- data/grammars/source.toc.json +5 -1
- data/grammars/source.ts.json +134 -31
- data/grammars/source.tsx.json +134 -31
- data/grammars/source.vhdl.json +150 -117
- data/grammars/source.viml.json +4 -4
- data/grammars/source.xquery.json +23 -5
- data/grammars/source.yaml.json +35 -19
- data/grammars/text.html.handlebars.json +2 -2
- data/grammars/text.html.php.blade.json +1 -1
- data/grammars/text.html.twig.json +1 -4
- data/grammars/text.html.vue.json +41 -1
- data/grammars/text.restructuredtext.json +56 -1
- data/grammars/text.roff.json +5089 -0
- data/grammars/text.runoff.json +321 -0
- data/grammars/text.slim.json +126 -105
- data/grammars/text.tex.latex.haskell.json +1335 -21
- data/lib/linguist/heuristics.rb +8 -0
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +58 -3
- data/lib/linguist/samples.json +5257 -76
- data/lib/linguist/version.rb +1 -1
- metadata +16 -4
- data/grammars/source.man.json +0 -53
- data/grammars/text.groff.json +0 -113
data/grammars/source.tsx.json
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
]
|
|
39
39
|
},
|
|
40
40
|
"assignment-operator": {
|
|
41
|
-
"match": "
|
|
41
|
+
"match": "<<=|>>>=|>>=|\\*=|(?<!\\()/=|%=|\\+=|\\-=|&=|\\^=",
|
|
42
42
|
"name": "keyword.operator.assignment.tsx"
|
|
43
43
|
},
|
|
44
44
|
"await-modifier": {
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
"name": "comment.line.tsx"
|
|
117
117
|
},
|
|
118
118
|
"control-statement": {
|
|
119
|
-
"match": "(?<!\\.)\\b(break|catch|continue|debugger|declare|do|else|finally|for|if|return|switch|throw|try|while|with|super|case|default)\\b",
|
|
119
|
+
"match": "(?<!\\.)\\b(break|catch|continue|debugger|declare|do|else|finally|for|if|return|switch|throw|try|while|with|super|case|default|yield)\\b",
|
|
120
120
|
"name": "keyword.control.tsx"
|
|
121
121
|
},
|
|
122
122
|
"decl-block": {
|
|
@@ -213,9 +213,15 @@
|
|
|
213
213
|
{
|
|
214
214
|
"include": "#block"
|
|
215
215
|
},
|
|
216
|
+
{
|
|
217
|
+
"include": "#import-operator"
|
|
218
|
+
},
|
|
216
219
|
{
|
|
217
220
|
"include": "#expression-operator"
|
|
218
221
|
},
|
|
222
|
+
{
|
|
223
|
+
"include": "#imply-operator"
|
|
224
|
+
},
|
|
219
225
|
{
|
|
220
226
|
"include": "#relational-operator"
|
|
221
227
|
},
|
|
@@ -231,6 +237,9 @@
|
|
|
231
237
|
{
|
|
232
238
|
"include": "#storage-keyword"
|
|
233
239
|
},
|
|
240
|
+
{
|
|
241
|
+
"include": "#type-primitive"
|
|
242
|
+
},
|
|
234
243
|
{
|
|
235
244
|
"include": "#function-call"
|
|
236
245
|
},
|
|
@@ -243,8 +252,8 @@
|
|
|
243
252
|
]
|
|
244
253
|
},
|
|
245
254
|
"expression-operator": {
|
|
246
|
-
"match": "
|
|
247
|
-
"name": "keyword.
|
|
255
|
+
"match": "\\b(delete|in|instanceof|new|typeof|as|is|of)\\b",
|
|
256
|
+
"name": "keyword.others.tsx"
|
|
248
257
|
},
|
|
249
258
|
"field-declaration": {
|
|
250
259
|
"begin": "(?<!\\()\\s*((?:\\b[a-zA-Z_$][\\w$]*)|(?:\\'[^']*\\')|(?:\\\"[^\"]*\\\"))\\s*(\\?\\s*)?(?=(=|:))",
|
|
@@ -253,7 +262,7 @@
|
|
|
253
262
|
"name": "variable.tsx"
|
|
254
263
|
},
|
|
255
264
|
"2": {
|
|
256
|
-
"name": "keyword.
|
|
265
|
+
"name": "keyword.others.tsx"
|
|
257
266
|
}
|
|
258
267
|
},
|
|
259
268
|
"end": "(?=\\}|;|,|$)|(?<=\\})",
|
|
@@ -270,7 +279,7 @@
|
|
|
270
279
|
"name": "storage.type.tsx"
|
|
271
280
|
},
|
|
272
281
|
"3": {
|
|
273
|
-
"name": "keyword.
|
|
282
|
+
"name": "keyword.others.tsx"
|
|
274
283
|
}
|
|
275
284
|
},
|
|
276
285
|
"match": "(?<=\\()\\s*\\b(var|let|const)\\s+([a-zA-Z_$][\\w$]*)\\s+(in|of)\\b",
|
|
@@ -294,7 +303,7 @@
|
|
|
294
303
|
"begin": "\\b(?:(export)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s+([a-zA-Z_$][\\w$]*))?\\s*",
|
|
295
304
|
"beginCaptures": {
|
|
296
305
|
"1": {
|
|
297
|
-
"name": "storage.
|
|
306
|
+
"name": "storage.type.tsx"
|
|
298
307
|
},
|
|
299
308
|
"2": {
|
|
300
309
|
"name": "storage.modifier.tsx"
|
|
@@ -332,7 +341,7 @@
|
|
|
332
341
|
"function-overload-declaration": {
|
|
333
342
|
"captures": {
|
|
334
343
|
"1": {
|
|
335
|
-
"name": "storage.
|
|
344
|
+
"name": "storage.type.tsx"
|
|
336
345
|
},
|
|
337
346
|
"2": {
|
|
338
347
|
"name": "storage.type.function.tsx"
|
|
@@ -373,6 +382,14 @@
|
|
|
373
382
|
}
|
|
374
383
|
]
|
|
375
384
|
},
|
|
385
|
+
"imply-operator": {
|
|
386
|
+
"match": "=>",
|
|
387
|
+
"name": "keyword.operator.tsx"
|
|
388
|
+
},
|
|
389
|
+
"import-operator": {
|
|
390
|
+
"match": "\\b(import|from)\\b",
|
|
391
|
+
"name": "keyword.control.import.include.tsx"
|
|
392
|
+
},
|
|
376
393
|
"indexer-declaration": {
|
|
377
394
|
"begin": "\\[",
|
|
378
395
|
"beginCaptures": {
|
|
@@ -386,7 +403,7 @@
|
|
|
386
403
|
"name": "meta.brace.square.tsx"
|
|
387
404
|
},
|
|
388
405
|
"2": {
|
|
389
|
-
"name": "keyword.
|
|
406
|
+
"name": "keyword.others.tsx"
|
|
390
407
|
}
|
|
391
408
|
},
|
|
392
409
|
"name": "meta.indexer.declaration.tsx",
|
|
@@ -688,11 +705,11 @@
|
|
|
688
705
|
]
|
|
689
706
|
},
|
|
690
707
|
"logic-operator": {
|
|
691
|
-
"match": "
|
|
708
|
+
"match": "\\!|&&|&|~|\\^|\\|\\||\\|",
|
|
692
709
|
"name": "keyword.operator.arithmetic.tsx"
|
|
693
710
|
},
|
|
694
711
|
"method-declaration": {
|
|
695
|
-
"begin": "\\b(?:(abstract)\\s+)?\\b(?:(public|private|protected)\\s+)?\\b(?:(async)\\s+)?(?:(get|set)\\s+)?(?:(new)|(?:([a-zA-Z_$][\\.\\w$]*)\\s*(\\??)))?\\s*(?=\\(|\\<)",
|
|
712
|
+
"begin": "\\b(?:(abstract)\\s+)?\\b(?:(public|private|protected)\\s+)?\\b(?:(async)\\s+)?(?:(get|set)\\s+)?(?:(new)|(?:\\b(constructor)\\b)|(?:([a-zA-Z_$][\\.\\w$]*)\\s*(\\??)))?\\s*(?=\\(|\\<)",
|
|
696
713
|
"beginCaptures": {
|
|
697
714
|
"1": {
|
|
698
715
|
"name": "storage.modifier.tsx"
|
|
@@ -710,9 +727,12 @@
|
|
|
710
727
|
"name": "keyword.operator.tsx"
|
|
711
728
|
},
|
|
712
729
|
"6": {
|
|
713
|
-
"name": "
|
|
730
|
+
"name": "storage.type.tsx"
|
|
714
731
|
},
|
|
715
732
|
"7": {
|
|
733
|
+
"name": "entity.name.function.tsx"
|
|
734
|
+
},
|
|
735
|
+
"8": {
|
|
716
736
|
"name": "keyword.operator.tsx"
|
|
717
737
|
}
|
|
718
738
|
},
|
|
@@ -757,20 +777,23 @@
|
|
|
757
777
|
"name": "keyword.operator.tsx"
|
|
758
778
|
},
|
|
759
779
|
"6": {
|
|
760
|
-
"name": "
|
|
780
|
+
"name": "storage.type.tsx"
|
|
761
781
|
},
|
|
762
782
|
"7": {
|
|
783
|
+
"name": "entity.name.function.tsx"
|
|
784
|
+
},
|
|
785
|
+
"8": {
|
|
763
786
|
"name": "keyword.operator.tsx"
|
|
764
787
|
}
|
|
765
788
|
},
|
|
766
|
-
"match": "\\b(?:(abstract)\\s+)?\\b(?:(public|private|protected)\\s+)?\\b(?:(async)\\s+)?(?:(get|set)\\s+)?(?:(new)|(?:([a-zA-Z_$][\\.\\w$]*)\\s*(\\??)))?\\s*(?=\\(|\\<)",
|
|
789
|
+
"match": "\\b(?:(abstract)\\s+)?\\b(?:(public|private|protected)\\s+)?\\b(?:(async)\\s+)?(?:(get|set)\\s+)?(?:(new)|(?:\\b(constructor)\\b)|(?:([a-zA-Z_$][\\.\\w$]*)\\s*(\\??)))?\\s*(?=\\(|\\<)",
|
|
767
790
|
"name": "meta.method.overload.declaration.tsx"
|
|
768
791
|
},
|
|
769
792
|
"new-expr": {
|
|
770
793
|
"begin": "\\b(new)\\b",
|
|
771
794
|
"beginCaptures": {
|
|
772
795
|
"1": {
|
|
773
|
-
"name": "keyword.
|
|
796
|
+
"name": "keyword.others.tsx"
|
|
774
797
|
}
|
|
775
798
|
},
|
|
776
799
|
"end": "(?=[(;]|$)",
|
|
@@ -789,7 +812,7 @@
|
|
|
789
812
|
"name": "constant.language.null.tsx"
|
|
790
813
|
},
|
|
791
814
|
"numeric-literal": {
|
|
792
|
-
"match": "\\b(?<=[^$])((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b",
|
|
815
|
+
"match": "\\b(?<=[^$])((0(x|X)[0-9a-fA-F]+)|(0(o|O)[0-7]+)|(0(b|B)(0|1)+)|(([0-9]+(\\.[0-9]+)?))([eE]([+-]?)[0-9]+(\\.[0-9]+)?)?)\\b",
|
|
793
816
|
"name": "constant.numeric.tsx"
|
|
794
817
|
},
|
|
795
818
|
"object-body": {
|
|
@@ -843,7 +866,7 @@
|
|
|
843
866
|
"begin": "\\b(?:(export)\\s+)?\\b(?:(abstract)\\s+)?\\b(?<!\\.)(class|interface)\\b",
|
|
844
867
|
"beginCaptures": {
|
|
845
868
|
"1": {
|
|
846
|
-
"name": "storage.
|
|
869
|
+
"name": "storage.type.tsx"
|
|
847
870
|
},
|
|
848
871
|
"2": {
|
|
849
872
|
"name": "storage.modifier.tsx"
|
|
@@ -909,10 +932,10 @@
|
|
|
909
932
|
"object-heritage-type": {
|
|
910
933
|
"captures": {
|
|
911
934
|
"1": {
|
|
912
|
-
"name": "
|
|
935
|
+
"name": "support.type.tsx"
|
|
913
936
|
}
|
|
914
937
|
},
|
|
915
|
-
"match": "(?:\\
|
|
938
|
+
"match": "(?:\\b([a-zA-Z_$][\\w$]*)\\b)",
|
|
916
939
|
"name": "meta.object.heritage.parent.tsx"
|
|
917
940
|
},
|
|
918
941
|
"object-member": {
|
|
@@ -940,13 +963,13 @@
|
|
|
940
963
|
"name": "storage.modifier.tsx"
|
|
941
964
|
},
|
|
942
965
|
"2": {
|
|
943
|
-
"name": "keyword.
|
|
966
|
+
"name": "keyword.others.tsx"
|
|
944
967
|
},
|
|
945
968
|
"3": {
|
|
946
969
|
"name": "variable.parameter.tsx"
|
|
947
970
|
},
|
|
948
971
|
"4": {
|
|
949
|
-
"name": "keyword.
|
|
972
|
+
"name": "keyword.others.tsx"
|
|
950
973
|
}
|
|
951
974
|
},
|
|
952
975
|
"match": "(?:\\s*\\b(public|private|protected)\\b\\s+)?(\\.\\.\\.)?\\s*([a-zA-Z_$][\\w$]*)\\s*(\\??)",
|
|
@@ -1011,7 +1034,7 @@
|
|
|
1011
1034
|
]
|
|
1012
1035
|
},
|
|
1013
1036
|
"relational-operator": {
|
|
1014
|
-
"match": "
|
|
1037
|
+
"match": "===|!==|==|!=|<=|>=|<>|=|<|>",
|
|
1015
1038
|
"name": "keyword.operator.comparison.tsx"
|
|
1016
1039
|
},
|
|
1017
1040
|
"return-type": {
|
|
@@ -1029,7 +1052,7 @@
|
|
|
1029
1052
|
"name": "keyword.other.tsx"
|
|
1030
1053
|
},
|
|
1031
1054
|
"storage-keyword": {
|
|
1032
|
-
"match": "\\b(
|
|
1055
|
+
"match": "\\b(var|let|function|const|module|namespace|void|export)\\b",
|
|
1033
1056
|
"name": "storage.type.tsx"
|
|
1034
1057
|
},
|
|
1035
1058
|
"string": {
|
|
@@ -1061,7 +1084,7 @@
|
|
|
1061
1084
|
"begin": "\\b(switch)\\b\\s*\\(",
|
|
1062
1085
|
"beginCaptures": {
|
|
1063
1086
|
"1": {
|
|
1064
|
-
"name": "keyword.
|
|
1087
|
+
"name": "keyword.control.tsx"
|
|
1065
1088
|
}
|
|
1066
1089
|
},
|
|
1067
1090
|
"end": "\\)",
|
|
@@ -1122,13 +1145,13 @@
|
|
|
1122
1145
|
"begin": "\\$\\{",
|
|
1123
1146
|
"beginCaptures": {
|
|
1124
1147
|
"0": {
|
|
1125
|
-
"name": "keyword.
|
|
1148
|
+
"name": "keyword.others.tsx"
|
|
1126
1149
|
}
|
|
1127
1150
|
},
|
|
1128
1151
|
"end": "\\}",
|
|
1129
1152
|
"endCaptures": {
|
|
1130
1153
|
"0": {
|
|
1131
|
-
"name": "keyword.
|
|
1154
|
+
"name": "keyword.others.tsx"
|
|
1132
1155
|
}
|
|
1133
1156
|
},
|
|
1134
1157
|
"name": "template.element.tsx",
|
|
@@ -1138,6 +1161,80 @@
|
|
|
1138
1161
|
}
|
|
1139
1162
|
]
|
|
1140
1163
|
},
|
|
1164
|
+
"ternary-expression": {
|
|
1165
|
+
"begin": "(?=\\?)",
|
|
1166
|
+
"end": "(?=$|[;,])",
|
|
1167
|
+
"patterns": [
|
|
1168
|
+
{
|
|
1169
|
+
"include": "#ternary-operator"
|
|
1170
|
+
},
|
|
1171
|
+
{
|
|
1172
|
+
"include": "#ternary-expression-type"
|
|
1173
|
+
}
|
|
1174
|
+
]
|
|
1175
|
+
},
|
|
1176
|
+
"ternary-expression-type": {
|
|
1177
|
+
"name": "meta.expression.tsx",
|
|
1178
|
+
"patterns": [
|
|
1179
|
+
{
|
|
1180
|
+
"include": "#string"
|
|
1181
|
+
},
|
|
1182
|
+
{
|
|
1183
|
+
"include": "#regex"
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
"include": "#template"
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
"include": "#comment"
|
|
1190
|
+
},
|
|
1191
|
+
{
|
|
1192
|
+
"include": "#literal"
|
|
1193
|
+
},
|
|
1194
|
+
{
|
|
1195
|
+
"include": "#paren-expression"
|
|
1196
|
+
},
|
|
1197
|
+
{
|
|
1198
|
+
"include": "#ternary-expression"
|
|
1199
|
+
},
|
|
1200
|
+
{
|
|
1201
|
+
"include": "#import-operator"
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"include": "#expression-operator"
|
|
1205
|
+
},
|
|
1206
|
+
{
|
|
1207
|
+
"include": "#imply-operator"
|
|
1208
|
+
},
|
|
1209
|
+
{
|
|
1210
|
+
"include": "#relational-operator"
|
|
1211
|
+
},
|
|
1212
|
+
{
|
|
1213
|
+
"include": "#arithmetic-operator"
|
|
1214
|
+
},
|
|
1215
|
+
{
|
|
1216
|
+
"include": "#logic-operator"
|
|
1217
|
+
},
|
|
1218
|
+
{
|
|
1219
|
+
"include": "#assignment-operator"
|
|
1220
|
+
},
|
|
1221
|
+
{
|
|
1222
|
+
"include": "#type-primitive"
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
"include": "#function-call"
|
|
1226
|
+
}
|
|
1227
|
+
]
|
|
1228
|
+
},
|
|
1229
|
+
"ternary-operator": {
|
|
1230
|
+
"begin": "(\\?)",
|
|
1231
|
+
"end": "(:)",
|
|
1232
|
+
"patterns": [
|
|
1233
|
+
{
|
|
1234
|
+
"include": "#ternary-expression-type"
|
|
1235
|
+
}
|
|
1236
|
+
]
|
|
1237
|
+
},
|
|
1141
1238
|
"this-literal": {
|
|
1142
1239
|
"match": "\\b(this)\\b",
|
|
1143
1240
|
"name": "constant.language.this.tsx"
|
|
@@ -1176,6 +1273,9 @@
|
|
|
1176
1273
|
"end": "(?=$|[,);\\}\\]]|//)|(?==[^>])|(?<=[\\}>\\]\\)]|[a-zA-Z_$])\\s*(?=\\{)",
|
|
1177
1274
|
"name": "meta.type.annotation.tsx",
|
|
1178
1275
|
"patterns": [
|
|
1276
|
+
{
|
|
1277
|
+
"include": "#expression-operator"
|
|
1278
|
+
},
|
|
1179
1279
|
{
|
|
1180
1280
|
"include": "#type"
|
|
1181
1281
|
},
|
|
@@ -1194,7 +1294,7 @@
|
|
|
1194
1294
|
"name": "keyword.other.tsx"
|
|
1195
1295
|
},
|
|
1196
1296
|
"2": {
|
|
1197
|
-
"name": "
|
|
1297
|
+
"name": "entity.name.class.tsx"
|
|
1198
1298
|
}
|
|
1199
1299
|
},
|
|
1200
1300
|
"end": "(?=$|[,);>]|var|type|function|class|interface)",
|
|
@@ -1208,7 +1308,7 @@
|
|
|
1208
1308
|
},
|
|
1209
1309
|
{
|
|
1210
1310
|
"match": "=\\s*",
|
|
1211
|
-
"name": "keyword.operator.tsx"
|
|
1311
|
+
"name": "keyword.operator.comparison.tsx"
|
|
1212
1312
|
}
|
|
1213
1313
|
]
|
|
1214
1314
|
},
|
|
@@ -1326,7 +1426,7 @@
|
|
|
1326
1426
|
"type-primitive": {
|
|
1327
1427
|
"captures": {
|
|
1328
1428
|
"1": {
|
|
1329
|
-
"name": "
|
|
1429
|
+
"name": "support.type.tsx"
|
|
1330
1430
|
}
|
|
1331
1431
|
},
|
|
1332
1432
|
"match": "\\b(string|number|boolean|symbol|any|void)\\b",
|
|
@@ -1360,7 +1460,7 @@
|
|
|
1360
1460
|
"name": "constant.language.tsx"
|
|
1361
1461
|
},
|
|
1362
1462
|
"var-expr": {
|
|
1363
|
-
"begin": "(?<!\\()\\s*\\b(var|let|const(?!\\s+enum)\\b
|
|
1463
|
+
"begin": "(?<!\\()\\s*\\b(var|let|const(?!\\s+enum))\\b",
|
|
1364
1464
|
"beginCaptures": {
|
|
1365
1465
|
"1": {
|
|
1366
1466
|
"name": "storage.type.tsx"
|
|
@@ -1387,6 +1487,9 @@
|
|
|
1387
1487
|
"end": "(?=$|[;,])",
|
|
1388
1488
|
"name": "meta.var-single-variable.expr.tsx",
|
|
1389
1489
|
"patterns": [
|
|
1490
|
+
{
|
|
1491
|
+
"include": "#ternary-expression"
|
|
1492
|
+
},
|
|
1390
1493
|
{
|
|
1391
1494
|
"include": "#type-annotation"
|
|
1392
1495
|
},
|
|
@@ -1405,7 +1508,7 @@
|
|
|
1405
1508
|
"begin": "(=)",
|
|
1406
1509
|
"beginCaptures": {
|
|
1407
1510
|
"1": {
|
|
1408
|
-
"name": "keyword.operator.tsx"
|
|
1511
|
+
"name": "keyword.operator.comparison.tsx"
|
|
1409
1512
|
}
|
|
1410
1513
|
},
|
|
1411
1514
|
"end": "(?=$|[,);=])",
|
data/grammars/source.vhdl.json
CHANGED
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
"vhdl",
|
|
6
6
|
"vho"
|
|
7
7
|
],
|
|
8
|
-
"foldingStartMarker": "(?x)\r\n\t\t# From the start of the line make sure we are not going into a comment ...\r\n\t\t^(\r\n\t\t\t([^-]-?(?!-))*?\r\n\t\t\t\t(\r\n\t\t\t\t# Check for \"keyword ... is\"\r\n\t\t\t\t (\\b(?i:architecture|case|entity|function|package|procedure)\\b(.+?)(?i:\\bis)\\b)\r\n\r\n\t\t\t\t# Check for if statements\r\n\t\t\t\t|(\\b(?i:if)\\b(.+?)(?i:generate|then)\\b)\r\n\r\n\t\t\t\t# Check for and while statements\r\n\t\t\t\t|(\\b(?i:for|while)(.+?)(?i:loop|generate)\\b)\r\n\r\n\t\t\t\t# Check for keywords that do not require an is after it\r\n\t\t\t\t|(\\b(?i:component|process|record)\\b[^;]*?$)\r\n\r\n\t\t\t\t# From the beginning of the line, check for instantiation maps\r\n\t\t\t\t|(^\\s*\\b(?i:port|generic)\\b(?i:\\s+map\\b)?\\s*\\()\r\n\t\t\t)\r\n\t\t)\r\n\t",
|
|
9
|
-
"foldingStopMarker": "(?x)\r\n\t\t# From the start of the line ...\r\n\t\t^(\r\n\t\t\t(\r\n\t\t\t\t(\r\n\t\t\t\t\t# Make sure we are not going into a comment ...\r\n\t\t\t\t\t([^-]-?(?!-))*?\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t# The word end to the end of the line\r\n\t\t\t \t\t\t\t(?i:\\bend\\b).*$\\n?\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\r\n\t\t\t\t# ... a close paren followed by an optional semicolon as the only thing on the line\r\n\t\t\t |(\\s*?\\)\\s*?;?\\s*?$\\n?\r\n\t\t\t)\r\n\t\t)\r\n\t",
|
|
10
8
|
"keyEquivalent": "^~V",
|
|
11
9
|
"name": "VHDL",
|
|
12
10
|
"patterns": [
|
|
@@ -21,10 +19,10 @@
|
|
|
21
19
|
"architecture_pattern": {
|
|
22
20
|
"patterns": [
|
|
23
21
|
{
|
|
24
|
-
"begin": "(?x)\
|
|
22
|
+
"begin": "(?x)\n\n\t\t\t\t\t\t# The word architecture $1\n\t\t\t\t\t\t\\b((?i:architecture))\\s+\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Followed up by a valid $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-z][a-zA-z0-9_]*)|(.+))(?=\\s)\\s+\n\n\t\t\t\t\t\t# The word of $5\n\t\t\t\t\t\t((?i:of))\\s+\n\n\t\t\t\t\t\t# Followed by a valid $7 or invalid identifier $8\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*(?i:is))\\b\n\t\t\t\t\t",
|
|
25
23
|
"beginCaptures": {
|
|
26
24
|
"1": {
|
|
27
|
-
"name": "
|
|
25
|
+
"name": "storage.type.architecture.vhdl"
|
|
28
26
|
},
|
|
29
27
|
"3": {
|
|
30
28
|
"name": "entity.name.type.architecture.begin.vhdl"
|
|
@@ -33,7 +31,7 @@
|
|
|
33
31
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
34
32
|
},
|
|
35
33
|
"5": {
|
|
36
|
-
"name": "keyword.
|
|
34
|
+
"name": "keyword.control.of.vhdl"
|
|
37
35
|
},
|
|
38
36
|
"7": {
|
|
39
37
|
"name": "entity.name.type.entity.reference.vhdl"
|
|
@@ -42,13 +40,13 @@
|
|
|
42
40
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
43
41
|
}
|
|
44
42
|
},
|
|
45
|
-
"end": "(?x)\
|
|
43
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# Optional word architecture $3\n\t\t\t\t\t\t(\\s+((?i:architecture)))?\n\n\t\t\t\t\t\t# Optional same identifier $6 or illegal identifier $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t# This will cause the previous to capture until just before the ; or $\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
46
44
|
"endCaptures": {
|
|
47
45
|
"1": {
|
|
48
|
-
"name": "keyword.
|
|
46
|
+
"name": "keyword.control.end.vhdl"
|
|
49
47
|
},
|
|
50
48
|
"3": {
|
|
51
|
-
"name": "
|
|
49
|
+
"name": "storage.type.architecture.vhdl"
|
|
52
50
|
},
|
|
53
51
|
"6": {
|
|
54
52
|
"name": "entity.name.type.architecture.end.vhdl"
|
|
@@ -99,16 +97,16 @@
|
|
|
99
97
|
"attribute_list": {
|
|
100
98
|
"patterns": [
|
|
101
99
|
{
|
|
102
|
-
"begin": "
|
|
100
|
+
"begin": "'\\(",
|
|
103
101
|
"beginCaptures": {
|
|
104
102
|
"0": {
|
|
105
|
-
"name": "punctuation.vhdl"
|
|
103
|
+
"name": "punctuation.definition.attribute_list.begin.vhdl"
|
|
106
104
|
}
|
|
107
105
|
},
|
|
108
106
|
"end": "\\)",
|
|
109
107
|
"endCaptures": {
|
|
110
108
|
"0": {
|
|
111
|
-
"name": "punctuation.vhdl"
|
|
109
|
+
"name": "punctuation.definition.attribute_list.end.vhdl"
|
|
112
110
|
}
|
|
113
111
|
},
|
|
114
112
|
"name": "meta.block.attribute_list",
|
|
@@ -142,7 +140,7 @@
|
|
|
142
140
|
"case_pattern": {
|
|
143
141
|
"patterns": [
|
|
144
142
|
{
|
|
145
|
-
"begin": "(?x)\
|
|
143
|
+
"begin": "(?x)\n\t\t\t\t\t\t# Beginning of line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Optional identifier ... $3 or invalid identifier $4\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z0-9_]*)\n\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\\s*:\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The word case $5\n\t\t\t\t\t\t\\b((?i:case))\\b\n\t\t\t\t\t",
|
|
146
144
|
"beginCaptures": {
|
|
147
145
|
"3": {
|
|
148
146
|
"name": "entity.name.tag.case.begin.vhdl"
|
|
@@ -151,16 +149,16 @@
|
|
|
151
149
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
152
150
|
},
|
|
153
151
|
"5": {
|
|
154
|
-
"name": "keyword.
|
|
152
|
+
"name": "keyword.control.case.vhdl"
|
|
155
153
|
}
|
|
156
154
|
},
|
|
157
|
-
"end": "(?x)\
|
|
155
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s*\n\n\t\t\t\t\t\t# The word case $4 or invalid word $5\n\t\t\t\t\t\t(\\s+(((?i:case))|(.*?)))\n\n\t\t\t\t\t\t# Optional identifier from before $8 or illegal $9\n\t\t\t\t\t\t(\\s+((\\2)|(.*?)))?\n\n\t\t\t\t\t\t# Ending with a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
158
156
|
"endCaptures": {
|
|
159
157
|
"1": {
|
|
160
|
-
"name": "keyword.
|
|
158
|
+
"name": "keyword.control.end.vhdl"
|
|
161
159
|
},
|
|
162
160
|
"4": {
|
|
163
|
-
"name": "keyword.
|
|
161
|
+
"name": "keyword.control.case.vhdl"
|
|
164
162
|
},
|
|
165
163
|
"5": {
|
|
166
164
|
"name": "invalid.illegal.case.required.vhdl"
|
|
@@ -206,21 +204,38 @@
|
|
|
206
204
|
"comments": {
|
|
207
205
|
"patterns": [
|
|
208
206
|
{
|
|
209
|
-
"
|
|
210
|
-
"
|
|
207
|
+
"begin": "(^[ \\t]+)?(?=--)",
|
|
208
|
+
"beginCaptures": {
|
|
209
|
+
"1": {
|
|
210
|
+
"name": "punctuation.whitespace.comment.leading.vhdl"
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"end": "(?!\\G)",
|
|
214
|
+
"patterns": [
|
|
215
|
+
{
|
|
216
|
+
"begin": "--",
|
|
217
|
+
"beginCaptures": {
|
|
218
|
+
"0": {
|
|
219
|
+
"name": "punctuation.definition.comment.vhdl"
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
"end": "\\n",
|
|
223
|
+
"name": "comment.line.double-dash.vhdl"
|
|
224
|
+
}
|
|
225
|
+
]
|
|
211
226
|
}
|
|
212
227
|
]
|
|
213
228
|
},
|
|
214
229
|
"component_instantiation_pattern": {
|
|
215
230
|
"patterns": [
|
|
216
231
|
{
|
|
217
|
-
"begin": "(?x)\
|
|
232
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Match a valid identifier $1\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t# Colon! $2\n\t\t\t\t\t\t\\s*(:)\\s*\n\n\t\t\t\t\t\t# Another valid identifier $3\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\\b\n\n\t\t\t\t\t\t# Make sure we are just the other word, or the beginning of\n\t\t\t\t\t\t# a generic or port mapping\n\t\t\t\t\t\t(?=\\s*($|generic|port))\n\t\t\t\t\t",
|
|
218
233
|
"beginCaptures": {
|
|
219
234
|
"1": {
|
|
220
235
|
"name": "entity.name.section.component_instantiation.vhdl"
|
|
221
236
|
},
|
|
222
237
|
"2": {
|
|
223
|
-
"name": "punctuation.vhdl"
|
|
238
|
+
"name": "punctuation.separator.vhdl"
|
|
224
239
|
},
|
|
225
240
|
"3": {
|
|
226
241
|
"name": "entity.name.tag.component.reference.vhdl"
|
|
@@ -229,7 +244,7 @@
|
|
|
229
244
|
"end": ";",
|
|
230
245
|
"endCaptures": {
|
|
231
246
|
"0": {
|
|
232
|
-
"name": "punctuation.vhdl"
|
|
247
|
+
"name": "punctuation.terminator.statement.vhdl"
|
|
233
248
|
}
|
|
234
249
|
},
|
|
235
250
|
"name": "meta.block.component_instantiation.vhdl",
|
|
@@ -247,10 +262,10 @@
|
|
|
247
262
|
"component_pattern": {
|
|
248
263
|
"patterns": [
|
|
249
264
|
{
|
|
250
|
-
"begin": "(?x)\
|
|
265
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word component $1\n\t\t\t\t\t\t\\b((?i:component))\\s+\n\n\t\t\t\t\t\t# A valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z_][a-zA-Z0-9_]*)\\s*|(.+?))(?=\\b(?i:is|port)\\b|$|--)\n\n\t\t\t\t\t\t# Optional word is $6\n\t\t\t\t\t\t(\\b((?i:is\\b)))?\n\t\t\t\t\t",
|
|
251
266
|
"beginCaptures": {
|
|
252
267
|
"1": {
|
|
253
|
-
"name": "
|
|
268
|
+
"name": "storage.type.component.vhdl"
|
|
254
269
|
},
|
|
255
270
|
"3": {
|
|
256
271
|
"name": "entity.name.type.component.begin.vhdl"
|
|
@@ -259,16 +274,16 @@
|
|
|
259
274
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
260
275
|
},
|
|
261
276
|
"6": {
|
|
262
|
-
"name": "keyword.
|
|
277
|
+
"name": "keyword.control.is.vhdl"
|
|
263
278
|
}
|
|
264
279
|
},
|
|
265
|
-
"end": "(?x)\
|
|
280
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?:end))\\s+\n\n\t\t\t\t\t\t# The word component $3 or illegal word $4\n\t\t\t\t\t\t(((?i:component\\b))|(.+?))(?=\\s*|;)\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Optional identifier $7 or illegal mismatched $8\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?(?=\\s*;)\n\t\t\t\t\t",
|
|
266
281
|
"endCaptures": {
|
|
267
282
|
"1": {
|
|
268
|
-
"name": "keyword.
|
|
283
|
+
"name": "keyword.control.end.vhdl"
|
|
269
284
|
},
|
|
270
285
|
"3": {
|
|
271
|
-
"name": "
|
|
286
|
+
"name": "storage.type.component.vhdl"
|
|
272
287
|
},
|
|
273
288
|
"4": {
|
|
274
289
|
"name": "invalid.illegal.component.keyword.required.vhdl"
|
|
@@ -355,13 +370,13 @@
|
|
|
355
370
|
"entity_instantiation_pattern": {
|
|
356
371
|
"patterns": [
|
|
357
372
|
{
|
|
358
|
-
"begin": "(?x)\
|
|
373
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Component identifier or illegal identifier $1\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t# Colon! $2\n\t\t\t\t\t\t\\s*(:)\\s*\n\n\t\t\t\t\t\t# Optional word use $4\n\t\t\t\t\t\t(((?i:use))\\s+)?\n\n\t\t\t\t\t\t# Required word entity $5\n\t\t\t\t\t\t((?i:entity))\\s+\n\n\t\t\t\t\t\t# Optional library unit identifier $8 for invalid identifier $9 followed by a dot $10\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\t\t\t\t\t\t\t(\\.)\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Entity name reference $12 or illegal identifier $13\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\t\t\t\t\t\t# Check to see if we are being followed by either open paren, end of line, or port or generic words\n\t\t\t\t\t\t(?=\\s*(\\(|$|(?i:port|generic)))\n\n\t\t\t\t\t\t# Optional architecture elaboration\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Open paren $16\n\t\t\t\t\t\t\t\\s*(\\()\\s*\n\n\t\t\t\t\t\t\t# Arch identifier $18 or invalid identifier $19\n\t\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*\\))\n\n\t\t\t\t\t\t\t# Close paren $21\n\t\t\t\t\t\t\t\\s*(\\))\n\t\t\t\t\t\t)?\n\t\t\t\t\t",
|
|
359
374
|
"beginCaptures": {
|
|
360
375
|
"1": {
|
|
361
376
|
"name": "entity.name.section.entity_instantiation.vhdl"
|
|
362
377
|
},
|
|
363
378
|
"10": {
|
|
364
|
-
"name": "punctuation.vhdl"
|
|
379
|
+
"name": "punctuation.separator.vhdl"
|
|
365
380
|
},
|
|
366
381
|
"12": {
|
|
367
382
|
"name": "entity.name.tag.entity.reference.vhdl"
|
|
@@ -370,7 +385,7 @@
|
|
|
370
385
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
371
386
|
},
|
|
372
387
|
"16": {
|
|
373
|
-
"name": "punctuation.vhdl"
|
|
388
|
+
"name": "punctuation.definition.arguments.begin.vhdl"
|
|
374
389
|
},
|
|
375
390
|
"18": {
|
|
376
391
|
"name": "entity.name.tag.architecture.reference.vhdl"
|
|
@@ -379,16 +394,16 @@
|
|
|
379
394
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
380
395
|
},
|
|
381
396
|
"2": {
|
|
382
|
-
"name": "punctuation.vhdl"
|
|
397
|
+
"name": "punctuation.separator.vhdl"
|
|
383
398
|
},
|
|
384
399
|
"21": {
|
|
385
|
-
"name": "punctuation.vhdl"
|
|
400
|
+
"name": "punctuation.definition.arguments.end.vhdl"
|
|
386
401
|
},
|
|
387
402
|
"4": {
|
|
388
|
-
"name": "keyword.
|
|
403
|
+
"name": "keyword.control.use.vhdl"
|
|
389
404
|
},
|
|
390
405
|
"5": {
|
|
391
|
-
"name": "keyword.
|
|
406
|
+
"name": "keyword.control.entity.vhdl"
|
|
392
407
|
},
|
|
393
408
|
"8": {
|
|
394
409
|
"name": "entity.name.tag.library.reference.vhdl"
|
|
@@ -400,7 +415,7 @@
|
|
|
400
415
|
"end": ";",
|
|
401
416
|
"endCaptures": {
|
|
402
417
|
"0": {
|
|
403
|
-
"name": "punctuation.vhdl"
|
|
418
|
+
"name": "punctuation.terminator.statement.vhdl"
|
|
404
419
|
}
|
|
405
420
|
},
|
|
406
421
|
"name": "meta.block.entity_instantiation.vhdl",
|
|
@@ -418,10 +433,10 @@
|
|
|
418
433
|
"entity_pattern": {
|
|
419
434
|
"patterns": [
|
|
420
435
|
{
|
|
421
|
-
"begin": "(?x)\
|
|
436
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word entity $1\n\t\t\t\t\t\t((?i:entity\\b))\\s+\n\n\t\t\t\t\t\t# The identifier $3 or an invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))(?=\\s)\n\t\t\t\t\t",
|
|
422
437
|
"beginCaptures": {
|
|
423
438
|
"1": {
|
|
424
|
-
"name": "
|
|
439
|
+
"name": "storage.type.entity.vhdl"
|
|
425
440
|
},
|
|
426
441
|
"3": {
|
|
427
442
|
"name": "entity.name.type.entity.begin.vhdl"
|
|
@@ -430,13 +445,13 @@
|
|
|
430
445
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
431
446
|
}
|
|
432
447
|
},
|
|
433
|
-
"end": "(?x)\
|
|
448
|
+
"end": "(?x)\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word entity $3\n\t\t\t\t\t\t(\\s+((?i:entity)))?\n\n\t\t\t\t\t\t# Optional identifier match $6 or indentifier mismatch $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Make sure there is a semicolon following\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
434
449
|
"endCaptures": {
|
|
435
450
|
"1": {
|
|
436
|
-
"name": "keyword.
|
|
451
|
+
"name": "keyword.control.end.vhdl"
|
|
437
452
|
},
|
|
438
453
|
"3": {
|
|
439
|
-
"name": "
|
|
454
|
+
"name": "storage.type.entity.vhdl"
|
|
440
455
|
},
|
|
441
456
|
"6": {
|
|
442
457
|
"name": "entity.name.type.entity.end.vhdl"
|
|
@@ -466,25 +481,25 @@
|
|
|
466
481
|
"for_pattern": {
|
|
467
482
|
"patterns": [
|
|
468
483
|
{
|
|
469
|
-
"begin": "(?x)\
|
|
484
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Make sure the next word is not wait\n\t\t\t\t\t\t(?!(?i:wait\\s*))\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:for))\\b\n\n\t\t\t\t\t\t# Make sure the next word is not all\n\t\t\t\t\t\t(?!\\s*(?i:all))\n\n\t\t\t\t\t",
|
|
470
485
|
"beginCaptures": {
|
|
471
486
|
"2": {
|
|
472
487
|
"name": "entity.name.tag.for.generate.begin.vhdl"
|
|
473
488
|
},
|
|
474
489
|
"3": {
|
|
475
|
-
"name": "punctuation.vhdl"
|
|
490
|
+
"name": "punctuation.separator.vhdl"
|
|
476
491
|
},
|
|
477
492
|
"4": {
|
|
478
|
-
"name": "keyword.
|
|
493
|
+
"name": "keyword.control.for.vhdl"
|
|
479
494
|
}
|
|
480
495
|
},
|
|
481
|
-
"end": "(?x)\
|
|
496
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by generate or loop $3\n\t\t\t\t\t\t\t ((?i:generate|loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
482
497
|
"endCaptures": {
|
|
483
498
|
"1": {
|
|
484
|
-
"name": "keyword.
|
|
499
|
+
"name": "keyword.control.end.vhdl"
|
|
485
500
|
},
|
|
486
501
|
"3": {
|
|
487
|
-
"name": "keyword.
|
|
502
|
+
"name": "keyword.control.vhdl"
|
|
488
503
|
},
|
|
489
504
|
"4": {
|
|
490
505
|
"name": "invalid.illegal.loop.or.generate.required.vhdl"
|
|
@@ -523,10 +538,10 @@
|
|
|
523
538
|
"function_definition_pattern": {
|
|
524
539
|
"patterns": [
|
|
525
540
|
{
|
|
526
|
-
"begin": "(?x)\
|
|
541
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:function))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid string quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t",
|
|
527
542
|
"beginCaptures": {
|
|
528
543
|
"1": {
|
|
529
|
-
"name": "
|
|
544
|
+
"name": "storage.type.function.vhdl"
|
|
530
545
|
},
|
|
531
546
|
"3": {
|
|
532
547
|
"name": "entity.name.function.function.begin.vhdl"
|
|
@@ -541,13 +556,13 @@
|
|
|
541
556
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
542
557
|
}
|
|
543
558
|
},
|
|
544
|
-
"end": "(?x)\
|
|
559
|
+
"end": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:function)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4|\\5)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
545
560
|
"endCaptures": {
|
|
546
561
|
"1": {
|
|
547
|
-
"name": "keyword.
|
|
562
|
+
"name": "keyword.control.end.vhdl"
|
|
548
563
|
},
|
|
549
564
|
"3": {
|
|
550
|
-
"name": "
|
|
565
|
+
"name": "storage.type.function.vhdl"
|
|
551
566
|
},
|
|
552
567
|
"6": {
|
|
553
568
|
"name": "entity.name.function.function.end.vhdl"
|
|
@@ -580,10 +595,10 @@
|
|
|
580
595
|
"function_prototype_pattern": {
|
|
581
596
|
"patterns": [
|
|
582
597
|
{
|
|
583
|
-
"begin": "(?x)\
|
|
598
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:function))\\s+\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $6\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t",
|
|
584
599
|
"beginCaptures": {
|
|
585
600
|
"1": {
|
|
586
|
-
"name": "
|
|
601
|
+
"name": "storage.type.function.vhdl"
|
|
587
602
|
},
|
|
588
603
|
"3": {
|
|
589
604
|
"name": "entity.name.function.function.prototype.vhdl"
|
|
@@ -605,7 +620,7 @@
|
|
|
605
620
|
"begin": "\\b(?i:return)(?=\\s+[^;]+\\s*;)",
|
|
606
621
|
"beginCaptures": {
|
|
607
622
|
"0": {
|
|
608
|
-
"name": "keyword.
|
|
623
|
+
"name": "keyword.control.return.vhdl"
|
|
609
624
|
}
|
|
610
625
|
},
|
|
611
626
|
"end": "\\;",
|
|
@@ -639,13 +654,13 @@
|
|
|
639
654
|
"begin": "\\b(?i:generic)\\b",
|
|
640
655
|
"beginCaptures": {
|
|
641
656
|
"0": {
|
|
642
|
-
"name": "keyword.
|
|
657
|
+
"name": "keyword.control.generic.vhdl"
|
|
643
658
|
}
|
|
644
659
|
},
|
|
645
660
|
"end": ";",
|
|
646
661
|
"endCaptures": {
|
|
647
662
|
"0": {
|
|
648
|
-
"name": "punctuation.vhdl"
|
|
663
|
+
"name": "punctuation.terminator.statement.vhdl"
|
|
649
664
|
}
|
|
650
665
|
},
|
|
651
666
|
"name": "meta.block.generic_list.vhdl",
|
|
@@ -660,25 +675,25 @@
|
|
|
660
675
|
"if_pattern": {
|
|
661
676
|
"patterns": [
|
|
662
677
|
{
|
|
663
|
-
"begin": "(?x)\
|
|
678
|
+
"begin": "(?x)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Optional identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Keyword if $4\n\t\t\t\t\t\t\\b((?i:if))\\b\n\t\t\t\t\t",
|
|
664
679
|
"beginCaptures": {
|
|
665
680
|
"2": {
|
|
666
681
|
"name": "entity.name.tag.if.generate.begin.vhdl"
|
|
667
682
|
},
|
|
668
683
|
"3": {
|
|
669
|
-
"name": "punctuation.vhdl"
|
|
684
|
+
"name": "punctuation.separator.vhdl"
|
|
670
685
|
},
|
|
671
686
|
"4": {
|
|
672
|
-
"name": "keyword.
|
|
687
|
+
"name": "keyword.control.if.vhdl"
|
|
673
688
|
}
|
|
674
689
|
},
|
|
675
|
-
"end": "(?x)\
|
|
690
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t# Optional generate or if keyword $4\n\t\t\t\t\t\t\t\t ((?i:generate|if))\n\n\t\t\t\t\t\t\t\t# Keyword if or generate required $5\n\t\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t\t)\\b\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t# Optional matching identifier $8\n\t\t\t\t\t\t\t\t\t (\\2)\n\n\t\t\t\t\t\t\t\t\t# Mismatched identifier $9\n\t\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Followed by a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
676
691
|
"endCaptures": {
|
|
677
692
|
"1": {
|
|
678
|
-
"name": "keyword.
|
|
693
|
+
"name": "keyword.control.end.vhdl"
|
|
679
694
|
},
|
|
680
695
|
"4": {
|
|
681
|
-
"name": "keyword.
|
|
696
|
+
"name": "keyword.control.generate.vhdl"
|
|
682
697
|
},
|
|
683
698
|
"5": {
|
|
684
699
|
"name": "invalid.illegal.if.or.generate.required.vhdl"
|
|
@@ -718,11 +733,11 @@
|
|
|
718
733
|
"patterns": [
|
|
719
734
|
{
|
|
720
735
|
"match": "'(?i:active|ascending|base|delayed|driving|event|high|image|instance|last|left|leftof|length|low|path|pos|pred|quiet|range|reverse|right|rightof|simple|stable|succ|transaction|val|value)\\b",
|
|
721
|
-
"name": "keyword.attributes.vhdl"
|
|
736
|
+
"name": "keyword.control.attributes.vhdl"
|
|
722
737
|
},
|
|
723
738
|
{
|
|
724
739
|
"match": "\\b(?i:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)\\b",
|
|
725
|
-
"name": "keyword.language.vhdl"
|
|
740
|
+
"name": "keyword.control.language.vhdl"
|
|
726
741
|
},
|
|
727
742
|
{
|
|
728
743
|
"match": "(\\+|\\-|<=|=|=>|:=|>=|>|<|/|\\||&|(\\*{1,2}))",
|
|
@@ -733,13 +748,13 @@
|
|
|
733
748
|
"package_body_pattern": {
|
|
734
749
|
"patterns": [
|
|
735
750
|
{
|
|
736
|
-
"begin": "(?x)\
|
|
751
|
+
"begin": "(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we want to be a package body $2\n\t\t\t\t\t\t((?i:body))\\s+\n\n\t\t\t\t\t\t# The valid identifier $4 or the invalid one $5\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $6\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t",
|
|
737
752
|
"beginCaptures": {
|
|
738
753
|
"1": {
|
|
739
|
-
"name": "
|
|
754
|
+
"name": "storage.type.package.vhdl"
|
|
740
755
|
},
|
|
741
756
|
"2": {
|
|
742
|
-
"name": "keyword.
|
|
757
|
+
"name": "keyword.control.body.vhdl"
|
|
743
758
|
},
|
|
744
759
|
"4": {
|
|
745
760
|
"name": "entity.name.section.package_body.begin.vhdl"
|
|
@@ -748,19 +763,19 @@
|
|
|
748
763
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
749
764
|
},
|
|
750
765
|
"6": {
|
|
751
|
-
"name": "keyword.
|
|
766
|
+
"name": "keyword.control.is.vhdl"
|
|
752
767
|
}
|
|
753
768
|
},
|
|
754
|
-
"end": "(?x)\
|
|
769
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3 body $4\n\t\t\t\t\t\t(\\s+((?i:package))\\s+((?i:body)))?\n\n\t\t\t\t\t\t# Optional identifier $7 or mismatched identifier $8\n\t\t\t\t\t\t(\\s+((\\4)|(.+?)))?(?=\\s*;)",
|
|
755
770
|
"endCaptures": {
|
|
756
771
|
"1": {
|
|
757
|
-
"name": "keyword.
|
|
772
|
+
"name": "keyword.control.end.vhdl"
|
|
758
773
|
},
|
|
759
774
|
"3": {
|
|
760
|
-
"name": "
|
|
775
|
+
"name": "storage.type.package.vhdl"
|
|
761
776
|
},
|
|
762
777
|
"4": {
|
|
763
|
-
"name": "keyword.
|
|
778
|
+
"name": "keyword.control.body.vhdl"
|
|
764
779
|
},
|
|
765
780
|
"7": {
|
|
766
781
|
"name": "entity.name.section.package_body.end.vhdl"
|
|
@@ -796,10 +811,10 @@
|
|
|
796
811
|
"package_pattern": {
|
|
797
812
|
"patterns": [
|
|
798
813
|
{
|
|
799
|
-
"begin": "(?x)\
|
|
814
|
+
"begin": "(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we do not want to be a package body\n\t\t\t\t\t\t(?!(?i:body))\n\n\t\t\t\t\t\t# The valid identifier $3 or the invalid one $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t",
|
|
800
815
|
"beginCaptures": {
|
|
801
816
|
"1": {
|
|
802
|
-
"name": "
|
|
817
|
+
"name": "storage.type.package.vhdl"
|
|
803
818
|
},
|
|
804
819
|
"3": {
|
|
805
820
|
"name": "entity.name.section.package.begin.vhdl"
|
|
@@ -808,16 +823,16 @@
|
|
|
808
823
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
809
824
|
},
|
|
810
825
|
"5": {
|
|
811
|
-
"name": "keyword.
|
|
826
|
+
"name": "keyword.control.is.vhdl"
|
|
812
827
|
}
|
|
813
828
|
},
|
|
814
|
-
"end": "(?x)\
|
|
829
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3\n\t\t\t\t\t\t(\\s+((?i:package)))?\n\n\t\t\t\t\t\t# Optional identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?(?=\\s*;)",
|
|
815
830
|
"endCaptures": {
|
|
816
831
|
"1": {
|
|
817
|
-
"name": "keyword.
|
|
832
|
+
"name": "keyword.control.end.vhdl"
|
|
818
833
|
},
|
|
819
834
|
"3": {
|
|
820
|
-
"name": "
|
|
835
|
+
"name": "storage.type.package.vhdl"
|
|
821
836
|
},
|
|
822
837
|
"6": {
|
|
823
838
|
"name": "entity.name.section.package.end.vhdl"
|
|
@@ -859,7 +874,7 @@
|
|
|
859
874
|
"begin": "\\(",
|
|
860
875
|
"beginCaptures": {
|
|
861
876
|
"0": {
|
|
862
|
-
"name": "punctuation.vhdl"
|
|
877
|
+
"name": "punctuation.definition.parenthetical_list.begin.vhdl"
|
|
863
878
|
}
|
|
864
879
|
},
|
|
865
880
|
"end": "(?<=\\))",
|
|
@@ -903,13 +918,13 @@
|
|
|
903
918
|
"begin": "\\(",
|
|
904
919
|
"beginCaptures": {
|
|
905
920
|
"0": {
|
|
906
|
-
"name": "punctuation.vhdl"
|
|
921
|
+
"name": "punctuation.section.scope.begin.vhdl"
|
|
907
922
|
}
|
|
908
923
|
},
|
|
909
924
|
"end": "\\)",
|
|
910
925
|
"endCaptures": {
|
|
911
926
|
"0": {
|
|
912
|
-
"name": "punctuation.vhdl"
|
|
927
|
+
"name": "punctuation.section.scope.end.vhdl"
|
|
913
928
|
}
|
|
914
929
|
},
|
|
915
930
|
"name": "meta.block.parenthetical_pair.vhdl",
|
|
@@ -930,13 +945,13 @@
|
|
|
930
945
|
"begin": "\\b(?i:port)\\b",
|
|
931
946
|
"beginCaptures": {
|
|
932
947
|
"0": {
|
|
933
|
-
"name": "keyword.
|
|
948
|
+
"name": "keyword.control.port.vhdl"
|
|
934
949
|
}
|
|
935
950
|
},
|
|
936
951
|
"end": ";",
|
|
937
952
|
"endCaptures": {
|
|
938
953
|
"0": {
|
|
939
|
-
"name": "punctuation.vhdl"
|
|
954
|
+
"name": "punctuation.terminator.statement.vhdl"
|
|
940
955
|
}
|
|
941
956
|
},
|
|
942
957
|
"name": "meta.block.port_list.vhdl",
|
|
@@ -951,10 +966,10 @@
|
|
|
951
966
|
"procedure_definition_pattern": {
|
|
952
967
|
"patterns": [
|
|
953
968
|
{
|
|
954
|
-
"begin": "(?x)\
|
|
969
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:procedure))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list is\n\t\t\t\t\t\t(?=\\s*(\\(|(?i:is)))\n\t\t\t\t\t",
|
|
955
970
|
"beginCaptures": {
|
|
956
971
|
"1": {
|
|
957
|
-
"name": "
|
|
972
|
+
"name": "storage.type.procedure.vhdl"
|
|
958
973
|
},
|
|
959
974
|
"3": {
|
|
960
975
|
"name": "entity.name.function.procedure.begin.vhdl"
|
|
@@ -966,13 +981,13 @@
|
|
|
966
981
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
967
982
|
}
|
|
968
983
|
},
|
|
969
|
-
"end": "(?x)\
|
|
984
|
+
"end": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:procedure)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
970
985
|
"endCaptures": {
|
|
971
986
|
"1": {
|
|
972
|
-
"name": "keyword.
|
|
987
|
+
"name": "keyword.control.end.vhdl"
|
|
973
988
|
},
|
|
974
989
|
"3": {
|
|
975
|
-
"name": "
|
|
990
|
+
"name": "storage.type.procedure.vhdl"
|
|
976
991
|
},
|
|
977
992
|
"6": {
|
|
978
993
|
"name": "entity.name.function.procedure.end.vhdl"
|
|
@@ -1005,10 +1020,10 @@
|
|
|
1005
1020
|
"procedure_prototype_pattern": {
|
|
1006
1021
|
"patterns": [
|
|
1007
1022
|
{
|
|
1008
|
-
"begin": "(?x)\
|
|
1023
|
+
"begin": "(?x)\n\t\t\t\t\t\t\\b((?i:procedure))\\s+\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\t\t\t\t\t\t(?=\\s*(\\(|;))\n\t\t\t\t\t",
|
|
1009
1024
|
"beginCaptures": {
|
|
1010
1025
|
"1": {
|
|
1011
|
-
"name": "
|
|
1026
|
+
"name": "storage.type.procedure.vhdl"
|
|
1012
1027
|
},
|
|
1013
1028
|
"3": {
|
|
1014
1029
|
"name": "entity.name.function.procedure.begin.vhdl"
|
|
@@ -1035,25 +1050,25 @@
|
|
|
1035
1050
|
"process_pattern": {
|
|
1036
1051
|
"patterns": [
|
|
1037
1052
|
{
|
|
1038
|
-
"begin": "(?x)\
|
|
1053
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Optional identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The word process #4\n\t\t\t\t\t\t((?i:process))\n\t\t\t\t\t",
|
|
1039
1054
|
"beginCaptures": {
|
|
1040
1055
|
"2": {
|
|
1041
1056
|
"name": "entity.name.section.process.begin.vhdl"
|
|
1042
1057
|
},
|
|
1043
1058
|
"3": {
|
|
1044
|
-
"name": "punctuation.vhdl"
|
|
1059
|
+
"name": "punctuation.separator.vhdl"
|
|
1045
1060
|
},
|
|
1046
1061
|
"4": {
|
|
1047
|
-
"name": "keyword.
|
|
1062
|
+
"name": "keyword.control.process.vhdl"
|
|
1048
1063
|
}
|
|
1049
1064
|
},
|
|
1050
|
-
"end": "(?x)\
|
|
1065
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word process $3\n\t\t\t\t\t\t(\\s+((?i:process)))\n\n\t\t\t\t\t\t# Optional identifier $6 or invalid identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
1051
1066
|
"endCaptures": {
|
|
1052
1067
|
"1": {
|
|
1053
|
-
"name": "keyword.
|
|
1068
|
+
"name": "keyword.control.end.vhdl"
|
|
1054
1069
|
},
|
|
1055
1070
|
"3": {
|
|
1056
|
-
"name": "keyword.
|
|
1071
|
+
"name": "keyword.control.process.vhdl"
|
|
1057
1072
|
},
|
|
1058
1073
|
"6": {
|
|
1059
1074
|
"name": "entity.name.section.process.end.vhdl"
|
|
@@ -1078,7 +1093,7 @@
|
|
|
1078
1093
|
"patterns": [
|
|
1079
1094
|
{
|
|
1080
1095
|
"match": "(\\.|,|:|;|\\(|\\))",
|
|
1081
|
-
"name": "punctuation.vhdl"
|
|
1096
|
+
"name": "punctuation.definition.other.vhdl"
|
|
1082
1097
|
}
|
|
1083
1098
|
]
|
|
1084
1099
|
},
|
|
@@ -1088,16 +1103,16 @@
|
|
|
1088
1103
|
"begin": "\\b(?i:record)\\b",
|
|
1089
1104
|
"beginCaptures": {
|
|
1090
1105
|
"0": {
|
|
1091
|
-
"name": "
|
|
1106
|
+
"name": "storage.type.record.vhdl"
|
|
1092
1107
|
}
|
|
1093
1108
|
},
|
|
1094
|
-
"end": "(?x)\
|
|
1109
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# The word record $2\n\t\t\t\t\t\t\\s+((?i:record))\n\n\t\t\t\t\t\t# Optional identifier $5 or invalid identifier $6\n\t\t\t\t\t\t(\\s+(([a-zA-Z][a-zA-Z\\d_]*)|(.*?)))?\n\n\t\t\t\t\t\t# Only whitespace and semicolons can be left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
1095
1110
|
"endCaptures": {
|
|
1096
1111
|
"1": {
|
|
1097
|
-
"name": "keyword.
|
|
1112
|
+
"name": "keyword.control.end.vhdl"
|
|
1098
1113
|
},
|
|
1099
1114
|
"2": {
|
|
1100
|
-
"name": "
|
|
1115
|
+
"name": "storage.type.record.vhdl"
|
|
1101
1116
|
},
|
|
1102
1117
|
"5": {
|
|
1103
1118
|
"name": "entity.name.type.record.vhdl"
|
|
@@ -1121,12 +1136,30 @@
|
|
|
1121
1136
|
"strings": {
|
|
1122
1137
|
"patterns": [
|
|
1123
1138
|
{
|
|
1124
|
-
"
|
|
1139
|
+
"captures": {
|
|
1140
|
+
"1": {
|
|
1141
|
+
"name": "punctuation.definition.string.begin.vhdl"
|
|
1142
|
+
},
|
|
1143
|
+
"2": {
|
|
1144
|
+
"name": "punctuation.definition.string.end.vhdl"
|
|
1145
|
+
}
|
|
1146
|
+
},
|
|
1147
|
+
"match": "(').(')",
|
|
1125
1148
|
"name": "string.quoted.single.vhdl"
|
|
1126
1149
|
},
|
|
1127
1150
|
{
|
|
1128
1151
|
"begin": "\"",
|
|
1152
|
+
"beginCaptures": {
|
|
1153
|
+
"0": {
|
|
1154
|
+
"name": "punctuation.definition.string.begin.vhdl"
|
|
1155
|
+
}
|
|
1156
|
+
},
|
|
1129
1157
|
"end": "\"",
|
|
1158
|
+
"endCaptures": {
|
|
1159
|
+
"0": {
|
|
1160
|
+
"name": "punctuation.definition.string.end.vhdl"
|
|
1161
|
+
}
|
|
1162
|
+
},
|
|
1130
1163
|
"name": "string.quoted.double.vhdl",
|
|
1131
1164
|
"patterns": [
|
|
1132
1165
|
{
|
|
@@ -1145,10 +1178,10 @@
|
|
|
1145
1178
|
"subtype_pattern": {
|
|
1146
1179
|
"patterns": [
|
|
1147
1180
|
{
|
|
1148
|
-
"begin": "(?x)\
|
|
1181
|
+
"begin": "(?x)\n\t\t\t\t\t\t# The word subtype $1\n\t\t\t\t\t\t\\b((?i:subtype))\\s+\n\n\t\t\t\t\t\t# Valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# The word is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t",
|
|
1149
1182
|
"beginCaptures": {
|
|
1150
1183
|
"1": {
|
|
1151
|
-
"name": "keyword.
|
|
1184
|
+
"name": "keyword.control.subtype.vhdl"
|
|
1152
1185
|
},
|
|
1153
1186
|
"3": {
|
|
1154
1187
|
"name": "entity.name.type.subtype.vhdl"
|
|
@@ -1157,13 +1190,13 @@
|
|
|
1157
1190
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
1158
1191
|
},
|
|
1159
1192
|
"5": {
|
|
1160
|
-
"name": "keyword.
|
|
1193
|
+
"name": "keyword.control.is.vhdl"
|
|
1161
1194
|
}
|
|
1162
1195
|
},
|
|
1163
1196
|
"end": ";",
|
|
1164
1197
|
"endCaptures": {
|
|
1165
1198
|
"0": {
|
|
1166
|
-
"name": "punctuation.vhdl"
|
|
1199
|
+
"name": "punctuation.terminator.statement.vhdl"
|
|
1167
1200
|
}
|
|
1168
1201
|
},
|
|
1169
1202
|
"name": "meta.block.subtype.vhdl",
|
|
@@ -1265,10 +1298,10 @@
|
|
|
1265
1298
|
"type_pattern": {
|
|
1266
1299
|
"patterns": [
|
|
1267
1300
|
{
|
|
1268
|
-
"begin": "(?x)\
|
|
1301
|
+
"begin": "(?x)\n\t\t\t\t\t\t# The word type $1\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# Valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A semicolon is coming up if we are incomplete\n\t\t\t\t\t\t\t (?=\\s*;)\n\n\t\t\t\t\t\t\t# Or the word is comes up $7\n\t\t\t\t\t\t\t|(\\s+((?i:is)))\n\t\t\t\t\t\t)\\b\n\t\t\t\t\t",
|
|
1269
1302
|
"beginCaptures": {
|
|
1270
1303
|
"1": {
|
|
1271
|
-
"name": "keyword.
|
|
1304
|
+
"name": "keyword.control.type.vhdl"
|
|
1272
1305
|
},
|
|
1273
1306
|
"3": {
|
|
1274
1307
|
"name": "entity.name.type.type.vhdl"
|
|
@@ -1277,13 +1310,13 @@
|
|
|
1277
1310
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
1278
1311
|
},
|
|
1279
1312
|
"7": {
|
|
1280
|
-
"name": "keyword.
|
|
1313
|
+
"name": "keyword.control.is.vhdl"
|
|
1281
1314
|
}
|
|
1282
1315
|
},
|
|
1283
1316
|
"end": ";",
|
|
1284
1317
|
"endCaptures": {
|
|
1285
1318
|
"0": {
|
|
1286
|
-
"name": "punctuation.vhdl"
|
|
1319
|
+
"name": "punctuation.terminator.statement.vhdl"
|
|
1287
1320
|
}
|
|
1288
1321
|
},
|
|
1289
1322
|
"name": "meta.block.type.vhdl",
|
|
@@ -1301,25 +1334,25 @@
|
|
|
1301
1334
|
"while_pattern": {
|
|
1302
1335
|
"patterns": [
|
|
1303
1336
|
{
|
|
1304
|
-
"begin": "(?x)\
|
|
1337
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:while))\\b\n\t\t\t\t\t",
|
|
1305
1338
|
"beginCaptures": {
|
|
1306
1339
|
"2": {
|
|
1307
|
-
"name": ""
|
|
1340
|
+
"name": "entity.name.type.vhdl"
|
|
1308
1341
|
},
|
|
1309
1342
|
"3": {
|
|
1310
|
-
"name": "punctuation.vhdl"
|
|
1343
|
+
"name": "punctuation.separator.vhdl"
|
|
1311
1344
|
},
|
|
1312
1345
|
"4": {
|
|
1313
|
-
"name": "keyword.
|
|
1346
|
+
"name": "keyword.control.while.vhdl"
|
|
1314
1347
|
}
|
|
1315
1348
|
},
|
|
1316
|
-
"end": "(?x)\
|
|
1349
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by keyword loop $3\n\t\t\t\t\t\t\t ((?i:loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
1317
1350
|
"endCaptures": {
|
|
1318
1351
|
"1": {
|
|
1319
|
-
"name": "keyword.
|
|
1352
|
+
"name": "keyword.control.end.vhdl"
|
|
1320
1353
|
},
|
|
1321
1354
|
"3": {
|
|
1322
|
-
"name": "keyword.
|
|
1355
|
+
"name": "keyword.control.loop.vhdl"
|
|
1323
1356
|
},
|
|
1324
1357
|
"4": {
|
|
1325
1358
|
"name": "invalid.illegal.loop.keyword.required.vhdl"
|