abl-tmlanguage 1.3.8 → 1.3.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.
- package/CHANGELOG.md +4 -0
- package/README.md +35 -4
- package/abl.tmLanguage.json +229 -325
- package/index.js +1 -0
- package/package.json +1 -1
- package/spec/annotations/annotation.spec.js +8 -2
- package/spec/blocks/block-labels.spec.js +3 -3
- package/spec/blocks/block-options.spec.js +18 -0
- package/spec/comments/comment-in-block-statement.spec.js +1 -1
- package/spec/db-table-and-field/new-record.spec.js +137 -0
- package/spec/define/define-browse.spec.js +454 -0
- package/spec/define/define-query.spec.js +100 -0
- package/spec/method-attribute-property-call/get-set-method-name.spec.js +12 -12
- package/spec/method-attribute-property-call/method-call.spec.js +93 -0
- package/spec/method-definition/constructor.spec.js +4 -4
- package/spec/method-definition/method.spec.js +43 -6
- package/spec/misc-statements/array-for.spec.js +21 -0
- package/spec/misc-statements/class-in-var-name.spec.js +4 -4
- package/spec/misc-statements/guid.spec.js +97 -0
- package/spec/preprocesors/proparse-preprocessor.spec.js +66 -0
- package/spec/run-statement/run-statement.spec.js +128 -3
- package/spec/type-name/argument.spec.js +10 -11
- package/spec/type-name/cast.spec.js +8 -10
- package/spec/type-name/define-variable.spec.js +28 -146
- package/spec/type-name/get-class.spec.js +18 -18
- package/spec/type-name/new.spec.js +70 -10
- package/spec/type-name/parameter-as.spec.js +60 -15
package/abl.tmLanguage.json
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"include": "#string"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
"match": "([
|
|
43
|
+
"match": "([[:alpha:]][\\w\\#\\$\\-\\%\\&\\.]+)(?<!\\.)",
|
|
44
44
|
"comment": "A procedure name may contain a . but cannot end in one, unless the procedure name is in quotes",
|
|
45
45
|
"captures": {
|
|
46
46
|
"1": {
|
|
@@ -69,7 +69,8 @@
|
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
"language-functions": {
|
|
72
|
-
"match": "(?i)\\b(opsys|proversion)\\b",
|
|
72
|
+
"match": "(?i)\\b(opsys|proversion|guid|generate-uuid)\\b",
|
|
73
|
+
"comment": "These are functions that do not require parens when called.",
|
|
73
74
|
"captures": {
|
|
74
75
|
"1": {
|
|
75
76
|
"name": "support.function.abl"
|
|
@@ -78,7 +79,7 @@
|
|
|
78
79
|
},
|
|
79
80
|
"function-definition": {
|
|
80
81
|
"name": "meta.define.function.abl",
|
|
81
|
-
"begin": "(?i)\\b(function)\\s+([
|
|
82
|
+
"begin": "(?i)\\b(function)\\s+([[:alnum:]][\\w#$\\-%&]+)\\b",
|
|
82
83
|
"beginCaptures": {
|
|
83
84
|
"1": {
|
|
84
85
|
"name": "keyword.other.abl"
|
|
@@ -95,7 +96,7 @@
|
|
|
95
96
|
},
|
|
96
97
|
"patterns": [
|
|
97
98
|
{
|
|
98
|
-
"match": "(?i)\\b(map|to)\\s+(?!to\\s+)([
|
|
99
|
+
"match": "(?i)\\b(map|to)\\s+(?!to\\s+)([[:alpha:]][\\w#$\\-%&]+)\\b",
|
|
99
100
|
"captures": {
|
|
100
101
|
"1": {
|
|
101
102
|
"name": "keyword.other.abl"
|
|
@@ -185,8 +186,16 @@
|
|
|
185
186
|
}
|
|
186
187
|
},
|
|
187
188
|
{
|
|
188
|
-
"comment": "The
|
|
189
|
-
"
|
|
189
|
+
"comment": "The last word on the line is assumed to me the method name. Legal ABL can have each word of the method definition on its own line, so this rule may not return the correct values",
|
|
190
|
+
"match": "(?i)\\b([[:alpha:]_]+[\\w\\-{}#$%&]*)\\b\\R",
|
|
191
|
+
"captures": {
|
|
192
|
+
"1": {
|
|
193
|
+
"name": "entity.name.function.abl"
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"begin": "(?i)\\s*([[:alpha:]_]+[\\w\\-{}#$%&]*)?\\s*(\\()\\s*",
|
|
190
199
|
"beginCaptures": {
|
|
191
200
|
"1": {
|
|
192
201
|
"name": "entity.name.function.abl"
|
|
@@ -207,6 +216,9 @@
|
|
|
207
216
|
}
|
|
208
217
|
]
|
|
209
218
|
},
|
|
219
|
+
{
|
|
220
|
+
"include": "#parameter-as"
|
|
221
|
+
},
|
|
210
222
|
{
|
|
211
223
|
"include": "#string",
|
|
212
224
|
"comment": "For the return type"
|
|
@@ -224,19 +236,7 @@
|
|
|
224
236
|
"comment": "For the return type"
|
|
225
237
|
},
|
|
226
238
|
{
|
|
227
|
-
"include": "#type-
|
|
228
|
-
"comment": "For the return type"
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
"include": "#type-name-progress",
|
|
232
|
-
"comment": "For the return type"
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
"include": "#type-name-generic",
|
|
236
|
-
"comment": "For the return type"
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
"include": "#type-name",
|
|
239
|
+
"include": "#type-names",
|
|
240
240
|
"comment": "For the return type"
|
|
241
241
|
},
|
|
242
242
|
{
|
|
@@ -272,16 +272,7 @@
|
|
|
272
272
|
"include": "#primitive-type"
|
|
273
273
|
},
|
|
274
274
|
{
|
|
275
|
-
"include": "#type-
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
"include": "#type-name-progress"
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
"include": "#type-name-generic"
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
"include": "#type-name"
|
|
275
|
+
"include": "#type-names"
|
|
285
276
|
}
|
|
286
277
|
]
|
|
287
278
|
},
|
|
@@ -373,12 +364,6 @@
|
|
|
373
364
|
{
|
|
374
365
|
"include": "#constant"
|
|
375
366
|
},
|
|
376
|
-
{
|
|
377
|
-
"include": "#type-name-generic-progress"
|
|
378
|
-
},
|
|
379
|
-
{
|
|
380
|
-
"include": "#type-name-progress"
|
|
381
|
-
},
|
|
382
367
|
{
|
|
383
368
|
"include": "#abl-system-handles"
|
|
384
369
|
},
|
|
@@ -392,10 +377,7 @@
|
|
|
392
377
|
"include": "#handle-methods"
|
|
393
378
|
},
|
|
394
379
|
{
|
|
395
|
-
"include": "#type-
|
|
396
|
-
},
|
|
397
|
-
{
|
|
398
|
-
"include": "#type-name"
|
|
380
|
+
"include": "#type-names"
|
|
399
381
|
},
|
|
400
382
|
{
|
|
401
383
|
"include": "#string"
|
|
@@ -560,6 +542,9 @@
|
|
|
560
542
|
{
|
|
561
543
|
"include": "#break-by"
|
|
562
544
|
},
|
|
545
|
+
{
|
|
546
|
+
"include": "#new-record"
|
|
547
|
+
},
|
|
563
548
|
{
|
|
564
549
|
"include": "#type-reference"
|
|
565
550
|
},
|
|
@@ -682,7 +667,7 @@
|
|
|
682
667
|
}
|
|
683
668
|
},
|
|
684
669
|
"preprocessors": {
|
|
685
|
-
"match": "(?i)(
|
|
670
|
+
"match": "(?i)(&window-system|&text-height|&line-number|&batch-mode|&file-name|&undefine|&sequence|&message|defined|&elseif|&scoped|&global|&opsys|&endif|&else|&scop|&then|&glob|&if)|({\\&[\\w\\-\\s\\(\\)]+})|(\\&[\\w-])",
|
|
686
671
|
"captures": {
|
|
687
672
|
"1": {
|
|
688
673
|
"name": "storage.type.function.abl"
|
|
@@ -694,12 +679,6 @@
|
|
|
694
679
|
},
|
|
695
680
|
"type-names": {
|
|
696
681
|
"patterns": [
|
|
697
|
-
{
|
|
698
|
-
"include": "#type-name-generic-progress"
|
|
699
|
-
},
|
|
700
|
-
{
|
|
701
|
-
"include": "#type-name-progress"
|
|
702
|
-
},
|
|
703
682
|
{
|
|
704
683
|
"include": "#type-name-generic"
|
|
705
684
|
},
|
|
@@ -777,52 +756,30 @@
|
|
|
777
756
|
}
|
|
778
757
|
]
|
|
779
758
|
},
|
|
780
|
-
"type-name-generic
|
|
781
|
-
"
|
|
782
|
-
"
|
|
759
|
+
"type-name-generic": {
|
|
760
|
+
"comment": "Scope names from https://www.sublimetext.com/docs/scope_naming.html",
|
|
761
|
+
"name": "meta.generic.abl",
|
|
762
|
+
"begin": "(?i)\\s*(([\\w\\#\\$\\%\\-]+)(\\.[\\w\\#\\$\\%\\-]+)*\\s*)\\s*(<)",
|
|
783
763
|
"beginCaptures": {
|
|
784
764
|
"1": {
|
|
785
765
|
"name": "entity.name.type.abl"
|
|
766
|
+
},
|
|
767
|
+
"4": {
|
|
768
|
+
"name": "punctuation.definition.generic.begin.abl"
|
|
786
769
|
}
|
|
787
770
|
},
|
|
788
|
-
"end": "
|
|
789
|
-
"
|
|
790
|
-
{
|
|
791
|
-
"include": "#generic-types"
|
|
792
|
-
}
|
|
793
|
-
]
|
|
794
|
-
},
|
|
795
|
-
"type-name-generic": {
|
|
796
|
-
"name": "entity.name.type.generic.abl",
|
|
797
|
-
"begin": "(?i)\\s*(([\\w\\#\\$\\%\\-]+)(\\.[\\w\\#\\$\\%\\-]+)*\\s*)\\s*<",
|
|
798
|
-
"beginCaptures": {
|
|
771
|
+
"end": "(>)",
|
|
772
|
+
"endCaptures": {
|
|
799
773
|
"1": {
|
|
800
|
-
"name": "
|
|
774
|
+
"name": "punctuation.definition.generic.end.abl"
|
|
801
775
|
}
|
|
802
776
|
},
|
|
803
|
-
"end": "\\>",
|
|
804
777
|
"patterns": [
|
|
805
778
|
{
|
|
806
|
-
"include": "#generic
|
|
807
|
-
}
|
|
808
|
-
]
|
|
809
|
-
},
|
|
810
|
-
"generic-types": {
|
|
811
|
-
"patterns": [
|
|
812
|
-
{
|
|
813
|
-
"include": "#type-name-comma-progress"
|
|
814
|
-
},
|
|
815
|
-
{
|
|
816
|
-
"include": "#type-name-comma"
|
|
817
|
-
},
|
|
818
|
-
{
|
|
819
|
-
"include": "#type-name-generic-progress"
|
|
820
|
-
},
|
|
821
|
-
{
|
|
822
|
-
"include": "#type-name-progress"
|
|
779
|
+
"include": "#type-name-generic"
|
|
823
780
|
},
|
|
824
781
|
{
|
|
825
|
-
"include": "#
|
|
782
|
+
"include": "#punctuation-comma"
|
|
826
783
|
},
|
|
827
784
|
{
|
|
828
785
|
"include": "#type-name"
|
|
@@ -837,50 +794,6 @@
|
|
|
837
794
|
}
|
|
838
795
|
}
|
|
839
796
|
},
|
|
840
|
-
"type-name-comma": {
|
|
841
|
-
"match": "(?i)\\s*(,*)\\s*(class)?\\s+(([\\w\\#\\$\\%]+)(\\.?[\\w\\#\\$\\%]*)*(?<!\\.))\\s*(,*)\\s*",
|
|
842
|
-
"comment": "Capture group 3 is the <T> type name",
|
|
843
|
-
"captures": {
|
|
844
|
-
"1": {
|
|
845
|
-
"name": "punctuation.separator.comma.abl"
|
|
846
|
-
},
|
|
847
|
-
"2": {
|
|
848
|
-
"name": "keyword.other.abl"
|
|
849
|
-
},
|
|
850
|
-
"3": {
|
|
851
|
-
"name": "entity.name.type.abl"
|
|
852
|
-
},
|
|
853
|
-
"6": {
|
|
854
|
-
"name": "punctuation.separator.comma.abl"
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
},
|
|
858
|
-
"type-name-progress": {
|
|
859
|
-
"match": "(?i)\\s*((progress\\.)([\\.\\w\\#\\$\\%]+)*)\\s*(?<!\\.)",
|
|
860
|
-
"captures": {
|
|
861
|
-
"1": {
|
|
862
|
-
"name": "entity.name.type.abl"
|
|
863
|
-
}
|
|
864
|
-
}
|
|
865
|
-
},
|
|
866
|
-
"type-name-comma-progress": {
|
|
867
|
-
"match": "(?i)\\s*(,*)\\s*(class)?\\s*((progress\\.|map|set)(\\.?[\\w\\#\\$\\%]*)*(?<!\\.))\\s*(,*)\\s*",
|
|
868
|
-
"comment": "Capture group 3 is the <T> type name",
|
|
869
|
-
"captures": {
|
|
870
|
-
"1": {
|
|
871
|
-
"name": "punctuation.separator.comma.abl"
|
|
872
|
-
},
|
|
873
|
-
"2": {
|
|
874
|
-
"name": "keyword.other.abl"
|
|
875
|
-
},
|
|
876
|
-
"3": {
|
|
877
|
-
"name": "entity.name.type.abl"
|
|
878
|
-
},
|
|
879
|
-
"6": {
|
|
880
|
-
"name": "punctuation.separator.comma.abl"
|
|
881
|
-
}
|
|
882
|
-
}
|
|
883
|
-
},
|
|
884
797
|
"define-class": {
|
|
885
798
|
"name": "meta.define.class.abl",
|
|
886
799
|
"begin": "(?i)\\b(?<![\\#\\$\\-\\_\\%\\&])(class)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
@@ -905,22 +818,7 @@
|
|
|
905
818
|
}
|
|
906
819
|
},
|
|
907
820
|
{
|
|
908
|
-
"include": "#type-
|
|
909
|
-
},
|
|
910
|
-
{
|
|
911
|
-
"include": "#type-name-generic"
|
|
912
|
-
},
|
|
913
|
-
{
|
|
914
|
-
"include": "#type-name-comma-progress"
|
|
915
|
-
},
|
|
916
|
-
{
|
|
917
|
-
"include": "#type-name-progress"
|
|
918
|
-
},
|
|
919
|
-
{
|
|
920
|
-
"include": "#type-name-comma"
|
|
921
|
-
},
|
|
922
|
-
{
|
|
923
|
-
"include": "#type-name"
|
|
821
|
+
"include": "#type-names"
|
|
924
822
|
},
|
|
925
823
|
{
|
|
926
824
|
"include": "#punctuation-comma"
|
|
@@ -959,9 +857,6 @@
|
|
|
959
857
|
{
|
|
960
858
|
"include": "#type-names"
|
|
961
859
|
},
|
|
962
|
-
{
|
|
963
|
-
"include": "#type-name-comma"
|
|
964
|
-
},
|
|
965
860
|
{
|
|
966
861
|
"include": "#punctuation-comma"
|
|
967
862
|
}
|
|
@@ -986,7 +881,7 @@
|
|
|
986
881
|
},
|
|
987
882
|
"patterns": [
|
|
988
883
|
{
|
|
989
|
-
"include": "#type-
|
|
884
|
+
"include": "#type-names"
|
|
990
885
|
}
|
|
991
886
|
]
|
|
992
887
|
},
|
|
@@ -1061,22 +956,7 @@
|
|
|
1061
956
|
"end": "(?=\\()",
|
|
1062
957
|
"patterns": [
|
|
1063
958
|
{
|
|
1064
|
-
"include": "#type-
|
|
1065
|
-
},
|
|
1066
|
-
{
|
|
1067
|
-
"include": "#type-name-generic"
|
|
1068
|
-
},
|
|
1069
|
-
{
|
|
1070
|
-
"include": "#type-name-comma-progress"
|
|
1071
|
-
},
|
|
1072
|
-
{
|
|
1073
|
-
"include": "#type-name-progress"
|
|
1074
|
-
},
|
|
1075
|
-
{
|
|
1076
|
-
"include": "#type-name-comma"
|
|
1077
|
-
},
|
|
1078
|
-
{
|
|
1079
|
-
"include": "#type-name"
|
|
959
|
+
"include": "#type-names"
|
|
1080
960
|
},
|
|
1081
961
|
{
|
|
1082
962
|
"include": "#string"
|
|
@@ -1354,13 +1234,10 @@
|
|
|
1354
1234
|
},
|
|
1355
1235
|
"type-argument-function": {
|
|
1356
1236
|
"name": "meta.function-call.abl",
|
|
1357
|
-
"begin": "(?i)\\s*(cast|type-of)\\s*(
|
|
1237
|
+
"begin": "(?i)\\s*(cast|type-of)\\s*(?=\\()",
|
|
1358
1238
|
"beginCaptures": {
|
|
1359
1239
|
"1": {
|
|
1360
1240
|
"name": "support.function.abl"
|
|
1361
|
-
},
|
|
1362
|
-
"2": {
|
|
1363
|
-
"name": "meta.brace.round.js"
|
|
1364
1241
|
}
|
|
1365
1242
|
},
|
|
1366
1243
|
"end": "(?<=\\))",
|
|
@@ -1371,83 +1248,39 @@
|
|
|
1371
1248
|
},
|
|
1372
1249
|
"patterns": [
|
|
1373
1250
|
{
|
|
1374
|
-
"
|
|
1375
|
-
"
|
|
1376
|
-
"
|
|
1377
|
-
"1": {
|
|
1378
|
-
"name": "storage.data.table.abl"
|
|
1379
|
-
},
|
|
1380
|
-
"4": {
|
|
1381
|
-
"name": "punctuation.separator.comma.abl"
|
|
1382
|
-
}
|
|
1383
|
-
}
|
|
1384
|
-
},
|
|
1385
|
-
{
|
|
1386
|
-
"match": "\\s*([a-zA-Z][a-zA-Z0-9\\#\\$\\-\\_\\%\\&]*)\\s*((,)|(?=:))",
|
|
1387
|
-
"captures": {
|
|
1251
|
+
"begin": "(?<=\\()",
|
|
1252
|
+
"end": "(,)",
|
|
1253
|
+
"endCaptures": {
|
|
1388
1254
|
"1": {
|
|
1389
|
-
"name": "variable.other.abl"
|
|
1390
|
-
},
|
|
1391
|
-
"3": {
|
|
1392
1255
|
"name": "punctuation.separator.comma.abl"
|
|
1393
1256
|
}
|
|
1394
|
-
}
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
"captures": {
|
|
1399
|
-
"1": {
|
|
1400
|
-
"name": "entity.name.function.abl"
|
|
1257
|
+
},
|
|
1258
|
+
"patterns": [
|
|
1259
|
+
{
|
|
1260
|
+
"include": "#function-arguments-no-parens"
|
|
1401
1261
|
},
|
|
1402
|
-
|
|
1403
|
-
"
|
|
1262
|
+
{
|
|
1263
|
+
"include": "#parens"
|
|
1404
1264
|
}
|
|
1405
|
-
|
|
1406
|
-
},
|
|
1407
|
-
{
|
|
1408
|
-
"include": "#type-argument-function"
|
|
1409
|
-
},
|
|
1410
|
-
{
|
|
1411
|
-
"include": "#expression"
|
|
1412
|
-
},
|
|
1413
|
-
{
|
|
1414
|
-
"include": "#property-call"
|
|
1415
|
-
},
|
|
1416
|
-
{
|
|
1417
|
-
"include": "#static-object-property-call"
|
|
1418
|
-
},
|
|
1419
|
-
{
|
|
1420
|
-
"include": "#doublequotedstring"
|
|
1421
|
-
},
|
|
1422
|
-
{
|
|
1423
|
-
"include": "#singlequotedstring"
|
|
1424
|
-
},
|
|
1425
|
-
{
|
|
1426
|
-
"include": "#translation-attribute"
|
|
1427
|
-
},
|
|
1428
|
-
{
|
|
1429
|
-
"include": "#type-name-generic-progress"
|
|
1430
|
-
},
|
|
1431
|
-
{
|
|
1432
|
-
"include": "#type-name-generic"
|
|
1433
|
-
},
|
|
1434
|
-
{
|
|
1435
|
-
"include": "#type-name-comma-progress"
|
|
1265
|
+
]
|
|
1436
1266
|
},
|
|
1437
1267
|
{
|
|
1438
|
-
"include": "#type-
|
|
1268
|
+
"include": "#type-names"
|
|
1439
1269
|
},
|
|
1440
1270
|
{
|
|
1441
|
-
"include": "#
|
|
1271
|
+
"include": "#comment"
|
|
1442
1272
|
},
|
|
1443
1273
|
{
|
|
1444
|
-
"include": "#
|
|
1274
|
+
"include": "#string"
|
|
1445
1275
|
},
|
|
1446
1276
|
{
|
|
1447
1277
|
"include": "#parens"
|
|
1448
1278
|
},
|
|
1449
1279
|
{
|
|
1450
1280
|
"include": "#punctuation-comma"
|
|
1281
|
+
},
|
|
1282
|
+
{
|
|
1283
|
+
"include": "#preprocessors"
|
|
1451
1284
|
}
|
|
1452
1285
|
]
|
|
1453
1286
|
},
|
|
@@ -1504,6 +1337,9 @@
|
|
|
1504
1337
|
{
|
|
1505
1338
|
"include": "#property-call"
|
|
1506
1339
|
},
|
|
1340
|
+
{
|
|
1341
|
+
"include": "#new-record"
|
|
1342
|
+
},
|
|
1507
1343
|
{
|
|
1508
1344
|
"include": "#type-reference"
|
|
1509
1345
|
},
|
|
@@ -1609,7 +1445,7 @@
|
|
|
1609
1445
|
"name": "keyword.other.abl"
|
|
1610
1446
|
}
|
|
1611
1447
|
},
|
|
1612
|
-
"end": "(?=\\s|\\)
|
|
1448
|
+
"end": "(?=\\s|\\)|\\.|,)",
|
|
1613
1449
|
"patterns": [
|
|
1614
1450
|
{
|
|
1615
1451
|
"match": "(?i)\\s*(class)\\s*",
|
|
@@ -1626,13 +1462,7 @@
|
|
|
1626
1462
|
"include": "#dll-type"
|
|
1627
1463
|
},
|
|
1628
1464
|
{
|
|
1629
|
-
"include": "#type-
|
|
1630
|
-
},
|
|
1631
|
-
{
|
|
1632
|
-
"include": "#type-name-generic"
|
|
1633
|
-
},
|
|
1634
|
-
{
|
|
1635
|
-
"include": "#type-name"
|
|
1465
|
+
"include": "#type-names"
|
|
1636
1466
|
},
|
|
1637
1467
|
{
|
|
1638
1468
|
"include": "#parens"
|
|
@@ -1649,7 +1479,7 @@
|
|
|
1649
1479
|
]
|
|
1650
1480
|
},
|
|
1651
1481
|
"define-variable-name": {
|
|
1652
|
-
"match": "(?i)(
|
|
1482
|
+
"match": "(?i)(variable|variabl|variab|varia|vari|var)\\s+([[:alpha:]][\\w#$-%&])+\\s*",
|
|
1653
1483
|
"captures": {
|
|
1654
1484
|
"1": {
|
|
1655
1485
|
"name": "keyword.other.abl"
|
|
@@ -1710,7 +1540,7 @@
|
|
|
1710
1540
|
},
|
|
1711
1541
|
"annotation-simple": {
|
|
1712
1542
|
"name": "meta.declaration.annotation.abl",
|
|
1713
|
-
"match": "(
|
|
1543
|
+
"match": "(^|\\s*)(\\@[[:alpha:]][\\w#\\$-%&]*)\\s*(?=\\.)",
|
|
1714
1544
|
"captures": {
|
|
1715
1545
|
"2": {
|
|
1716
1546
|
"name": "entity.name.tag.abl"
|
|
@@ -1719,7 +1549,7 @@
|
|
|
1719
1549
|
},
|
|
1720
1550
|
"annotation-attributes": {
|
|
1721
1551
|
"name": "meta.declaration.annotation.abl",
|
|
1722
|
-
"begin": "(
|
|
1552
|
+
"begin": "(^|\\s+)(\\@[[:alpha:]][\\w#\\$-%&]*)\\s*(?=\\()",
|
|
1723
1553
|
"beginCaptures": {
|
|
1724
1554
|
"2": {
|
|
1725
1555
|
"name": "entity.name.tag.abl"
|
|
@@ -1731,7 +1561,7 @@
|
|
|
1731
1561
|
"include": "#parens"
|
|
1732
1562
|
},
|
|
1733
1563
|
{
|
|
1734
|
-
"match": "
|
|
1564
|
+
"match": "\\s*([[:alpha:]][\\w#\\$-%&]+)(?=[\\=\\s$])",
|
|
1735
1565
|
"captures": {
|
|
1736
1566
|
"1": {
|
|
1737
1567
|
"name": "entity.other.attribute-name.abl"
|
|
@@ -1793,6 +1623,15 @@
|
|
|
1793
1623
|
{
|
|
1794
1624
|
"include": "#define-dataset"
|
|
1795
1625
|
},
|
|
1626
|
+
{
|
|
1627
|
+
"include": "#define-query"
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
"include": "#define-browse"
|
|
1631
|
+
},
|
|
1632
|
+
{
|
|
1633
|
+
"include": "#fields-except-list"
|
|
1634
|
+
},
|
|
1796
1635
|
{
|
|
1797
1636
|
"include": "#define-event"
|
|
1798
1637
|
},
|
|
@@ -1868,9 +1707,6 @@
|
|
|
1868
1707
|
{
|
|
1869
1708
|
"include": "#dll-type"
|
|
1870
1709
|
},
|
|
1871
|
-
{
|
|
1872
|
-
"include": "#type-name-progress"
|
|
1873
|
-
},
|
|
1874
1710
|
{
|
|
1875
1711
|
"include": "#abl-system-handles"
|
|
1876
1712
|
},
|
|
@@ -1899,10 +1735,7 @@
|
|
|
1899
1735
|
"include": "#label-variable"
|
|
1900
1736
|
},
|
|
1901
1737
|
{
|
|
1902
|
-
"include": "#type-
|
|
1903
|
-
},
|
|
1904
|
-
{
|
|
1905
|
-
"include": "#type-name"
|
|
1738
|
+
"include": "#type-names"
|
|
1906
1739
|
}
|
|
1907
1740
|
]
|
|
1908
1741
|
},
|
|
@@ -1917,6 +1750,30 @@
|
|
|
1917
1750
|
}
|
|
1918
1751
|
}
|
|
1919
1752
|
},
|
|
1753
|
+
"define-query": {
|
|
1754
|
+
"begin": "(?i)\\b(query)\\s+([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)\\s*",
|
|
1755
|
+
"beginCaptures": {
|
|
1756
|
+
"1": {
|
|
1757
|
+
"name": "keyword.other.abl"
|
|
1758
|
+
},
|
|
1759
|
+
"2": {
|
|
1760
|
+
"name": "variable.other.abl"
|
|
1761
|
+
}
|
|
1762
|
+
},
|
|
1763
|
+
"end": "(?i)\\b(?=for|display|share-lock|no-lock|exclusive-lock)\\b"
|
|
1764
|
+
},
|
|
1765
|
+
"define-browse": {
|
|
1766
|
+
"begin": "(?i)\\b(browse)\\s+([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)\\s*",
|
|
1767
|
+
"beginCaptures": {
|
|
1768
|
+
"1": {
|
|
1769
|
+
"name": "keyword.other.abl"
|
|
1770
|
+
},
|
|
1771
|
+
"2": {
|
|
1772
|
+
"name": "variable.other.abl"
|
|
1773
|
+
}
|
|
1774
|
+
},
|
|
1775
|
+
"end": "(?i)\\b(?=query)\\b"
|
|
1776
|
+
},
|
|
1920
1777
|
"define-parameter": {
|
|
1921
1778
|
"begin": "(?i)\\b(parameter|paramete|paramet|parame|param)\\b",
|
|
1922
1779
|
"beginCaptures": {
|
|
@@ -1942,7 +1799,7 @@
|
|
|
1942
1799
|
}
|
|
1943
1800
|
},
|
|
1944
1801
|
{
|
|
1945
|
-
"match": "(?i)\\b(table-handle|dataset-handle)\\s+([
|
|
1802
|
+
"match": "(?i)\\b(table-handle|dataset-handle)\\s+([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)\\b",
|
|
1946
1803
|
"captures": {
|
|
1947
1804
|
"1": {
|
|
1948
1805
|
"name": "keyword.other.abl"
|
|
@@ -2011,14 +1868,6 @@
|
|
|
2011
1868
|
{
|
|
2012
1869
|
"include": "#numeric"
|
|
2013
1870
|
},
|
|
2014
|
-
{
|
|
2015
|
-
"comment": "needs to be before the #keywords include",
|
|
2016
|
-
"include": "#type-name-generic-progress"
|
|
2017
|
-
},
|
|
2018
|
-
{
|
|
2019
|
-
"comment": "needs to be before the #keywords include",
|
|
2020
|
-
"include": "#type-name-progress"
|
|
2021
|
-
},
|
|
2022
1871
|
{
|
|
2023
1872
|
"include": "#keywords"
|
|
2024
1873
|
},
|
|
@@ -2026,10 +1875,7 @@
|
|
|
2026
1875
|
"include": "#string"
|
|
2027
1876
|
},
|
|
2028
1877
|
{
|
|
2029
|
-
"include": "#type-
|
|
2030
|
-
},
|
|
2031
|
-
{
|
|
2032
|
-
"include": "#type-name"
|
|
1878
|
+
"include": "#type-names"
|
|
2033
1879
|
}
|
|
2034
1880
|
]
|
|
2035
1881
|
},
|
|
@@ -2111,7 +1957,7 @@
|
|
|
2111
1957
|
]
|
|
2112
1958
|
},
|
|
2113
1959
|
"define-index": {
|
|
2114
|
-
"begin": "(?i)\\s*(index)\\s+([
|
|
1960
|
+
"begin": "(?i)\\s*(index)\\s+([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)",
|
|
2115
1961
|
"beginCaptures": {
|
|
2116
1962
|
"1": {
|
|
2117
1963
|
"name": "keyword.other.abl"
|
|
@@ -2131,7 +1977,7 @@
|
|
|
2131
1977
|
}
|
|
2132
1978
|
},
|
|
2133
1979
|
{
|
|
2134
|
-
"match": "\\b([
|
|
1980
|
+
"match": "\\b([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)\\b",
|
|
2135
1981
|
"captures": {
|
|
2136
1982
|
"1": {
|
|
2137
1983
|
"name": "storage.data.table.abl"
|
|
@@ -2141,7 +1987,7 @@
|
|
|
2141
1987
|
]
|
|
2142
1988
|
},
|
|
2143
1989
|
"define-dataset": {
|
|
2144
|
-
"begin": "(?i)\\b(dataset)\\s+([
|
|
1990
|
+
"begin": "(?i)\\b(dataset)\\s+([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)\\b",
|
|
2145
1991
|
"beginCaptures": {
|
|
2146
1992
|
"1": {
|
|
2147
1993
|
"name": "keyword.other.abl"
|
|
@@ -2160,7 +2006,7 @@
|
|
|
2160
2006
|
"include": "#punctuation-comma"
|
|
2161
2007
|
},
|
|
2162
2008
|
{
|
|
2163
|
-
"match": "(?i)\\b(data-relation|parent-id-relation)\\s*([
|
|
2009
|
+
"match": "(?i)\\b(data-relation|parent-id-relation)\\s*([[:alpha:]][\\w#$\\-\\%\\&]+)",
|
|
2164
2010
|
"comment": "Manually capture these so that we can name the relation name properly",
|
|
2165
2011
|
"captures": {
|
|
2166
2012
|
"1": {
|
|
@@ -2198,7 +2044,7 @@
|
|
|
2198
2044
|
]
|
|
2199
2045
|
},
|
|
2200
2046
|
"define-event": {
|
|
2201
|
-
"match": "(?i)\\b(event)\\s+([
|
|
2047
|
+
"match": "(?i)\\b(event)\\s+([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)\\b",
|
|
2202
2048
|
"captures": {
|
|
2203
2049
|
"1": {
|
|
2204
2050
|
"name": "keyword.other.abl"
|
|
@@ -2209,7 +2055,7 @@
|
|
|
2209
2055
|
}
|
|
2210
2056
|
},
|
|
2211
2057
|
"define-button": {
|
|
2212
|
-
"begin": "(?i)\\s*(button)\\s+([
|
|
2058
|
+
"begin": "(?i)\\s*(button)\\s+([[:alpha:]][\\w#$\\-%&]*)",
|
|
2213
2059
|
"beginCaptures": {
|
|
2214
2060
|
"1": {
|
|
2215
2061
|
"name": "keyword.other.abl"
|
|
@@ -2241,7 +2087,7 @@
|
|
|
2241
2087
|
]
|
|
2242
2088
|
},
|
|
2243
2089
|
"from-x-and-y": {
|
|
2244
|
-
"match": "(?i)\\b(from)\\s+(X)\\s+((0(x)[
|
|
2090
|
+
"match": "(?i)\\b(from)\\s+(X)\\s+((0(x)[[[:xdigit:]]]+)|(\\-?[[[:digit:]]]+(\\.[[[:digit:]]]+)?))\\s+(y)\\s+((0(x)[[[:xdigit:]]]+)|(\\-?[[[:digit:]]]+(\\.[[[:digit:]]]+)?))\\s+ ",
|
|
2245
2091
|
"captures": {
|
|
2246
2092
|
"1": {
|
|
2247
2093
|
"name": "keyword.other.abl"
|
|
@@ -2261,7 +2107,7 @@
|
|
|
2261
2107
|
}
|
|
2262
2108
|
},
|
|
2263
2109
|
"define-buffer": {
|
|
2264
|
-
"begin": "(?i)\\s*(buffer)\\
|
|
2110
|
+
"begin": "(?i)\\s*(buffer)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
2265
2111
|
"beginCaptures": {
|
|
2266
2112
|
"1": {
|
|
2267
2113
|
"name": "keyword.other.abl"
|
|
@@ -2287,7 +2133,7 @@
|
|
|
2287
2133
|
]
|
|
2288
2134
|
},
|
|
2289
2135
|
"define-frame": {
|
|
2290
|
-
"match": "(?i)\\s*(frame)\\s*([
|
|
2136
|
+
"match": "(?i)\\s*(frame)\\s*([[:alpha:]][\\w#$\\-%&]*)",
|
|
2291
2137
|
"captures": {
|
|
2292
2138
|
"1": {
|
|
2293
2139
|
"name": "keyword.other.abl"
|
|
@@ -2336,22 +2182,8 @@
|
|
|
2336
2182
|
"comment": "needs to be before the #keywords include",
|
|
2337
2183
|
"include": "#type-names"
|
|
2338
2184
|
},
|
|
2339
|
-
{
|
|
2340
|
-
"comment": "needs to be before the #keywords include",
|
|
2341
|
-
"include": "#type-name-generic-progress"
|
|
2342
|
-
},
|
|
2343
|
-
{
|
|
2344
|
-
"comment": "needs to be before the #keywords include",
|
|
2345
|
-
"include": "#type-name-progress"
|
|
2346
|
-
},
|
|
2347
2185
|
{
|
|
2348
2186
|
"include": "#string"
|
|
2349
|
-
},
|
|
2350
|
-
{
|
|
2351
|
-
"include": "#type-name-generic"
|
|
2352
|
-
},
|
|
2353
|
-
{
|
|
2354
|
-
"include": "#type-name"
|
|
2355
2187
|
}
|
|
2356
2188
|
]
|
|
2357
2189
|
},
|
|
@@ -2476,7 +2308,7 @@
|
|
|
2476
2308
|
]
|
|
2477
2309
|
},
|
|
2478
2310
|
"use-index": {
|
|
2479
|
-
"match": "(?i)\\b(use-index)\\s+([
|
|
2311
|
+
"match": "(?i)\\b(use-index)\\s+([[:alpha:]][\\w\\-\\$]*)\\b",
|
|
2480
2312
|
"captures": {
|
|
2481
2313
|
"1": {
|
|
2482
2314
|
"name": "keyword.other.abl"
|
|
@@ -2531,11 +2363,11 @@
|
|
|
2531
2363
|
}
|
|
2532
2364
|
},
|
|
2533
2365
|
"block-label": {
|
|
2534
|
-
"match": "(?i)^\\s*(?!(transaction|no-lock|exclusive-lock|exclusive-loc|exclusive-lo|exclusive-l|share-lock|share-loc|share-lo|share-|share):)([
|
|
2535
|
-
"comment": "A colon followed by a space is only legal is for block labels. Block labels must also be at the beginning of a line",
|
|
2366
|
+
"match": "(?i)^\\s*(?!(transaction|no-lock|exclusive-lock|exclusive-loc|exclusive-lo|exclusive-l|share-lock|share-loc|share-lo|share-|share):)([\\w\\-\\$\\#]+)(:)\\s",
|
|
2367
|
+
"comment": "A colon followed by a space is only legal is for block labels. Block labels must also be at the beginning of a line. Scope name is per https://www.sublimetext.com/docs/scope_naming.html",
|
|
2536
2368
|
"captures": {
|
|
2537
2369
|
"2": {
|
|
2538
|
-
"name": "
|
|
2370
|
+
"name": "entity.name.label.abl"
|
|
2539
2371
|
},
|
|
2540
2372
|
"3": {
|
|
2541
2373
|
"name": "punctuation.terminator.abl"
|
|
@@ -2590,6 +2422,9 @@
|
|
|
2590
2422
|
{
|
|
2591
2423
|
"include": "#type-member-call"
|
|
2592
2424
|
},
|
|
2425
|
+
{
|
|
2426
|
+
"include": "#language-functions"
|
|
2427
|
+
},
|
|
2593
2428
|
{
|
|
2594
2429
|
"include": "#abl-functions"
|
|
2595
2430
|
},
|
|
@@ -2602,6 +2437,9 @@
|
|
|
2602
2437
|
{
|
|
2603
2438
|
"include": "#branch-options"
|
|
2604
2439
|
},
|
|
2440
|
+
{
|
|
2441
|
+
"include":"#keywords"
|
|
2442
|
+
},
|
|
2605
2443
|
{
|
|
2606
2444
|
"include": "#expression"
|
|
2607
2445
|
},
|
|
@@ -2681,7 +2519,7 @@
|
|
|
2681
2519
|
},
|
|
2682
2520
|
{
|
|
2683
2521
|
"comment": "Captures the variable before the : or , of Subscribe( [ subscriber-handle , ] handler-procedure ) or Subscribe ( [ subscriber : ] handler-method )",
|
|
2684
|
-
"match": "\\s*([
|
|
2522
|
+
"match": "\\s*([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)\\s*((,)|(:))\\s*",
|
|
2685
2523
|
"captures": {
|
|
2686
2524
|
"1": {
|
|
2687
2525
|
"name": "variable.other.abl"
|
|
@@ -2696,7 +2534,7 @@
|
|
|
2696
2534
|
},
|
|
2697
2535
|
{
|
|
2698
2536
|
"comment": "Subscribe( handler-procedure or handler-method)",
|
|
2699
|
-
"match": "\\s*([
|
|
2537
|
+
"match": "\\s*([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)\\s*",
|
|
2700
2538
|
"captures": {
|
|
2701
2539
|
"1": {
|
|
2702
2540
|
"name": "entity.name.function.abl"
|
|
@@ -2785,7 +2623,7 @@
|
|
|
2785
2623
|
}
|
|
2786
2624
|
},
|
|
2787
2625
|
"on-error-endkey-stop": {
|
|
2788
|
-
"match": "(?i)\\s*(on)\\s+(endkey|error|stop|quit)\\s+(undo)\\s*(?!leave|next|retry|return|throw)([
|
|
2626
|
+
"match": "(?i)\\s*(on)\\s+(endkey|error|stop|quit)\\s+(undo)\\s*(?!leave|next|retry|return|throw)([\\w\\-\\$]*)?\\s*",
|
|
2789
2627
|
"captures": {
|
|
2790
2628
|
"1": {
|
|
2791
2629
|
"name": "keyword.other.abl"
|
|
@@ -2797,30 +2635,30 @@
|
|
|
2797
2635
|
"name": "keyword.other.abl"
|
|
2798
2636
|
},
|
|
2799
2637
|
"4": {
|
|
2800
|
-
"name": "
|
|
2638
|
+
"name": "entity.name.label.abl"
|
|
2801
2639
|
}
|
|
2802
2640
|
}
|
|
2803
2641
|
},
|
|
2804
2642
|
"block-undo-leave-next-retry": {
|
|
2805
2643
|
"comment": "Covers NEXT, LEAVE, RETRY and UNDO with block labels that are not preceded by UNDO, ",
|
|
2806
|
-
"match": "(?i)\\s*(?<!,)\\s*(leave|next|retry|undo)\\s*(?!on)([
|
|
2644
|
+
"match": "(?i)\\s*(?<!,)\\s*(leave|next|retry|undo)\\s*(?!on)([\\w\\-\\$]*)?\\s*",
|
|
2807
2645
|
"captures": {
|
|
2808
2646
|
"1": {
|
|
2809
2647
|
"name": "keyword.other.abl"
|
|
2810
2648
|
},
|
|
2811
2649
|
"2": {
|
|
2812
|
-
"name": "
|
|
2650
|
+
"name": "entity.name.label.abl"
|
|
2813
2651
|
}
|
|
2814
2652
|
}
|
|
2815
2653
|
},
|
|
2816
2654
|
"branch-leave-next-retry-throw": {
|
|
2817
|
-
"match": "(?i)\\s*(?<=,)\\s*(leave|next|retry|throw)\\s*(?!on)([
|
|
2655
|
+
"match": "(?i)\\s*(?<=,)\\s*(leave|next|retry|throw)\\s*(?!on)([\\w\\-\\$]*)?\\s*",
|
|
2818
2656
|
"captures": {
|
|
2819
2657
|
"1": {
|
|
2820
2658
|
"name": "keyword.other.abl"
|
|
2821
2659
|
},
|
|
2822
2660
|
"2": {
|
|
2823
|
-
"name": "
|
|
2661
|
+
"name": "entity.name.label.abl"
|
|
2824
2662
|
}
|
|
2825
2663
|
}
|
|
2826
2664
|
},
|
|
@@ -2928,13 +2766,13 @@
|
|
|
2928
2766
|
},
|
|
2929
2767
|
"undo-statement": {
|
|
2930
2768
|
"comment": "https://docs.progress.com/bundle/abl-reference/page/UNDO-statement.html",
|
|
2931
|
-
"begin": "(?i)\\s*(undo)\\s*([
|
|
2769
|
+
"begin": "(?i)\\s*(undo)\\s*([\\w\\-\\$]*)?\\s*(,)",
|
|
2932
2770
|
"beginCaptures": {
|
|
2933
2771
|
"1": {
|
|
2934
2772
|
"name": "keyword.other.abl"
|
|
2935
2773
|
},
|
|
2936
2774
|
"2": {
|
|
2937
|
-
"name": "
|
|
2775
|
+
"name": "entity.name.label.abl"
|
|
2938
2776
|
},
|
|
2939
2777
|
"3": {
|
|
2940
2778
|
"name": "punctuation.separator.comma.abl"
|
|
@@ -2946,13 +2784,13 @@
|
|
|
2946
2784
|
"include": "#string"
|
|
2947
2785
|
},
|
|
2948
2786
|
{
|
|
2949
|
-
"match": "(?i)\\s*(leave|next|retry)\\s([
|
|
2787
|
+
"match": "(?i)\\s*(leave|next|retry)\\s([\\w\\-\\$]*)?",
|
|
2950
2788
|
"captures": {
|
|
2951
2789
|
"1": {
|
|
2952
2790
|
"name": "keyword.other.abl"
|
|
2953
2791
|
},
|
|
2954
2792
|
"2": {
|
|
2955
|
-
"name": "
|
|
2793
|
+
"name": "entity.name.label.abl"
|
|
2956
2794
|
}
|
|
2957
2795
|
}
|
|
2958
2796
|
},
|
|
@@ -3028,9 +2866,6 @@
|
|
|
3028
2866
|
},
|
|
3029
2867
|
{
|
|
3030
2868
|
"include": "#expression"
|
|
3031
|
-
},
|
|
3032
|
-
{
|
|
3033
|
-
"include": "X-#statements"
|
|
3034
2869
|
}
|
|
3035
2870
|
]
|
|
3036
2871
|
},
|
|
@@ -3079,6 +2914,12 @@
|
|
|
3079
2914
|
{
|
|
3080
2915
|
"include": "#function-arguments"
|
|
3081
2916
|
},
|
|
2917
|
+
{
|
|
2918
|
+
"include": "#property-call"
|
|
2919
|
+
},
|
|
2920
|
+
{
|
|
2921
|
+
"include": "#static-object-property-call"
|
|
2922
|
+
},
|
|
3082
2923
|
{
|
|
3083
2924
|
"include": "#db-dot-table-dot-field"
|
|
3084
2925
|
},
|
|
@@ -3091,9 +2932,6 @@
|
|
|
3091
2932
|
{
|
|
3092
2933
|
"include": "#code-block"
|
|
3093
2934
|
},
|
|
3094
|
-
{
|
|
3095
|
-
"include": "#property-call"
|
|
3096
|
-
},
|
|
3097
2935
|
{
|
|
3098
2936
|
"include": "#handle-attributes"
|
|
3099
2937
|
},
|
|
@@ -3125,6 +2963,14 @@
|
|
|
3125
2963
|
{
|
|
3126
2964
|
"include": "#parens"
|
|
3127
2965
|
},
|
|
2966
|
+
{
|
|
2967
|
+
"include": "#function-arguments-no-parens"
|
|
2968
|
+
}
|
|
2969
|
+
]
|
|
2970
|
+
},
|
|
2971
|
+
"function-arguments-no-parens": {
|
|
2972
|
+
"name": "meta.function.arguments.abl",
|
|
2973
|
+
"patterns": [
|
|
3128
2974
|
{
|
|
3129
2975
|
"match": "(?i)\\s*(input-output|input-outpu|input-outp|input-out|input-ou|input-o|output|input|table-handle|dataset-handle|APPEND|BY-VALUE|BY-REFERENCE|BIND)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3130
2976
|
"captures": {
|
|
@@ -3170,6 +3016,9 @@
|
|
|
3170
3016
|
{
|
|
3171
3017
|
"include": "#can-find"
|
|
3172
3018
|
},
|
|
3019
|
+
{
|
|
3020
|
+
"include": "#language-functions"
|
|
3021
|
+
},
|
|
3173
3022
|
{
|
|
3174
3023
|
"include": "#abl-functions"
|
|
3175
3024
|
},
|
|
@@ -3180,7 +3029,7 @@
|
|
|
3180
3029
|
"include": "#handle-methods"
|
|
3181
3030
|
},
|
|
3182
3031
|
{
|
|
3183
|
-
"include": "#
|
|
3032
|
+
"include": "#type-member-call"
|
|
3184
3033
|
},
|
|
3185
3034
|
{
|
|
3186
3035
|
"include": "#expression"
|
|
@@ -3188,15 +3037,9 @@
|
|
|
3188
3037
|
{
|
|
3189
3038
|
"include": "#comment"
|
|
3190
3039
|
},
|
|
3191
|
-
{
|
|
3192
|
-
"include": "#property-call"
|
|
3193
|
-
},
|
|
3194
3040
|
{
|
|
3195
3041
|
"include": "#punctuation-comma"
|
|
3196
3042
|
},
|
|
3197
|
-
{
|
|
3198
|
-
"include": "#static-object-property-call"
|
|
3199
|
-
},
|
|
3200
3043
|
{
|
|
3201
3044
|
"include": "#preprocessors"
|
|
3202
3045
|
}
|
|
@@ -3218,7 +3061,7 @@
|
|
|
3218
3061
|
}
|
|
3219
3062
|
},
|
|
3220
3063
|
"unqualified-method-call": {
|
|
3221
|
-
"match": "\\b([
|
|
3064
|
+
"match": "\\b([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)\\b(?=\\()",
|
|
3222
3065
|
"captures": {
|
|
3223
3066
|
"1": {
|
|
3224
3067
|
"name": "entity.name.function.abl"
|
|
@@ -3226,7 +3069,7 @@
|
|
|
3226
3069
|
}
|
|
3227
3070
|
},
|
|
3228
3071
|
"property-call": {
|
|
3229
|
-
"match": "(:)([
|
|
3072
|
+
"match": "(:)([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)\\b",
|
|
3230
3073
|
"captures": {
|
|
3231
3074
|
"1": {
|
|
3232
3075
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -3251,11 +3094,11 @@
|
|
|
3251
3094
|
},
|
|
3252
3095
|
"variable-name": {
|
|
3253
3096
|
"comment": "1 to 128 characters; can consist of any combination of letters (a-z or A-Z), numbers (0-9), and these special characters: #$-_%& Names must begin with a letter (from https://docs.progress.com/bundle/openedge-abl-manage-applications/page/Name-limits.html)",
|
|
3254
|
-
"match": "(?<=^|\\s|\\[|\\(|,)([
|
|
3097
|
+
"match": "(?<=^|\\s|\\[|\\(|,)([[:alpha:]][\\w\\#\\$\\-\\%\\&]*)(?=\\.\\s|\\.$|,|:|\\s|\\)|\\]|\\[|$)",
|
|
3255
3098
|
"name": "variable.other.abl"
|
|
3256
3099
|
},
|
|
3257
3100
|
"extent": {
|
|
3258
|
-
"match": "(?i)\\s*(extent)\\s*((0x
|
|
3101
|
+
"match": "(?i)\\s*(extent)\\s*((0x)?[[:xdigit:]]+)?",
|
|
3259
3102
|
"captures": {
|
|
3260
3103
|
"1": {
|
|
3261
3104
|
"name": "keyword.other.abl"
|
|
@@ -3266,7 +3109,7 @@
|
|
|
3266
3109
|
}
|
|
3267
3110
|
},
|
|
3268
3111
|
"decimals": {
|
|
3269
|
-
"match": "(?i)\\s*(decimals)\\s((0x
|
|
3112
|
+
"match": "(?i)\\s*(decimals)\\s((0x)?[[:xdigit:]]+)?",
|
|
3270
3113
|
"captures": {
|
|
3271
3114
|
"1": {
|
|
3272
3115
|
"name": "keyword.other.abl"
|
|
@@ -3277,7 +3120,7 @@
|
|
|
3277
3120
|
}
|
|
3278
3121
|
},
|
|
3279
3122
|
"ordinal": {
|
|
3280
|
-
"match": "(?i)\\s*(ordinal)\\s((0x
|
|
3123
|
+
"match": "(?i)\\s*(ordinal)\\s((0x)?[[:xdigit:]]+)?",
|
|
3281
3124
|
"captures": {
|
|
3282
3125
|
"1": {
|
|
3283
3126
|
"name": "keyword.other.abl"
|
|
@@ -3302,6 +3145,15 @@
|
|
|
3302
3145
|
}
|
|
3303
3146
|
},
|
|
3304
3147
|
"patterns": [
|
|
3148
|
+
{
|
|
3149
|
+
"comment": "See https://docs.progress.com/bundle/abl-reference/page/Array-reference.html for array ranges",
|
|
3150
|
+
"match":"(?i)\\s+(for)\\s+",
|
|
3151
|
+
"captures": {
|
|
3152
|
+
"1": {
|
|
3153
|
+
"name": "keyword.other.abl"
|
|
3154
|
+
}
|
|
3155
|
+
}
|
|
3156
|
+
},
|
|
3305
3157
|
{
|
|
3306
3158
|
"include": "#expression"
|
|
3307
3159
|
},
|
|
@@ -3360,7 +3212,24 @@
|
|
|
3360
3212
|
"name": "variable.parameter.abl"
|
|
3361
3213
|
},
|
|
3362
3214
|
"run-statement": {
|
|
3363
|
-
"
|
|
3215
|
+
"patterns": [
|
|
3216
|
+
{"include": "#run-unquoted"},
|
|
3217
|
+
{"include": "#run-quoted"}
|
|
3218
|
+
]
|
|
3219
|
+
},
|
|
3220
|
+
"run-quoted": {
|
|
3221
|
+
"match": "(?i)\\s*(run)\\s+(?!value)\\s*(['\"].*['\"])",
|
|
3222
|
+
"captures": {
|
|
3223
|
+
"1": {
|
|
3224
|
+
"name": "keyword.other.abl"
|
|
3225
|
+
},
|
|
3226
|
+
"2": {
|
|
3227
|
+
"name": "entity.name.procedure.abl"
|
|
3228
|
+
}
|
|
3229
|
+
}
|
|
3230
|
+
},
|
|
3231
|
+
"run-unquoted": {
|
|
3232
|
+
"match": "(?i)\\s*(run)\\s+(?!value)\\s*([\\w\\-\\$\\@\\/\\\\]{1,253}(\\.[\\w@\\$\\-]{1,2})?)",
|
|
3364
3233
|
"captures": {
|
|
3365
3234
|
"1": {
|
|
3366
3235
|
"name": "keyword.other.abl"
|
|
@@ -3373,7 +3242,7 @@
|
|
|
3373
3242
|
"include-file": {
|
|
3374
3243
|
"name": "meta.include.abl",
|
|
3375
3244
|
"comment": "https://docs.progress.com/bundle/openedge-abl-reference-122/page/Include-file-reference.html",
|
|
3376
|
-
"begin": "(
|
|
3245
|
+
"begin": "({)\\s*(([[:alpha:]][\\w\\/\\-\\\\]+)(\\.[[:alpha:]]+)?)",
|
|
3377
3246
|
"beginCaptures": {
|
|
3378
3247
|
"1": {
|
|
3379
3248
|
"name": "punctuation.section.abl"
|
|
@@ -3393,7 +3262,7 @@
|
|
|
3393
3262
|
"include": "#argument-reference"
|
|
3394
3263
|
},
|
|
3395
3264
|
{
|
|
3396
|
-
"match": "(?<=\\s)(&[
|
|
3265
|
+
"match": "(?<=\\s)(&[[:alpha:]][\\w\\#\\$\\-\\%\\.]+)\\s*(=?)",
|
|
3397
3266
|
"name": "meta.include.argument.abl",
|
|
3398
3267
|
"comment": "This is intended to catch '&arg' and '&arg=' ",
|
|
3399
3268
|
"captures": {
|
|
@@ -3410,9 +3279,9 @@
|
|
|
3410
3279
|
"include": "#string"
|
|
3411
3280
|
},
|
|
3412
3281
|
{
|
|
3413
|
-
"match": "(?<=\\s)(&[
|
|
3282
|
+
"match": "(?<=\\s)(&[[:alpha:]][\\w\\#\\$\\-\\%\\.]+)\\s*(=?)",
|
|
3414
3283
|
"comment": "non-string argument values after the &arg = ",
|
|
3415
|
-
"name": "meta.include
|
|
3284
|
+
"name": "meta.include.argument.abl",
|
|
3416
3285
|
"captures": {
|
|
3417
3286
|
"1": {
|
|
3418
3287
|
"name": "support.other.argument.abl",
|
|
@@ -3427,9 +3296,9 @@
|
|
|
3427
3296
|
"include": "#string"
|
|
3428
3297
|
},
|
|
3429
3298
|
{
|
|
3430
|
-
"match": "(?<=\\s)(&[
|
|
3299
|
+
"match": "(?<=\\s)(&[[:alpha:]][\\w\\#\\$\\-\\%\\.]+)\\s*(=?)",
|
|
3431
3300
|
"comment": "non-string argument values after the &arg = ",
|
|
3432
|
-
"name": "meta.include
|
|
3301
|
+
"name": "meta.include.argument.abl",
|
|
3433
3302
|
"captures": {
|
|
3434
3303
|
"1": {
|
|
3435
3304
|
"name": "support.other.argument.abl",
|
|
@@ -3441,7 +3310,7 @@
|
|
|
3441
3310
|
}
|
|
3442
3311
|
},
|
|
3443
3312
|
{
|
|
3444
|
-
"match": "(?<=\\s)([
|
|
3313
|
+
"match": "(?<=\\s)([[:alpha:]][\\w\\#\\$\\-\\%\\.\\:]+)\\b",
|
|
3445
3314
|
"comment": "non-string unnamed argument values",
|
|
3446
3315
|
"captures": {
|
|
3447
3316
|
"1": {
|
|
@@ -3566,7 +3435,7 @@
|
|
|
3566
3435
|
"comment": "https://docs.progress.com/bundle/openedge-abl-reference-122/page/Data-types.html"
|
|
3567
3436
|
},
|
|
3568
3437
|
"numeric": {
|
|
3569
|
-
"match": "(?<![\\w-])(
|
|
3438
|
+
"match": "(?<![\\w-])(0[xX][[:xdigit:]]+)|(\\-?[[:digit:]]+(\\.[[:digit:]]+)?)",
|
|
3570
3439
|
"name": "constant.numeric.source.abl"
|
|
3571
3440
|
},
|
|
3572
3441
|
"abl-system-handles": {
|
|
@@ -3667,6 +3536,41 @@
|
|
|
3667
3536
|
}
|
|
3668
3537
|
}
|
|
3669
3538
|
},
|
|
3539
|
+
"new-record": {
|
|
3540
|
+
"comment": "This scope MUST be called after before type-reference (especially new-class) to avoid types being captured as tables",
|
|
3541
|
+
"patterns": [
|
|
3542
|
+
{
|
|
3543
|
+
"comment": " NEW\\s+( <buffer> )",
|
|
3544
|
+
"match": "(?i)\\s*(new)\\s+(\\()\\s*([\\w\\-#$%]+(\\.[\\w\\-#$%]+)?)\\s*(\\))",
|
|
3545
|
+
"captures": {
|
|
3546
|
+
"1": {
|
|
3547
|
+
"name": "support.function.abl"
|
|
3548
|
+
},
|
|
3549
|
+
"2": {
|
|
3550
|
+
"name": "meta.brace.round.js"
|
|
3551
|
+
},
|
|
3552
|
+
"3": {
|
|
3553
|
+
"name": "storage.data.table.abl"
|
|
3554
|
+
},
|
|
3555
|
+
"5": {
|
|
3556
|
+
"name": "meta.brace.round.js"
|
|
3557
|
+
}
|
|
3558
|
+
}
|
|
3559
|
+
},
|
|
3560
|
+
{
|
|
3561
|
+
"comment": " NEW <buffer>. The position of the negative lookahead (?!...) is very important",
|
|
3562
|
+
"match": "(?i)\\s*((new)\\s+(?!.*\\()([\\w\\-#$%\\.]+))",
|
|
3563
|
+
"captures": {
|
|
3564
|
+
"2": {
|
|
3565
|
+
"name": "support.function.abl"
|
|
3566
|
+
},
|
|
3567
|
+
"3": {
|
|
3568
|
+
"name": "storage.data.table.abl"
|
|
3569
|
+
}
|
|
3570
|
+
}
|
|
3571
|
+
}
|
|
3572
|
+
]
|
|
3573
|
+
},
|
|
3670
3574
|
"keywords": {
|
|
3671
3575
|
"patterns": [
|
|
3672
3576
|
{
|
|
@@ -3901,7 +3805,7 @@
|
|
|
3901
3805
|
},
|
|
3902
3806
|
"keywords-R": {
|
|
3903
3807
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3904
|
-
"match": "(?i)\\b(run-procedure|run-procedur|run-procedu|run-proced|run-proce|run-proc|run|rule-y|rule-row|rule|row-unmodified|row-of|row-modified|row-leave|row-height|row-entry|row-display|row-deleted|row-created|row|routine-level|right-end|right-aligned|right-aligne|right-align|right|revoke|revert|reverse-from|returns|return-value|return-to-start-dir|return-to-start-di|return|retry-cancel|retain|resume-display|result|request|reposition-parent-relation|reposition-parent-relatio|reposition-parent-relati|reposition-parent-relat|reposition-parent-rela|reposition-parent-rel|reposition-forwards|reposition-forward|reposition-forwar|reposition-forwa|reposition-forw|reposition-backwards|reposition-backward|reposition-backwar|reposition-backwa|reposition-backw|reposition-back|reposition|reports|replication-write|replication-delete|replication-create|repeat|release|
|
|
3808
|
+
"match": "(?i)\\b(run-procedure|run-procedur|run-procedu|run-proced|run-proce|run-proc|run|rule-y|rule-row|rule|row-unmodified|row-of|row-modified|row-leave|row-height|row-entry|row-display|row-deleted|row-created|row|routine-level|right-end|right-aligned|right-aligne|right-align|right|revoke|revert|reverse-from|returns|return-value|return-to-start-dir|return-to-start-di|return|retry-cancel|retain|resume-display|result|request|reposition-parent-relation|reposition-parent-relatio|reposition-parent-relati|reposition-parent-relat|reposition-parent-rela|reposition-parent-rel|reposition-forwards|reposition-forward|reposition-forwar|reposition-forwa|reposition-forw|reposition-backwards|reposition-backward|reposition-backwar|reposition-backwa|reposition-backw|reposition-back|reposition|reports|replication-write|replication-delete|replication-create|repeat|release|reinstate|reference-only|recursive|rectangle|rectangl|rectang|rectan|recta|rect|recall|real|readkey|read-response|read-exact-num|read-available|rcode-information|rcode-informatio|rcode-informati|rcode-informat|rcode-informa|rcode-inform|rcode-infor|rcode-info|raw-transfer|raw|radio-set)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3905
3809
|
"captures": {
|
|
3906
3810
|
"1": {
|
|
3907
3811
|
"name": "keyword.other.abl"
|
|
@@ -3910,7 +3814,7 @@
|
|
|
3910
3814
|
},
|
|
3911
3815
|
"keywords-S": {
|
|
3912
3816
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3913
|
-
"match": "(?i)\\b(system-help|system-dialog|suspend|super|summary|sum|substring|subscribe|sub-total|sub-minimum|sub-minimu|sub-minim|sub-mini|sub-min|sub-menu-help|sub-menu|sub-maximum|sub-maximu|sub-maxim|sub-maxi|sub-max|sub-count|sub-average|sub-averag|sub-avera|sub-aver|sub-ave|string-xref|stream-io|stream-handle|stream|stored-procedure|stored-procedur|stored-procedu|stored-proced|stored-proce|stored-proc|stop-mem-check|stop-display|stop-after|stop|stomp-frequency|stomp-detection|stdcall|status-area-msg|status|static|starting|start-search|start-row-resize|start-resize|start-move|start-mem-check|start-extend-box-selection|start-box-selection|start|sql|space|source-procedure|source|some|socket|soap-header-entryref|soap-header|soap-fault|smallint|slider|skip-schema-check|skip-group-duplicates|skip|size-pixels|size-pixel|size-pixe|size-pix|size-pi|size-p|size-chars|size-char|size-cha|size-ch|size-c|size|single-run|single-character|single|simple|silent|signature|side-label|side-labe|side-lab|show-stats|show-stat|short|shared|share-lock|share-loc|share-lo|share-l|share-|share|settings|set-state|set-pointer-value|set-pointer-valu|set-pointer-val|set-option|set-event-manager-option|set-db-logging|set-contents|set-cell-focus|set-byte-order|set-attr-call-type|set|session|server-socket|server|serialize-name|serialize-hidden|serializable|separate-connection|send|self|selection-list|selection-extend|selection|selected-items|select-repositioned-row|select-on-join|select-extend|select|seek|security-policy|section|search-target|search-self|scrolling|scrolled-row-position|scrolled-row-positio|scrolled-row-positi|scrolled-row-posit|scrolled-row-posi|scrolled-row-pos|scrollbar-drag|scroll-vertical|scroll-right|scroll-notify|scroll-mode|scroll-left|scroll-horizontal|scroll|screen-io|screen|schema|sax-xml|sax-writer|sax-write-tag|sax-write-idle|sax-write-error|sax-write-element|sax-write-content|sax-write-complete|sax-write-begin|sax-uninitialized|sax-running|sax-reader|sax-parser-error|sax-complete|sax-complet|sax-comple|sax-attributes|save-as|save)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3817
|
+
"match": "(?i)\\b(system-help|system-dialog|suspend|super|summary|sum|substring|subscribe|sub-total|sub-minimum|sub-minimu|sub-minim|sub-mini|sub-min|sub-menu-help|sub-menu|sub-maximum|sub-maximu|sub-maxim|sub-maxi|sub-max|sub-count|sub-average|sub-averag|sub-avera|sub-aver|sub-ave|string-xref|stream-io|stream-handle|stream|stored-procedure|stored-procedur|stored-procedu|stored-proced|stored-proce|stored-proc|stop-mem-check|stop-display|stop-after|stop|stomp-frequency|stomp-detection|stdcall|status-area-msg|status|static|starting|start-search|start-row-resize|start-resize|start-move|start-mem-check|start-extend-box-selection|start-box-selection|start|sql|space|source-procedure|source|some|socket|soap-header-entryref|soap-header|soap-fault|smallint|slider|skip-schema-check|skip-group-duplicates|skip|size-pixels|size-pixel|size-pixe|size-pix|size-pi|size-p|size-chars|size-char|size-cha|size-ch|size-c|size|single-run|single-character|single|simple|silent|signature|side-label|side-labe|side-lab|show-stats|show-stat|short|shared|share-lock|share-loc|share-lo|share-l|share-|share|settings|set-state|set-pointer-value|set-pointer-valu|set-pointer-val|set-option|set-event-manager-option|set-db-logging|set-contents|set-cell-focus|set-byte-order|set-attr-call-type|set|session|server-socket|server|serialize-name|serialize-hidden|serializable|separators|separate-connection|send|self|selection-list|selection-extend|selection|selected-items|select-repositioned-row|select-on-join|select-extend|select|seek|security-policy|section|search-target|search-self|scrolling|scrolled-row-position|scrolled-row-positio|scrolled-row-positi|scrolled-row-posit|scrolled-row-posi|scrolled-row-pos|scrollbar-drag|scroll-vertical|scroll-right|scroll-notify|scroll-mode|scroll-left|scroll-horizontal|scroll|screen-io|screen|schema|sax-xml|sax-writer|sax-write-tag|sax-write-idle|sax-write-error|sax-write-element|sax-write-content|sax-write-complete|sax-write-begin|sax-uninitialized|sax-running|sax-reader|sax-parser-error|sax-complete|sax-complet|sax-comple|sax-attributes|save-as|save)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3914
3818
|
"captures": {
|
|
3915
3819
|
"1": {
|
|
3916
3820
|
"name": "keyword.other.abl"
|