github-linguist 4.8.8 → 4.8.9
Sign up to get free protection for your applications and to get access to all the features.
- 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"
|