abl-tmlanguage 1.3.8 → 1.3.10
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 +73 -39
- package/abl.tmLanguage.json +812 -580
- package/index.js +110 -71
- package/package.json +6 -6
- package/spec/annotations/annotation.spec.js +8 -2
- package/spec/array-extent/issue#5.spec.js +9 -9
- 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/comments/spacious-comment.spec.js +73 -0
- package/spec/create-widgets/create-window.spec.js +221 -0
- package/spec/db-table-and-field/create-alias.spec.js +101 -0
- package/spec/db-table-and-field/create-record.spec.js +43 -0
- package/spec/db-table-and-field/find-record.spec.js +91 -0
- 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 +101 -0
- package/spec/define-variable/extent.spec.js +6 -6
- package/spec/define-variable/var-statement.spec.js +375 -0
- package/spec/include/include-file-name.spec.js +224 -0
- package/spec/include/vscode-abl-issue#77.spec.js +2 -2
- package/spec/input-output/input-from.spec.js +501 -0
- package/spec/input-output/output-to.spec.js +456 -0
- package/spec/method-attribute-property-call/get-set-method-name.spec.js +57 -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 +227 -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/misc-statements/if-then.spec.js +118 -1
- package/spec/preprocesors/proparse-preprocessor.spec.js +66 -0
- package/spec/procedure-definition/vscode-abl-issue#26.spec.js +6 -6
- 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 +66 -21
package/abl.tmLanguage.json
CHANGED
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"repository": {
|
|
15
15
|
"procedure-definition": {
|
|
16
16
|
"name": "meta.procedure.abl",
|
|
17
|
-
"comment": "Look ahead to the procedure name, quoted or not. It will be resolved in the patterns",
|
|
18
|
-
"begin": "(?i)\\s*(
|
|
17
|
+
"comment": "Look ahead to the procedure name, quoted or not. It will be resolved in the patterns. 'Names must begin with a letter.' from https://docs.progress.com/bundle/openedge-abl-manage-applications/page/Name-limits.html",
|
|
18
|
+
"begin": "(?i)\\s*(proce(?:dure|dur|du|d)?)\\s+(?=[a-zA-Z_])",
|
|
19
19
|
"beginCaptures": {
|
|
20
20
|
"1": {
|
|
21
21
|
"name": "keyword.other.abl"
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"patterns": [
|
|
31
31
|
{
|
|
32
|
-
"match": "(?i)\\b(external|cdecl|pascal|stdcall|ordinal|
|
|
32
|
+
"match": "(?i)\\b(external|cdecl|pascal|stdcall|ordinal|(persist(?:ent|en|e)?)|thread-safe|in|super)\\b",
|
|
33
33
|
"captures": {
|
|
34
34
|
"1": {
|
|
35
35
|
"name": "keyword.other.abl"
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"include": "#string"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
"match": "([a-zA-
|
|
43
|
+
"match": "([a-zA-Z_][a-zA-Z0-9_#$\\-%&\\.]+)(?<!\\.)",
|
|
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": {
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
},
|
|
62
62
|
"translation-attribute": {
|
|
63
63
|
"comment": "The attribute must have one of L, R, T, or C and/or a U and/or one integer value. For example, R1 as the attribute value for Label.",
|
|
64
|
-
"match": "(
|
|
64
|
+
"match": "(:[LlRrTtCcUu]\\d*)\\b",
|
|
65
65
|
"captures": {
|
|
66
66
|
"1": {
|
|
67
67
|
"name": "support.other.abl"
|
|
@@ -69,7 +69,8 @@
|
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
"language-functions": {
|
|
72
|
-
"match": "(?i)\\b(opsys|
|
|
72
|
+
"match": "(?i)\\b(opsys|(provers(?:ion|io|i)?)|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+([a-
|
|
82
|
+
"begin": "(?i)\\b(function)\\s+([a-zA-Z0-9_][a-zA-Z0-9_#$\\-%&]+)\\b",
|
|
82
83
|
"beginCaptures": {
|
|
83
84
|
"1": {
|
|
84
85
|
"name": "keyword.other.abl"
|
|
@@ -87,7 +88,7 @@
|
|
|
87
88
|
"name": "entity.name.function.abl"
|
|
88
89
|
}
|
|
89
90
|
},
|
|
90
|
-
"end": "(
|
|
91
|
+
"end": "(\\.|:)",
|
|
91
92
|
"endCaptures": {
|
|
92
93
|
"1": {
|
|
93
94
|
"name": "punctuation.terminator.abl"
|
|
@@ -95,7 +96,7 @@
|
|
|
95
96
|
},
|
|
96
97
|
"patterns": [
|
|
97
98
|
{
|
|
98
|
-
"match": "(?i)\\b(map|to)\\s+(?!to\\s+)([a-
|
|
99
|
+
"match": "(?i)\\b(map|to)\\s+(?!to\\s+)([a-zA-Z_][a-zA-Z0-9_#$\\-%&]+)\\b",
|
|
99
100
|
"captures": {
|
|
100
101
|
"1": {
|
|
101
102
|
"name": "keyword.other.abl"
|
|
@@ -123,10 +124,23 @@
|
|
|
123
124
|
{
|
|
124
125
|
"comment": "This captures everything after the parens, which may contain variables and methods",
|
|
125
126
|
"begin": "(?i)(?<=\\)|in)",
|
|
126
|
-
"end": "(?=(
|
|
127
|
+
"end": "(?=(\\.|:)\\s)",
|
|
127
128
|
"patterns": [
|
|
128
129
|
{
|
|
129
|
-
"
|
|
130
|
+
"match": "\\b([Ii][Nn])\\b",
|
|
131
|
+
"captures": {
|
|
132
|
+
"1": {
|
|
133
|
+
"name": "keyword.other.abl"
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"match": "\\b([Ss][Uu][Pp][Ee][Rr])\\b",
|
|
139
|
+
"captures": {
|
|
140
|
+
"1": {
|
|
141
|
+
"name": "keyword.other.abl"
|
|
142
|
+
}
|
|
143
|
+
}
|
|
130
144
|
},
|
|
131
145
|
{
|
|
132
146
|
"include": "#type-member-call"
|
|
@@ -134,6 +148,9 @@
|
|
|
134
148
|
{
|
|
135
149
|
"include": "#variable-name"
|
|
136
150
|
},
|
|
151
|
+
{
|
|
152
|
+
"include": "#keywords"
|
|
153
|
+
},
|
|
137
154
|
{
|
|
138
155
|
"include": "#comment"
|
|
139
156
|
},
|
|
@@ -185,8 +202,7 @@
|
|
|
185
202
|
}
|
|
186
203
|
},
|
|
187
204
|
{
|
|
188
|
-
"
|
|
189
|
-
"begin": "(?i)\\s*([a-z_]+[\\w\\-{}#$%&]*)\\s*(\\()\\s*",
|
|
205
|
+
"begin": "(?i)\\s*([a-zA-Z0-9_]+[a-zA-Z0-9_\\-{}#$%&]*)?\\s*(\\()\\s*",
|
|
190
206
|
"beginCaptures": {
|
|
191
207
|
"1": {
|
|
192
208
|
"name": "entity.name.function.abl"
|
|
@@ -207,6 +223,9 @@
|
|
|
207
223
|
}
|
|
208
224
|
]
|
|
209
225
|
},
|
|
226
|
+
{
|
|
227
|
+
"include": "#parameter-as"
|
|
228
|
+
},
|
|
210
229
|
{
|
|
211
230
|
"include": "#string",
|
|
212
231
|
"comment": "For the return type"
|
|
@@ -220,23 +239,20 @@
|
|
|
220
239
|
"comment": "For the return type"
|
|
221
240
|
},
|
|
222
241
|
{
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
{
|
|
231
|
-
"include": "#type-name-progress",
|
|
232
|
-
"comment": "For the return type"
|
|
242
|
+
"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",
|
|
243
|
+
"match": "(?i)\\b([a-zA-Z0-9_]+[a-zA-Z0-9_\\-{}#$%&]*)\\b\\R",
|
|
244
|
+
"captures": {
|
|
245
|
+
"1": {
|
|
246
|
+
"name": "entity.name.function.abl"
|
|
247
|
+
}
|
|
248
|
+
}
|
|
233
249
|
},
|
|
234
250
|
{
|
|
235
|
-
"include": "#type
|
|
251
|
+
"include": "#dll-type",
|
|
236
252
|
"comment": "For the return type"
|
|
237
253
|
},
|
|
238
254
|
{
|
|
239
|
-
"include": "#type-
|
|
255
|
+
"include": "#type-names",
|
|
240
256
|
"comment": "For the return type"
|
|
241
257
|
},
|
|
242
258
|
{
|
|
@@ -257,7 +273,7 @@
|
|
|
257
273
|
}
|
|
258
274
|
},
|
|
259
275
|
"as-type": {
|
|
260
|
-
"begin": "
|
|
276
|
+
"begin": "\\s*([Aa][Ss])\\s*([Cc][Ll][Aa][Ss]{2})?",
|
|
261
277
|
"beginCaptures": {
|
|
262
278
|
"1": {
|
|
263
279
|
"name": "keyword.other.abl"
|
|
@@ -272,16 +288,7 @@
|
|
|
272
288
|
"include": "#primitive-type"
|
|
273
289
|
},
|
|
274
290
|
{
|
|
275
|
-
"include": "#type-
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
"include": "#type-name-progress"
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
"include": "#type-name-generic"
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
"include": "#type-name"
|
|
291
|
+
"include": "#type-names"
|
|
285
292
|
}
|
|
286
293
|
]
|
|
287
294
|
},
|
|
@@ -289,7 +296,7 @@
|
|
|
289
296
|
"name": "meta.define.parameter.abl",
|
|
290
297
|
"patterns": [
|
|
291
298
|
{
|
|
292
|
-
"match": "(?i)\\s*(input-
|
|
299
|
+
"match": "(?i)\\s*((input-o(?:utput|utpu|utp|u)?)|input|output|append|bind|by-value|(presel(?:ect|ec|e)?)|buffer|(param(?:eter|ete|et|e)?)|no-undo)\\s*",
|
|
293
300
|
"comment": "Certain keywords like NO-UNDO are 'gathered' by a DEFINE INPUT PARAMETER statement. ",
|
|
294
301
|
"captures": {
|
|
295
302
|
"1": {
|
|
@@ -298,7 +305,7 @@
|
|
|
298
305
|
}
|
|
299
306
|
},
|
|
300
307
|
{
|
|
301
|
-
"match": "(?i)\\s*(dataset-handle|table-handle)\\s+([
|
|
308
|
+
"match": "(?i)\\s*(dataset-handle|table-handle)\\s+([a-zA-Z][a-zA-Z0-9_\\-]*)",
|
|
302
309
|
"captures": {
|
|
303
310
|
"1": {
|
|
304
311
|
"name": "keyword.other.abl"
|
|
@@ -309,7 +316,7 @@
|
|
|
309
316
|
}
|
|
310
317
|
},
|
|
311
318
|
{
|
|
312
|
-
"match": "(?i)\\s*(dataset)\\s+([
|
|
319
|
+
"match": "(?i)\\s*(dataset)\\s+([a-zA-Z][a-zA-Z0-9_\\-]*)\\s*",
|
|
313
320
|
"captures": {
|
|
314
321
|
"1": {
|
|
315
322
|
"name": "keyword.other.abl"
|
|
@@ -320,7 +327,7 @@
|
|
|
320
327
|
}
|
|
321
328
|
},
|
|
322
329
|
{
|
|
323
|
-
"match": "(?i)\\s*(table)\\s+([
|
|
330
|
+
"match": "(?i)\\s*(table)\\s+([a-zA-Z][a-zA-Z0-9_\\-]*)\\s*",
|
|
324
331
|
"captures": {
|
|
325
332
|
"1": {
|
|
326
333
|
"name": "keyword.other.abl"
|
|
@@ -334,7 +341,7 @@
|
|
|
334
341
|
"include": "#parameter-as"
|
|
335
342
|
},
|
|
336
343
|
{
|
|
337
|
-
"match": "(?i)\\s*(
|
|
344
|
+
"match": "(?i)\\s*((char(?:acter|acte|act|ac|a)?)|com-handle|date|datetime-tz|datetime|(dec(?:imal|ima|im|i)?)|handle|int64|(int(?:eger|ege|eg|e)?)|(log(?:ical|ica|ic|i)?)|(longch(?:ar|a)?)|memptr|raw|recid|rowid|(widget-h(?:andle|andl|and|an|a)?))(?![=a-zA-Z0-9_\\-])\\s*(,*)",
|
|
338
345
|
"captures": {
|
|
339
346
|
"1": {
|
|
340
347
|
"name": "storage.type.abl"
|
|
@@ -373,12 +380,6 @@
|
|
|
373
380
|
{
|
|
374
381
|
"include": "#constant"
|
|
375
382
|
},
|
|
376
|
-
{
|
|
377
|
-
"include": "#type-name-generic-progress"
|
|
378
|
-
},
|
|
379
|
-
{
|
|
380
|
-
"include": "#type-name-progress"
|
|
381
|
-
},
|
|
382
383
|
{
|
|
383
384
|
"include": "#abl-system-handles"
|
|
384
385
|
},
|
|
@@ -392,10 +393,7 @@
|
|
|
392
393
|
"include": "#handle-methods"
|
|
393
394
|
},
|
|
394
395
|
{
|
|
395
|
-
"include": "#type-
|
|
396
|
-
},
|
|
397
|
-
{
|
|
398
|
-
"include": "#type-name"
|
|
396
|
+
"include": "#type-names"
|
|
399
397
|
},
|
|
400
398
|
{
|
|
401
399
|
"include": "#string"
|
|
@@ -409,7 +407,7 @@
|
|
|
409
407
|
]
|
|
410
408
|
},
|
|
411
409
|
"function-parameter-definition": {
|
|
412
|
-
"comment": "https://docs.progress.com/bundle/abl-reference/page/Parameter-definition-syntax.html
|
|
410
|
+
"comment": "https://docs.progress.com/bundle/abl-reference/page/Parameter-definition-syntax.html",
|
|
413
411
|
"name": "meta.function.parameters",
|
|
414
412
|
"begin": "(\\()",
|
|
415
413
|
"beginCaptures": {
|
|
@@ -432,12 +430,24 @@
|
|
|
432
430
|
"statements": {
|
|
433
431
|
"name": "meta.statements.abl",
|
|
434
432
|
"patterns": [
|
|
433
|
+
{
|
|
434
|
+
"include": "#comment"
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"include": "#var-statement"
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"include": "#input-output-from-to"
|
|
441
|
+
},
|
|
435
442
|
{
|
|
436
443
|
"include": "#function-definition"
|
|
437
444
|
},
|
|
438
445
|
{
|
|
439
446
|
"include": "#record-buffer-functions"
|
|
440
447
|
},
|
|
448
|
+
{
|
|
449
|
+
"include": "#create-statement"
|
|
450
|
+
},
|
|
441
451
|
{
|
|
442
452
|
"include": "#can-find"
|
|
443
453
|
},
|
|
@@ -450,9 +460,6 @@
|
|
|
450
460
|
{
|
|
451
461
|
"include": "#event-un-subscribe"
|
|
452
462
|
},
|
|
453
|
-
{
|
|
454
|
-
"include": "#create-buffer"
|
|
455
|
-
},
|
|
456
463
|
{
|
|
457
464
|
"include": "#buffer-name"
|
|
458
465
|
},
|
|
@@ -536,12 +543,6 @@
|
|
|
536
543
|
{
|
|
537
544
|
"include": "#parens"
|
|
538
545
|
},
|
|
539
|
-
{
|
|
540
|
-
"include": "#singlelinecomment"
|
|
541
|
-
},
|
|
542
|
-
{
|
|
543
|
-
"include": "#multilinecomment"
|
|
544
|
-
},
|
|
545
546
|
{
|
|
546
547
|
"include": "#declarations"
|
|
547
548
|
},
|
|
@@ -560,6 +561,9 @@
|
|
|
560
561
|
{
|
|
561
562
|
"include": "#break-by"
|
|
562
563
|
},
|
|
564
|
+
{
|
|
565
|
+
"include": "#new-record"
|
|
566
|
+
},
|
|
563
567
|
{
|
|
564
568
|
"include": "#type-reference"
|
|
565
569
|
},
|
|
@@ -667,8 +671,8 @@
|
|
|
667
671
|
]
|
|
668
672
|
},
|
|
669
673
|
"break-by": {
|
|
670
|
-
"match": "(?i)\\s*((break)\\s+)?(by)\\s+(([
|
|
671
|
-
"
|
|
674
|
+
"match": "(?i)\\s*((break)\\s+)?(by)\\s+(([a-zA-Z][a-zA-Z_\\-#$%]*\\.)?([a-zA-Z][a-zA-Z_\\-#$%]*\\.)([a-zA-Z][a-zA-Z_\\-#$%]*)(\\[\\d+\\])?)\\b",
|
|
675
|
+
"comment": "The match needs a space capture before the BREAK, not a word break",
|
|
672
676
|
"captures": {
|
|
673
677
|
"2": {
|
|
674
678
|
"name": "keyword.other.abl"
|
|
@@ -682,7 +686,7 @@
|
|
|
682
686
|
}
|
|
683
687
|
},
|
|
684
688
|
"preprocessors": {
|
|
685
|
-
"match": "(?i)(
|
|
689
|
+
"match": "(?i)(&window-system|&text-height|&line-number|&batch-mode|&file-name|&undefine|&sequence|&message|defined|&elseif|(?:&scop(?:ed-define|ed-defin|ed-defi|ed-def|ed-de|ed-d|ed-|ed|e)?)|(?:&glob(?:al-define|al-defin|al-defi|al-def|al-de|al-d|al-|al|a)?)|&opsys|&endif|&else|&then|&if)|({&[a-zA-Z0-9_\\-#$%\\s\\(\\)]+})|(&[a-zA-Z0-9_\\-#$%]+)",
|
|
686
690
|
"captures": {
|
|
687
691
|
"1": {
|
|
688
692
|
"name": "storage.type.function.abl"
|
|
@@ -694,12 +698,6 @@
|
|
|
694
698
|
},
|
|
695
699
|
"type-names": {
|
|
696
700
|
"patterns": [
|
|
697
|
-
{
|
|
698
|
-
"include": "#type-name-generic-progress"
|
|
699
|
-
},
|
|
700
|
-
{
|
|
701
|
-
"include": "#type-name-progress"
|
|
702
|
-
},
|
|
703
701
|
{
|
|
704
702
|
"include": "#type-name-generic"
|
|
705
703
|
},
|
|
@@ -743,8 +741,8 @@
|
|
|
743
741
|
},
|
|
744
742
|
"patterns": [
|
|
745
743
|
{
|
|
746
|
-
"comment": "Captures USING foo.bar.* .",
|
|
747
|
-
"match": "(?i)\\s*((([\\w
|
|
744
|
+
"comment": "Captures USING foo.bar.* . Since package names are filesystem names, needs unicode",
|
|
745
|
+
"match": "(?i)\\s*((([\\w#$%]+|progress)(\\.[\\w#$%]+)*)\\.\\*)\\s*",
|
|
748
746
|
"captures": {
|
|
749
747
|
"2": {
|
|
750
748
|
"name": "entity.name.package.abl"
|
|
@@ -777,52 +775,30 @@
|
|
|
777
775
|
}
|
|
778
776
|
]
|
|
779
777
|
},
|
|
780
|
-
"type-name-generic
|
|
781
|
-
"
|
|
782
|
-
"
|
|
778
|
+
"type-name-generic": {
|
|
779
|
+
"comment": "Scope names from https://www.sublimetext.com/docs/scope_naming.html . Types are files, so support unicode",
|
|
780
|
+
"name": "meta.generic.abl",
|
|
781
|
+
"begin": "(?i)\\s*(([\\w#$%\\-]+)(\\.[\\w#$%\\-]+)*\\s*)\\s*(<)",
|
|
783
782
|
"beginCaptures": {
|
|
784
783
|
"1": {
|
|
785
784
|
"name": "entity.name.type.abl"
|
|
785
|
+
},
|
|
786
|
+
"4": {
|
|
787
|
+
"name": "punctuation.definition.generic.begin.abl"
|
|
786
788
|
}
|
|
787
789
|
},
|
|
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": {
|
|
790
|
+
"end": "(>)",
|
|
791
|
+
"endCaptures": {
|
|
799
792
|
"1": {
|
|
800
|
-
"name": "
|
|
793
|
+
"name": "punctuation.definition.generic.end.abl"
|
|
801
794
|
}
|
|
802
795
|
},
|
|
803
|
-
"end": "\\>",
|
|
804
796
|
"patterns": [
|
|
805
797
|
{
|
|
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"
|
|
798
|
+
"include": "#type-name-generic"
|
|
823
799
|
},
|
|
824
800
|
{
|
|
825
|
-
"include": "#
|
|
801
|
+
"include": "#punctuation-comma"
|
|
826
802
|
},
|
|
827
803
|
{
|
|
828
804
|
"include": "#type-name"
|
|
@@ -830,60 +806,18 @@
|
|
|
830
806
|
]
|
|
831
807
|
},
|
|
832
808
|
"type-name": {
|
|
833
|
-
"
|
|
809
|
+
"comment": "Type names are files, so support unicode",
|
|
810
|
+
"match": "(?i)\\b([\\w#$%\\-]+(\\.[\\w#$%\\-]+)*)\\b",
|
|
834
811
|
"captures": {
|
|
835
812
|
"1": {
|
|
836
813
|
"name": "entity.name.type.abl"
|
|
837
814
|
}
|
|
838
815
|
}
|
|
839
816
|
},
|
|
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
817
|
"define-class": {
|
|
818
|
+
"comment": "Type names are files, so support unicode",
|
|
885
819
|
"name": "meta.define.class.abl",
|
|
886
|
-
"begin": "
|
|
820
|
+
"begin": "\\b(?<![#$\\-_%&])([Cc][Ll][Aa][Ss]{2})\\b(?![#$\\-_%&])",
|
|
887
821
|
"beginCaptures": {
|
|
888
822
|
"1": {
|
|
889
823
|
"name": "keyword.other.abl"
|
|
@@ -905,22 +839,7 @@
|
|
|
905
839
|
}
|
|
906
840
|
},
|
|
907
841
|
{
|
|
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"
|
|
842
|
+
"include": "#type-names"
|
|
924
843
|
},
|
|
925
844
|
{
|
|
926
845
|
"include": "#punctuation-comma"
|
|
@@ -931,8 +850,9 @@
|
|
|
931
850
|
]
|
|
932
851
|
},
|
|
933
852
|
"define-interface": {
|
|
853
|
+
"comment": "Type names are files, so support unicode",
|
|
934
854
|
"name": "meta.define.interface.abl",
|
|
935
|
-
"begin": "(?i)\\b(interface)\\s+([\\w
|
|
855
|
+
"begin": "(?i)\\b(interface)\\s+([\\w#$%]+[\\w#$%\\.]*(\\s*<\\s*[\\w#$%\\.]+\\s*\\>)?)",
|
|
936
856
|
"beginCaptures": {
|
|
937
857
|
"1": {
|
|
938
858
|
"name": "keyword.other.abl"
|
|
@@ -959,17 +879,15 @@
|
|
|
959
879
|
{
|
|
960
880
|
"include": "#type-names"
|
|
961
881
|
},
|
|
962
|
-
{
|
|
963
|
-
"include": "#type-name-comma"
|
|
964
|
-
},
|
|
965
882
|
{
|
|
966
883
|
"include": "#punctuation-comma"
|
|
967
884
|
}
|
|
968
885
|
]
|
|
969
886
|
},
|
|
970
887
|
"inherits-implements-type": {
|
|
888
|
+
"comment": "Type names are files, so support unicode",
|
|
971
889
|
"name": "meta.define-type.implements.abl",
|
|
972
|
-
"begin": "(?i)\\s*(implements|inherits)\\s*(([\\w
|
|
890
|
+
"begin": "(?i)\\s*(implements|inherits)\\s*(([\\w#$%]+|progress)(\\.[\\w#$%]+)*(?<!\\.))\\s*",
|
|
973
891
|
"end": "(?i)\\s*(serializable|abstract|final|use-widget-pool|inherits|implements+?)",
|
|
974
892
|
"beginCaptures": {
|
|
975
893
|
"1": {
|
|
@@ -986,7 +904,7 @@
|
|
|
986
904
|
},
|
|
987
905
|
"patterns": [
|
|
988
906
|
{
|
|
989
|
-
"include": "#type-
|
|
907
|
+
"include": "#type-names"
|
|
990
908
|
}
|
|
991
909
|
]
|
|
992
910
|
},
|
|
@@ -994,7 +912,8 @@
|
|
|
994
912
|
"patterns": [
|
|
995
913
|
{
|
|
996
914
|
"name": "meta.define.enum.abl",
|
|
997
|
-
"
|
|
915
|
+
"comment": "Type names are files, so support unicode",
|
|
916
|
+
"match": "(?i)\\b(enum)\\s+([\\w#$%\\.]+)\\s*(flags)?\\s*(:)",
|
|
998
917
|
"captures": {
|
|
999
918
|
"1": {
|
|
1000
919
|
"name": "keyword.other.abl"
|
|
@@ -1031,7 +950,7 @@
|
|
|
1031
950
|
"include": "#numeric"
|
|
1032
951
|
},
|
|
1033
952
|
{
|
|
1034
|
-
"match": "\\b([
|
|
953
|
+
"match": "\\b([a-zA-Z][a-zA-Z0-9_#$%]*)\\b",
|
|
1035
954
|
"captures": {
|
|
1036
955
|
"1": {
|
|
1037
956
|
"name": "entity.name.function.abl"
|
|
@@ -1061,22 +980,7 @@
|
|
|
1061
980
|
"end": "(?=\\()",
|
|
1062
981
|
"patterns": [
|
|
1063
982
|
{
|
|
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"
|
|
983
|
+
"include": "#type-names"
|
|
1080
984
|
},
|
|
1081
985
|
{
|
|
1082
986
|
"include": "#string"
|
|
@@ -1110,7 +1014,7 @@
|
|
|
1110
1014
|
]
|
|
1111
1015
|
},
|
|
1112
1016
|
"find-record": {
|
|
1113
|
-
"match": "(?i)\\s*(find)\\s+(first|last|next|prev|current)?\\s*([
|
|
1017
|
+
"match": "(?i)\\s*(find)\\s+(first|last|next|prev|current)?\\s*([a-zA-Z_][a-zA-Z0-9#$\\-_%&]+(\\.[a-zA-Z_][a-zA-Z0-9#$\\-_%&]*)?)\\s*",
|
|
1114
1018
|
"captures": {
|
|
1115
1019
|
"1": {
|
|
1116
1020
|
"name": "keyword.other.abl"
|
|
@@ -1127,7 +1031,7 @@
|
|
|
1127
1031
|
"comment": "Just a field name",
|
|
1128
1032
|
"patterns": [
|
|
1129
1033
|
{
|
|
1130
|
-
"match": "\\s*([
|
|
1034
|
+
"match": "\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?\\s*(\\[\\d+\\]))\\s*",
|
|
1131
1035
|
"captures": {
|
|
1132
1036
|
"1": {
|
|
1133
1037
|
"name": "storage.data.table.abl"
|
|
@@ -1135,7 +1039,7 @@
|
|
|
1135
1039
|
}
|
|
1136
1040
|
},
|
|
1137
1041
|
{
|
|
1138
|
-
"match": "\\s*([
|
|
1042
|
+
"match": "\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*",
|
|
1139
1043
|
"captures": {
|
|
1140
1044
|
"1": {
|
|
1141
1045
|
"name": "storage.data.table.abl"
|
|
@@ -1145,7 +1049,7 @@
|
|
|
1145
1049
|
]
|
|
1146
1050
|
},
|
|
1147
1051
|
"db-dot-table-dot-field": {
|
|
1148
|
-
"match": "(?i)(?<=^|\\s|\\(|,)(([
|
|
1052
|
+
"match": "(?i)(?<=^|\\s|\\(|,)(([a-zA-Z][a-zA-Z0-9#$\\-_%&]*\\.)?([a-zA-Z_][a-zA-Z0-9#$\\-_%&]*\\.)([a-zA-Z_][a-zA-Z0-9#$\\-_%&]*)(\\[\\d+\\])?)",
|
|
1149
1053
|
"comment": "Looks for format of 'table.field', with an optional preceding 'db.'. This pattern may conflict with type names",
|
|
1150
1054
|
"captures": {
|
|
1151
1055
|
"1": {
|
|
@@ -1154,7 +1058,7 @@
|
|
|
1154
1058
|
}
|
|
1155
1059
|
},
|
|
1156
1060
|
"db-dot-table": {
|
|
1157
|
-
"match": "(?i)\\b([
|
|
1061
|
+
"match": "(?i)\\b([a-zA-Z_][a-zA-Z0-9#$\\-_%&]*(\\.[a-zA-Z_][a-zA-Z0-9#$\\-_%&]*)?)\\b",
|
|
1158
1062
|
"comment": "Looks for format of 'table', with an optional preceding 'db.'. This pattern may conflict with type names",
|
|
1159
1063
|
"captures": {
|
|
1160
1064
|
"1": {
|
|
@@ -1163,7 +1067,7 @@
|
|
|
1163
1067
|
}
|
|
1164
1068
|
},
|
|
1165
1069
|
"break-group": {
|
|
1166
|
-
"match": "(?i)\\s*(first-of|first|last-of|last)\\s*(\\()\\s*([
|
|
1070
|
+
"match": "(?i)\\s*(first-of|first|last-of|last)\\s*(\\()\\s*([a-zA-Z][a-zA-Z#$\\-_%&]*\\.[a-zA-Z_][a-zA-Z#$\\-_%&]*(\\.[a-zA-Z_][a-zA-Z#$\\-_%&]*)?)\\s*(\\))\\s*",
|
|
1167
1071
|
"captures": {
|
|
1168
1072
|
"1": {
|
|
1169
1073
|
"name": "keyword.other.abl"
|
|
@@ -1183,7 +1087,7 @@
|
|
|
1183
1087
|
"patterns": [
|
|
1184
1088
|
{
|
|
1185
1089
|
"comment": " This matches OF <table>",
|
|
1186
|
-
"match": "
|
|
1090
|
+
"match": "\\s*([Oo][Ff])\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s*",
|
|
1187
1091
|
"captures": {
|
|
1188
1092
|
"1": {
|
|
1189
1093
|
"name": "keyword.other.abl"
|
|
@@ -1195,7 +1099,7 @@
|
|
|
1195
1099
|
},
|
|
1196
1100
|
{
|
|
1197
1101
|
"comment": " This matches <table> OF <table>",
|
|
1198
|
-
"match": "(?i)\\s*([
|
|
1102
|
+
"match": "(?i)\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s+(of)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s*",
|
|
1199
1103
|
"captures": {
|
|
1200
1104
|
"1": {
|
|
1201
1105
|
"name": "storage.data.table.abl"
|
|
@@ -1212,7 +1116,7 @@
|
|
|
1212
1116
|
},
|
|
1213
1117
|
"for-join": {
|
|
1214
1118
|
"comment": "Captures something like ', salesrep where' or 'salesrep where', when the latter is at the beginning of a line. 'OF' phrases handled by of-phrase",
|
|
1215
|
-
"match": "(?i)(?<=,|^)\\s*([
|
|
1119
|
+
"match": "(?i)(?<=,|^)\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s+(?=where|no-lock|(exclusive-l(?:ock|oc|o)?)|(share(?:-lock|-loc|-lo|-l|-)?)|tenant-where|use-index|table-scan|using|(no-prefe(?:tch|tc|t)?)|left|outer-join|break|by|(transact(?:ion|io|i)?))\\s*",
|
|
1216
1120
|
"captures": {
|
|
1217
1121
|
"1": {
|
|
1218
1122
|
"name": "storage.data.table.abl"
|
|
@@ -1229,7 +1133,7 @@
|
|
|
1229
1133
|
"name": "storage.data.table.abl"
|
|
1230
1134
|
}
|
|
1231
1135
|
},
|
|
1232
|
-
"end": "(?i)\\s*(?=where|no-lock|exclusive-
|
|
1136
|
+
"end": "(?i)\\s*(?=where|no-lock|(exclusive-l(?:ock|oc|o)?)|(share(?:-lock|-loc|-lo|-l|-)?)|tenant-where|use-index|table-scan|using|(no-prefe(?:tch|tc|t)?)|left|outer-join|break|by|(transact(?:ion|io|i)?)|,|:)\\s*",
|
|
1233
1137
|
"patterns": [
|
|
1234
1138
|
{
|
|
1235
1139
|
"include": "#fields-except-list"
|
|
@@ -1239,7 +1143,7 @@
|
|
|
1239
1143
|
},
|
|
1240
1144
|
{
|
|
1241
1145
|
"comment": "Intended to catch joins like ', table of table2', since the first table name is matched by the begin",
|
|
1242
|
-
"match": "(?i)\\s*(of)\\s+([
|
|
1146
|
+
"match": "(?i)\\s*(of)\\s+([a-zA-Z][a-zA-Z_\\-#$%]*(\\.[a-zA-Z][a-zA-Z_\\-#$%]*)?)\\s*",
|
|
1243
1147
|
"captures": {
|
|
1244
1148
|
"1": {
|
|
1245
1149
|
"name": "keyword.other.abl"
|
|
@@ -1250,7 +1154,7 @@
|
|
|
1250
1154
|
}
|
|
1251
1155
|
},
|
|
1252
1156
|
{
|
|
1253
|
-
"match": "\\s*([
|
|
1157
|
+
"match": "\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*",
|
|
1254
1158
|
"comment": "Matches the table name in the case of eg ',each table' ",
|
|
1255
1159
|
"captures": {
|
|
1256
1160
|
"1": {
|
|
@@ -1261,13 +1165,13 @@
|
|
|
1261
1165
|
]
|
|
1262
1166
|
},
|
|
1263
1167
|
"for-each-table": {
|
|
1264
|
-
"begin": "(?i)(?<=\\s+|^)(for|
|
|
1168
|
+
"begin": "(?i)(?<=\\s+|^)(for|(presel(?:ect|ec|e)?))[\\s+|$]",
|
|
1265
1169
|
"beginCaptures": {
|
|
1266
1170
|
"1": {
|
|
1267
1171
|
"name": "keyword.other.abl"
|
|
1268
1172
|
}
|
|
1269
1173
|
},
|
|
1270
|
-
"end": "(?i)\\s*(?=where|no-lock|exclusive-
|
|
1174
|
+
"end": "(?i)\\s*(?=where|no-lock|(exclusive-l(?:ock|oc|o)?)|(share(?:-lock|-loc|-lo|-l|-)?)|tenant-where|use-index|table-scan|using|(no-prefe(?:tch|tc|t)?)|left|outer-join|break|by|(transact(?:ion|io|i)?)|,|:|on)\\s*",
|
|
1271
1175
|
"patterns": [
|
|
1272
1176
|
{
|
|
1273
1177
|
"match": "(?i)\\s*(each|first|last|of)\\s*",
|
|
@@ -1316,12 +1220,15 @@
|
|
|
1316
1220
|
},
|
|
1317
1221
|
{
|
|
1318
1222
|
"include": "#field-name"
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
"include": "#punctuation-comma"
|
|
1319
1226
|
}
|
|
1320
1227
|
]
|
|
1321
1228
|
},
|
|
1322
1229
|
"record-buffer-functions": {
|
|
1323
1230
|
"comment": "this capture does not include the NOT function since it is impossible to determine whether this is a new class or a new record.",
|
|
1324
|
-
"match": "(?i)\\b(
|
|
1231
|
+
"match": "(?i)\\b((?:avail(?:able|abl|ab|a)?)|locked|ambiguous)\\s*(\\()?\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*(\\))?",
|
|
1325
1232
|
"captures": {
|
|
1326
1233
|
"1": {
|
|
1327
1234
|
"name": "support.function.abl"
|
|
@@ -1354,13 +1261,10 @@
|
|
|
1354
1261
|
},
|
|
1355
1262
|
"type-argument-function": {
|
|
1356
1263
|
"name": "meta.function-call.abl",
|
|
1357
|
-
"begin": "(?i)\\s*(cast|type-of)\\s*(
|
|
1264
|
+
"begin": "(?i)\\s*(cast|type-of)\\s*(?=\\()",
|
|
1358
1265
|
"beginCaptures": {
|
|
1359
1266
|
"1": {
|
|
1360
1267
|
"name": "support.function.abl"
|
|
1361
|
-
},
|
|
1362
|
-
"2": {
|
|
1363
|
-
"name": "meta.brace.round.js"
|
|
1364
1268
|
}
|
|
1365
1269
|
},
|
|
1366
1270
|
"end": "(?<=\\))",
|
|
@@ -1371,88 +1275,47 @@
|
|
|
1371
1275
|
},
|
|
1372
1276
|
"patterns": [
|
|
1373
1277
|
{
|
|
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": {
|
|
1278
|
+
"begin": "(?<=\\()",
|
|
1279
|
+
"end": "(,)",
|
|
1280
|
+
"endCaptures": {
|
|
1388
1281
|
"1": {
|
|
1389
|
-
"name": "variable.other.abl"
|
|
1390
|
-
},
|
|
1391
|
-
"3": {
|
|
1392
1282
|
"name": "punctuation.separator.comma.abl"
|
|
1393
1283
|
}
|
|
1394
|
-
}
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
"captures": {
|
|
1399
|
-
"1": {
|
|
1400
|
-
"name": "entity.name.function.abl"
|
|
1284
|
+
},
|
|
1285
|
+
"patterns": [
|
|
1286
|
+
{
|
|
1287
|
+
"include": "#function-arguments-no-parens"
|
|
1401
1288
|
},
|
|
1402
|
-
|
|
1403
|
-
"
|
|
1289
|
+
{
|
|
1290
|
+
"include": "#parens"
|
|
1404
1291
|
}
|
|
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"
|
|
1292
|
+
]
|
|
1436
1293
|
},
|
|
1437
1294
|
{
|
|
1438
|
-
"include": "#type-
|
|
1295
|
+
"include": "#type-names"
|
|
1439
1296
|
},
|
|
1440
1297
|
{
|
|
1441
|
-
"include": "#
|
|
1298
|
+
"include": "#comment"
|
|
1442
1299
|
},
|
|
1443
1300
|
{
|
|
1444
|
-
"include": "#
|
|
1301
|
+
"include": "#string"
|
|
1445
1302
|
},
|
|
1446
1303
|
{
|
|
1447
1304
|
"include": "#parens"
|
|
1448
1305
|
},
|
|
1449
1306
|
{
|
|
1450
1307
|
"include": "#punctuation-comma"
|
|
1308
|
+
},
|
|
1309
|
+
{
|
|
1310
|
+
"include": "#preprocessors"
|
|
1451
1311
|
}
|
|
1452
1312
|
]
|
|
1453
1313
|
},
|
|
1454
1314
|
"code-block": {
|
|
1455
1315
|
"patterns": [
|
|
1316
|
+
{
|
|
1317
|
+
"include": "#create-statement"
|
|
1318
|
+
},
|
|
1456
1319
|
{
|
|
1457
1320
|
"include": "#record-buffer-functions"
|
|
1458
1321
|
},
|
|
@@ -1504,6 +1367,9 @@
|
|
|
1504
1367
|
{
|
|
1505
1368
|
"include": "#property-call"
|
|
1506
1369
|
},
|
|
1370
|
+
{
|
|
1371
|
+
"include": "#new-record"
|
|
1372
|
+
},
|
|
1507
1373
|
{
|
|
1508
1374
|
"include": "#type-reference"
|
|
1509
1375
|
},
|
|
@@ -1571,7 +1437,7 @@
|
|
|
1571
1437
|
}
|
|
1572
1438
|
},
|
|
1573
1439
|
"property-get-set-block": {
|
|
1574
|
-
"begin": "(?i)\\s*(
|
|
1440
|
+
"begin": "(?i)\\s*(?<!:)\\s*(get|set)\\b",
|
|
1575
1441
|
"beginCaptures": {
|
|
1576
1442
|
"1": {
|
|
1577
1443
|
"name": "keyword.other.abl"
|
|
@@ -1600,7 +1466,7 @@
|
|
|
1600
1466
|
]
|
|
1601
1467
|
},
|
|
1602
1468
|
"parameter-as": {
|
|
1603
|
-
"begin": "
|
|
1469
|
+
"begin": "\\s*([a-zA-Z0-9_\\-#$%]+)\\s+([Aa][Ss])\\s+",
|
|
1604
1470
|
"beginCaptures": {
|
|
1605
1471
|
"1": {
|
|
1606
1472
|
"name": "variable.parameter.abl"
|
|
@@ -1609,10 +1475,10 @@
|
|
|
1609
1475
|
"name": "keyword.other.abl"
|
|
1610
1476
|
}
|
|
1611
1477
|
},
|
|
1612
|
-
"end": "(?=\\s|\\)
|
|
1478
|
+
"end": "(?=\\s|\\)|\\.|,)",
|
|
1613
1479
|
"patterns": [
|
|
1614
1480
|
{
|
|
1615
|
-
"match": "
|
|
1481
|
+
"match": "\\s*([Cc][Ll][Aa][Ss]{2})\\s*",
|
|
1616
1482
|
"captures": {
|
|
1617
1483
|
"1": {
|
|
1618
1484
|
"name": "keyword.other.abl"
|
|
@@ -1626,13 +1492,7 @@
|
|
|
1626
1492
|
"include": "#dll-type"
|
|
1627
1493
|
},
|
|
1628
1494
|
{
|
|
1629
|
-
"include": "#type-
|
|
1630
|
-
},
|
|
1631
|
-
{
|
|
1632
|
-
"include": "#type-name-generic"
|
|
1633
|
-
},
|
|
1634
|
-
{
|
|
1635
|
-
"include": "#type-name"
|
|
1495
|
+
"include": "#type-names"
|
|
1636
1496
|
},
|
|
1637
1497
|
{
|
|
1638
1498
|
"include": "#parens"
|
|
@@ -1648,8 +1508,69 @@
|
|
|
1648
1508
|
}
|
|
1649
1509
|
]
|
|
1650
1510
|
},
|
|
1511
|
+
"input-output-from-to": {
|
|
1512
|
+
"begin": "(?i)\\b(input|output)\\s+((stream|stream-handle)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\s+)?(from|to)",
|
|
1513
|
+
"beginCaptures": {
|
|
1514
|
+
"1": {
|
|
1515
|
+
"name": "keyword.other.abl"
|
|
1516
|
+
},
|
|
1517
|
+
"3": {
|
|
1518
|
+
"name": "keyword.other.abl"
|
|
1519
|
+
},
|
|
1520
|
+
"4": {
|
|
1521
|
+
"patterns": [
|
|
1522
|
+
{
|
|
1523
|
+
"include": "#variable-name"
|
|
1524
|
+
}
|
|
1525
|
+
]
|
|
1526
|
+
},
|
|
1527
|
+
"5": {
|
|
1528
|
+
"name": "keyword.other.abl"
|
|
1529
|
+
}
|
|
1530
|
+
},
|
|
1531
|
+
"end": "(?i)(?=\\.|target|source)",
|
|
1532
|
+
"comment": "End with TARGET or SOURCE since these are the only options that take variables as arguments, and they must be the last options",
|
|
1533
|
+
"patterns": [
|
|
1534
|
+
{
|
|
1535
|
+
"include": "#type-member-call"
|
|
1536
|
+
},
|
|
1537
|
+
{
|
|
1538
|
+
"include": "#abl-functions"
|
|
1539
|
+
},
|
|
1540
|
+
{
|
|
1541
|
+
"include": "#abl-system-handles"
|
|
1542
|
+
},
|
|
1543
|
+
{
|
|
1544
|
+
"include": "#keywords"
|
|
1545
|
+
},
|
|
1546
|
+
{
|
|
1547
|
+
"include": "#comment"
|
|
1548
|
+
},
|
|
1549
|
+
{
|
|
1550
|
+
"include": "#array-literal"
|
|
1551
|
+
},
|
|
1552
|
+
{
|
|
1553
|
+
"include": "#preprocessors"
|
|
1554
|
+
},
|
|
1555
|
+
{
|
|
1556
|
+
"include": "#opsys-device-name"
|
|
1557
|
+
},
|
|
1558
|
+
{
|
|
1559
|
+
"include": "#expression"
|
|
1560
|
+
}
|
|
1561
|
+
]
|
|
1562
|
+
},
|
|
1563
|
+
"opsys-device-name": {
|
|
1564
|
+
"match": "([_\\w\\/\\-\\\\$:\\.]+)(?<!\\.)",
|
|
1565
|
+
"comment": "For this regex to work, a device name may have periods in its name, but cannot end in one. File names support unicode",
|
|
1566
|
+
"captures": {
|
|
1567
|
+
"1": {
|
|
1568
|
+
"name": "storage.other.opsys-device.abl"
|
|
1569
|
+
}
|
|
1570
|
+
}
|
|
1571
|
+
},
|
|
1651
1572
|
"define-variable-name": {
|
|
1652
|
-
"match": "(?i)(var|
|
|
1573
|
+
"match": "(?i)(var(?:iable|iabl|iab|ia|i)?)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\s*",
|
|
1653
1574
|
"captures": {
|
|
1654
1575
|
"1": {
|
|
1655
1576
|
"name": "keyword.other.abl"
|
|
@@ -1660,7 +1581,7 @@
|
|
|
1660
1581
|
}
|
|
1661
1582
|
},
|
|
1662
1583
|
"variable-as": {
|
|
1663
|
-
"match": "
|
|
1584
|
+
"match": "\\s*([a-zA-Z0-9_\\-#$%\\-]+)\\s+([Aa][Ss])\\s*",
|
|
1664
1585
|
"captures": {
|
|
1665
1586
|
"1": {
|
|
1666
1587
|
"name": "variable.other.abl"
|
|
@@ -1671,7 +1592,7 @@
|
|
|
1671
1592
|
}
|
|
1672
1593
|
},
|
|
1673
1594
|
"variable-like": {
|
|
1674
|
-
"match": "(?i)\\s*([
|
|
1595
|
+
"match": "(?i)\\s*([a-zA-Z0-9_\\-#$%\\-]+)\\s+(?=like)\\s*",
|
|
1675
1596
|
"captures": {
|
|
1676
1597
|
"1": {
|
|
1677
1598
|
"name": "variable.other.abl"
|
|
@@ -1679,7 +1600,7 @@
|
|
|
1679
1600
|
}
|
|
1680
1601
|
},
|
|
1681
1602
|
"property-as": {
|
|
1682
|
-
"match": "
|
|
1603
|
+
"match": "\\s*([a-zA-Z0-9_\\-#$%]+)\\s+([Aa][Ss])\\s*",
|
|
1683
1604
|
"captures": {
|
|
1684
1605
|
"1": {
|
|
1685
1606
|
"name": "entity.name.function.abl"
|
|
@@ -1691,7 +1612,7 @@
|
|
|
1691
1612
|
},
|
|
1692
1613
|
"field-as-object": {
|
|
1693
1614
|
"comment": "This is to capture 'FIELD x AS Object'. As of OE 12.7 only Progress.Lang.Object is allowed as a type name. If/when this changes, this regex becomes trickier",
|
|
1694
|
-
"match": "(?i)\\s*(progress\\.lang\\.object
|
|
1615
|
+
"match": "(?i)\\s*((progress\\.lang\\.)?object)\\s*",
|
|
1695
1616
|
"captures": {
|
|
1696
1617
|
"1": {
|
|
1697
1618
|
"name": "entity.name.type.abl"
|
|
@@ -1710,7 +1631,7 @@
|
|
|
1710
1631
|
},
|
|
1711
1632
|
"annotation-simple": {
|
|
1712
1633
|
"name": "meta.declaration.annotation.abl",
|
|
1713
|
-
"match": "(
|
|
1634
|
+
"match": "(^|\\s*)(\\@[a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\s*(?=\\.)",
|
|
1714
1635
|
"captures": {
|
|
1715
1636
|
"2": {
|
|
1716
1637
|
"name": "entity.name.tag.abl"
|
|
@@ -1719,7 +1640,7 @@
|
|
|
1719
1640
|
},
|
|
1720
1641
|
"annotation-attributes": {
|
|
1721
1642
|
"name": "meta.declaration.annotation.abl",
|
|
1722
|
-
"begin": "(
|
|
1643
|
+
"begin": "(^|\\s+)(\\@[a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\s*(?=\\()",
|
|
1723
1644
|
"beginCaptures": {
|
|
1724
1645
|
"2": {
|
|
1725
1646
|
"name": "entity.name.tag.abl"
|
|
@@ -1731,7 +1652,7 @@
|
|
|
1731
1652
|
"include": "#parens"
|
|
1732
1653
|
},
|
|
1733
1654
|
{
|
|
1734
|
-
"match": "
|
|
1655
|
+
"match": "\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%&]+)(?=[\\=\\s$])",
|
|
1735
1656
|
"captures": {
|
|
1736
1657
|
"1": {
|
|
1737
1658
|
"name": "entity.other.attribute-name.abl"
|
|
@@ -1751,7 +1672,7 @@
|
|
|
1751
1672
|
},
|
|
1752
1673
|
"define": {
|
|
1753
1674
|
"name": "meta.define.abl",
|
|
1754
|
-
"begin": "(?i)\\s*(
|
|
1675
|
+
"begin": "(?i)\\s*(def(?:ine|in|i)?)\\b",
|
|
1755
1676
|
"beginCaptures": {
|
|
1756
1677
|
"1": {
|
|
1757
1678
|
"name": "keyword.other.abl"
|
|
@@ -1765,7 +1686,7 @@
|
|
|
1765
1686
|
},
|
|
1766
1687
|
"patterns": [
|
|
1767
1688
|
{
|
|
1768
|
-
"match": "(?i)\\s*(new|
|
|
1689
|
+
"match": "(?i)\\s*(new|(glob(?:al|a|)?)|shared)\\s*",
|
|
1769
1690
|
"captures": {
|
|
1770
1691
|
"1": {
|
|
1771
1692
|
"name": "keyword.other.abl"
|
|
@@ -1793,6 +1714,15 @@
|
|
|
1793
1714
|
{
|
|
1794
1715
|
"include": "#define-dataset"
|
|
1795
1716
|
},
|
|
1717
|
+
{
|
|
1718
|
+
"include": "#define-query"
|
|
1719
|
+
},
|
|
1720
|
+
{
|
|
1721
|
+
"include": "#define-browse"
|
|
1722
|
+
},
|
|
1723
|
+
{
|
|
1724
|
+
"include": "#fields-except-list"
|
|
1725
|
+
},
|
|
1796
1726
|
{
|
|
1797
1727
|
"include": "#define-event"
|
|
1798
1728
|
},
|
|
@@ -1868,9 +1798,6 @@
|
|
|
1868
1798
|
{
|
|
1869
1799
|
"include": "#dll-type"
|
|
1870
1800
|
},
|
|
1871
|
-
{
|
|
1872
|
-
"include": "#type-name-progress"
|
|
1873
|
-
},
|
|
1874
1801
|
{
|
|
1875
1802
|
"include": "#abl-system-handles"
|
|
1876
1803
|
},
|
|
@@ -1899,15 +1826,12 @@
|
|
|
1899
1826
|
"include": "#label-variable"
|
|
1900
1827
|
},
|
|
1901
1828
|
{
|
|
1902
|
-
"include": "#type-
|
|
1903
|
-
},
|
|
1904
|
-
{
|
|
1905
|
-
"include": "#type-name"
|
|
1829
|
+
"include": "#type-names"
|
|
1906
1830
|
}
|
|
1907
1831
|
]
|
|
1908
1832
|
},
|
|
1909
1833
|
"define-field": {
|
|
1910
|
-
"match": "(?i)\\s*(field)\\s+([
|
|
1834
|
+
"match": "(?i)\\s*(field)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*)\\s*",
|
|
1911
1835
|
"captures": {
|
|
1912
1836
|
"1": {
|
|
1913
1837
|
"name": "keyword.other.abl"
|
|
@@ -1917,18 +1841,115 @@
|
|
|
1917
1841
|
}
|
|
1918
1842
|
}
|
|
1919
1843
|
},
|
|
1844
|
+
"cache-value": {
|
|
1845
|
+
"match": "\\b([Cc][Aa][Cc][Hh][Ee])\\s+(0[xX]\\h+)?|(\\-?[0-9]+(\\.[0-9]+)?)\\b",
|
|
1846
|
+
"captures": {
|
|
1847
|
+
"1": {
|
|
1848
|
+
"name": "keyword.other.abl"
|
|
1849
|
+
},
|
|
1850
|
+
"3": {
|
|
1851
|
+
"name": "constant.numeric.source.abl"
|
|
1852
|
+
}
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1855
|
+
},
|
|
1856
|
+
"define-query": {
|
|
1857
|
+
"begin": "(?i)\\b(query)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\s*",
|
|
1858
|
+
"beginCaptures": {
|
|
1859
|
+
"1": {
|
|
1860
|
+
"name": "keyword.other.abl"
|
|
1861
|
+
},
|
|
1862
|
+
"2": {
|
|
1863
|
+
"name": "variable.other.abl"
|
|
1864
|
+
}
|
|
1865
|
+
},
|
|
1866
|
+
"end": "(?i)\\b(?=\\.)\\b",
|
|
1867
|
+
"patterns": [
|
|
1868
|
+
{
|
|
1869
|
+
"match": "(?i)\\b(for|scrolling|(rcode-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?))\\b",
|
|
1870
|
+
"captures": {
|
|
1871
|
+
"1": {
|
|
1872
|
+
"name": "keyword.other.abl"
|
|
1873
|
+
}
|
|
1874
|
+
}
|
|
1875
|
+
},
|
|
1876
|
+
{
|
|
1877
|
+
"include": "#cache-value"
|
|
1878
|
+
},
|
|
1879
|
+
{
|
|
1880
|
+
"include": "#db-dot-table"
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
"include": "#fields-except-list"
|
|
1884
|
+
},
|
|
1885
|
+
{
|
|
1886
|
+
"include": "#punctuation-comma"
|
|
1887
|
+
},
|
|
1888
|
+
{
|
|
1889
|
+
"include": "#expression"
|
|
1890
|
+
},
|
|
1891
|
+
{
|
|
1892
|
+
"include": "#keywords"
|
|
1893
|
+
}
|
|
1894
|
+
]
|
|
1895
|
+
},
|
|
1896
|
+
"define-browse": {
|
|
1897
|
+
"begin": "(?i)\\b(browse)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\s*",
|
|
1898
|
+
"beginCaptures": {
|
|
1899
|
+
"1": {
|
|
1900
|
+
"name": "keyword.other.abl"
|
|
1901
|
+
},
|
|
1902
|
+
"2": {
|
|
1903
|
+
"name": "variable.other.abl"
|
|
1904
|
+
}
|
|
1905
|
+
},
|
|
1906
|
+
"end": "(?i)\\b(?=\\.)",
|
|
1907
|
+
"patterns": [
|
|
1908
|
+
{
|
|
1909
|
+
"match": "\\b([Qq][Uu][Ee][Rr][Yy])\\s+([a-zA-Z][a-zA-Z0-9\\-_#$%\\&]+)\\b",
|
|
1910
|
+
"captures": {
|
|
1911
|
+
"1": {
|
|
1912
|
+
"name": "keyword.other.abl"
|
|
1913
|
+
},
|
|
1914
|
+
"2": {
|
|
1915
|
+
"name": "variable.other.abl"
|
|
1916
|
+
}
|
|
1917
|
+
}
|
|
1918
|
+
},
|
|
1919
|
+
{
|
|
1920
|
+
"match": "(?i)\\b((share(?:-lock|-loc|-lo|-l|-)?)|(exclusive-l(?:ock|oc|o)?)|no-lock|no-wait|(disp(?:lay|la|l)?))\\b",
|
|
1921
|
+
"captures": {
|
|
1922
|
+
"1": {
|
|
1923
|
+
"name": "keyword.other.abl"
|
|
1924
|
+
}
|
|
1925
|
+
}
|
|
1926
|
+
},
|
|
1927
|
+
{
|
|
1928
|
+
"include": "#comment"
|
|
1929
|
+
},
|
|
1930
|
+
{
|
|
1931
|
+
"include": "#db-dot-table-dot-field"
|
|
1932
|
+
},
|
|
1933
|
+
{
|
|
1934
|
+
"include": "#keywords"
|
|
1935
|
+
},
|
|
1936
|
+
{
|
|
1937
|
+
"include": "#expression"
|
|
1938
|
+
}
|
|
1939
|
+
]
|
|
1940
|
+
},
|
|
1920
1941
|
"define-parameter": {
|
|
1921
|
-
"begin": "(?i)\\b(
|
|
1942
|
+
"begin": "(?i)\\b(param(?:eter|ete|et|e)?)\\b",
|
|
1922
1943
|
"beginCaptures": {
|
|
1923
1944
|
"1": {
|
|
1924
1945
|
"name": "keyword.other.abl"
|
|
1925
1946
|
}
|
|
1926
1947
|
},
|
|
1927
|
-
"end": "(?i)(?=\\.)|\\b(?=
|
|
1948
|
+
"end": "(?i)(?=\\.)|\\b(?=(bgc(?:olor|olo|ol|o)?)|(column-lab(?:el|e)?)|context-help-id|dcolor|decimals|drop-target|extent|font|(fgc(?:olor|olo|ol|o)?)|(form(?:at|a)?)|initial|label|(mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|no-undo|not|(case-sen(?:sitive|sitiv|siti|sit|si|s)?)|(pfc(?:olor|olo|ol|o)?)|view-as|triggers)\\b",
|
|
1928
1949
|
"comment": "The end capture does a lookahead on . so that the 'define' capture can end ",
|
|
1929
1950
|
"patterns": [
|
|
1930
1951
|
{
|
|
1931
|
-
"match": "(?i)\\b(table)\\s+(for)\\s+([
|
|
1952
|
+
"match": "(?i)\\b(table)\\s+(for)\\s+([a-zA-Z][a-zA-Z_\\-#$%]*(\\.[a-zA-Z][a-zA-Z_\\-#$%]*)?)\\b",
|
|
1932
1953
|
"captures": {
|
|
1933
1954
|
"1": {
|
|
1934
1955
|
"name": "keyword.other.abl"
|
|
@@ -1942,7 +1963,7 @@
|
|
|
1942
1963
|
}
|
|
1943
1964
|
},
|
|
1944
1965
|
{
|
|
1945
|
-
"match": "(?i)\\b(table-handle|dataset-handle)\\s+([a-zA-
|
|
1966
|
+
"match": "(?i)\\b(table-handle|dataset-handle)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\b",
|
|
1946
1967
|
"captures": {
|
|
1947
1968
|
"1": {
|
|
1948
1969
|
"name": "keyword.other.abl"
|
|
@@ -1953,7 +1974,7 @@
|
|
|
1953
1974
|
}
|
|
1954
1975
|
},
|
|
1955
1976
|
{
|
|
1956
|
-
"match": "(?i)\\b(dataset)\\s+(for)\\s+([
|
|
1977
|
+
"match": "(?i)\\b(dataset)\\s+(for)\\s+([a-zA-Z_\\-#$%]+(\\.[a-zA-Z_\\-#$%]+)?)\\b",
|
|
1957
1978
|
"captures": {
|
|
1958
1979
|
"1": {
|
|
1959
1980
|
"name": "keyword.other.abl"
|
|
@@ -1978,7 +1999,7 @@
|
|
|
1978
1999
|
]
|
|
1979
2000
|
},
|
|
1980
2001
|
"define-property": {
|
|
1981
|
-
"begin": "(?i)\\b(property
|
|
2002
|
+
"begin": "(?i)\\b(property)\\b",
|
|
1982
2003
|
"beginCaptures": {
|
|
1983
2004
|
"1": {
|
|
1984
2005
|
"name": "keyword.other.abl"
|
|
@@ -1994,64 +2015,146 @@
|
|
|
1994
2015
|
"include": "#comment"
|
|
1995
2016
|
},
|
|
1996
2017
|
{
|
|
1997
|
-
"include": "#primitive-type"
|
|
2018
|
+
"include": "#primitive-type"
|
|
2019
|
+
},
|
|
2020
|
+
{
|
|
2021
|
+
"include": "#extent"
|
|
2022
|
+
},
|
|
2023
|
+
{
|
|
2024
|
+
"include": "#decimals"
|
|
2025
|
+
},
|
|
2026
|
+
{
|
|
2027
|
+
"include": "#array-literal"
|
|
2028
|
+
},
|
|
2029
|
+
{
|
|
2030
|
+
"include": "#timestamp-constant"
|
|
2031
|
+
},
|
|
2032
|
+
{
|
|
2033
|
+
"include": "#numeric"
|
|
2034
|
+
},
|
|
2035
|
+
{
|
|
2036
|
+
"include": "#keywords"
|
|
2037
|
+
},
|
|
2038
|
+
{
|
|
2039
|
+
"include": "#string"
|
|
2040
|
+
},
|
|
2041
|
+
{
|
|
2042
|
+
"include": "#type-names"
|
|
2043
|
+
}
|
|
2044
|
+
]
|
|
2045
|
+
},
|
|
2046
|
+
"buffer-name": {
|
|
2047
|
+
"match": "(?i)\\b(buffer)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)",
|
|
2048
|
+
"captures": {
|
|
2049
|
+
"1": {
|
|
2050
|
+
"name": "keyword.other.abl"
|
|
2051
|
+
},
|
|
2052
|
+
"2": {
|
|
2053
|
+
"name": "storage.data.table.abl"
|
|
2054
|
+
}
|
|
2055
|
+
}
|
|
2056
|
+
},
|
|
2057
|
+
"temp-table-name": {
|
|
2058
|
+
"match": "(?i)\\b(temp-table)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*)",
|
|
2059
|
+
"captures": {
|
|
2060
|
+
"1": {
|
|
2061
|
+
"name": "keyword.other.abl"
|
|
2062
|
+
},
|
|
2063
|
+
"2": {
|
|
2064
|
+
"name": "storage.data.table.abl"
|
|
2065
|
+
}
|
|
2066
|
+
}
|
|
2067
|
+
},
|
|
2068
|
+
"create-widget": {
|
|
2069
|
+
"match": "(?i)\\s*(create)\\s+(button|combo-box|(?:control-fram(?:e)?)|dialog-box|editor|fill-in|(?:fram(?:e)?)|image|menu|menu-item|radio-set|(?:rect(?:angle|angl|ang|an|a)?)|selection-list|slider|sub-menu|text|toggle-box|window)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\b",
|
|
2070
|
+
"captures": {
|
|
2071
|
+
"1": {
|
|
2072
|
+
"name": "keyword.other.abl"
|
|
2073
|
+
},
|
|
2074
|
+
"2": {
|
|
2075
|
+
"name": "keyword.other.abl"
|
|
2076
|
+
},
|
|
2077
|
+
"3": {
|
|
2078
|
+
"name": "variable.other.abl"
|
|
2079
|
+
}
|
|
2080
|
+
}
|
|
2081
|
+
},
|
|
2082
|
+
"create-statement": {
|
|
2083
|
+
"patterns": [
|
|
2084
|
+
{
|
|
2085
|
+
"include": "#create-buffer"
|
|
1998
2086
|
},
|
|
1999
2087
|
{
|
|
2000
|
-
"include": "#
|
|
2088
|
+
"include": "#create-alias"
|
|
2001
2089
|
},
|
|
2002
2090
|
{
|
|
2003
|
-
"include": "#
|
|
2091
|
+
"include": "#create-widget"
|
|
2004
2092
|
},
|
|
2005
2093
|
{
|
|
2006
|
-
"include": "#
|
|
2094
|
+
"include": "#create-with-expression"
|
|
2007
2095
|
},
|
|
2008
2096
|
{
|
|
2009
|
-
"include": "#
|
|
2097
|
+
"include": "#create-record"
|
|
2098
|
+
}
|
|
2099
|
+
]
|
|
2100
|
+
},
|
|
2101
|
+
"create-record": {
|
|
2102
|
+
"match": "(?i)\\s*(create)\\s+([a-zA-Z][a-zA-Z_\\-#$%]*(\\.[a-zA-Z][a-zA-Z_\\-#$%]*)?)\\s*((for)\\s+(tenant))?\\s*",
|
|
2103
|
+
"captures": {
|
|
2104
|
+
"1": {
|
|
2105
|
+
"name": "keyword.other.abl"
|
|
2010
2106
|
},
|
|
2011
|
-
{
|
|
2012
|
-
"
|
|
2107
|
+
"2": {
|
|
2108
|
+
"name": "storage.data.table.abl"
|
|
2013
2109
|
},
|
|
2014
|
-
{
|
|
2015
|
-
"
|
|
2016
|
-
"include": "#type-name-generic-progress"
|
|
2110
|
+
"5": {
|
|
2111
|
+
"name": "keyword.other.abl"
|
|
2017
2112
|
},
|
|
2018
|
-
{
|
|
2019
|
-
"
|
|
2020
|
-
|
|
2113
|
+
"6": {
|
|
2114
|
+
"name": "keyword.other.abl"
|
|
2115
|
+
}
|
|
2116
|
+
}
|
|
2117
|
+
},
|
|
2118
|
+
"create-alias": {
|
|
2119
|
+
"begin": "(?i)\\s*(create)\\s+(alias)\\s*",
|
|
2120
|
+
"beginCaptures": {
|
|
2121
|
+
"1": {
|
|
2122
|
+
"name": "keyword.other.abl"
|
|
2021
2123
|
},
|
|
2124
|
+
"2": {
|
|
2125
|
+
"name": "keyword.other.abl"
|
|
2126
|
+
}
|
|
2127
|
+
},
|
|
2128
|
+
"end": "(=\\.)",
|
|
2129
|
+
"patterns": [
|
|
2022
2130
|
{
|
|
2023
2131
|
"include": "#keywords"
|
|
2024
2132
|
},
|
|
2025
2133
|
{
|
|
2026
|
-
"include": "#
|
|
2134
|
+
"include": "#abl-functions"
|
|
2027
2135
|
},
|
|
2028
2136
|
{
|
|
2029
|
-
"
|
|
2137
|
+
"match": "\\b([a-zA-Z0-9][a-zA-Z0-9_\\-]*)\\b",
|
|
2138
|
+
"captures": {
|
|
2139
|
+
"1": {
|
|
2140
|
+
"name": "storage.data.database.abl"
|
|
2141
|
+
}
|
|
2142
|
+
}
|
|
2030
2143
|
},
|
|
2031
2144
|
{
|
|
2032
|
-
"include": "#
|
|
2145
|
+
"include": "#expression"
|
|
2033
2146
|
}
|
|
2034
2147
|
]
|
|
2035
2148
|
},
|
|
2036
|
-
"
|
|
2037
|
-
"
|
|
2149
|
+
"create-with-expression": {
|
|
2150
|
+
"comment": "The variable, temp-table field, etc used to store the created expression, will be dealt with by other scopes",
|
|
2151
|
+
"match": "(?i)\\s*(create)\\s+(browse|call|client-principal|database|dataset|data-source|query|sax-attributes|sax-reader|sax-writer|server|server-socket|soap-header|soap-header-entryref|socket|temp-table|widget-pool|x-document|x-noderef)\\s*",
|
|
2038
2152
|
"captures": {
|
|
2039
2153
|
"1": {
|
|
2040
2154
|
"name": "keyword.other.abl"
|
|
2041
2155
|
},
|
|
2042
2156
|
"2": {
|
|
2043
|
-
"name": "storage.data.table.abl"
|
|
2044
|
-
}
|
|
2045
|
-
}
|
|
2046
|
-
},
|
|
2047
|
-
"temp-table-name": {
|
|
2048
|
-
"match": "(?i)\\b(temp-table)\\s+([\\w\\-#$%]+)",
|
|
2049
|
-
"captures": {
|
|
2050
|
-
"1": {
|
|
2051
2157
|
"name": "keyword.other.abl"
|
|
2052
|
-
},
|
|
2053
|
-
"2": {
|
|
2054
|
-
"name": "storage.data.table.abl"
|
|
2055
2158
|
}
|
|
2056
2159
|
}
|
|
2057
2160
|
},
|
|
@@ -2066,7 +2169,7 @@
|
|
|
2066
2169
|
"name": "keyword.other.abl"
|
|
2067
2170
|
}
|
|
2068
2171
|
},
|
|
2069
|
-
"end": "(?i)(\\b(buffer-
|
|
2172
|
+
"end": "(?i)(\\b((buffer-n(?:ame|am|a)?)|in)\\b)|(?=\\.)",
|
|
2070
2173
|
"endCaptures": {
|
|
2071
2174
|
"1": {
|
|
2072
2175
|
"name": "keyword.other.abl"
|
|
@@ -2111,7 +2214,7 @@
|
|
|
2111
2214
|
]
|
|
2112
2215
|
},
|
|
2113
2216
|
"define-index": {
|
|
2114
|
-
"begin": "(?i)\\s*(index)\\s+([a-zA-
|
|
2217
|
+
"begin": "(?i)\\s*(index)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)",
|
|
2115
2218
|
"beginCaptures": {
|
|
2116
2219
|
"1": {
|
|
2117
2220
|
"name": "keyword.other.abl"
|
|
@@ -2123,7 +2226,7 @@
|
|
|
2123
2226
|
"end": "(?i)(?=\\bindex\\b|\\.)",
|
|
2124
2227
|
"patterns": [
|
|
2125
2228
|
{
|
|
2126
|
-
"match": "(?i)\\b(AS|IS|UNIQUE|PRIMARY|WORD-INDEX|
|
|
2229
|
+
"match": "(?i)\\b(AS|IS|UNIQUE|PRIMARY|WORD-INDEX|(asc(?:ending|endin|endi|end|en|e)?)|(desc(?:ending|endin|endi|end|en|e)?))\\b",
|
|
2127
2230
|
"captures": {
|
|
2128
2231
|
"1": {
|
|
2129
2232
|
"name": "keyword.other.abl"
|
|
@@ -2131,7 +2234,7 @@
|
|
|
2131
2234
|
}
|
|
2132
2235
|
},
|
|
2133
2236
|
{
|
|
2134
|
-
"match": "\\b([a-zA-
|
|
2237
|
+
"match": "\\b([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\b",
|
|
2135
2238
|
"captures": {
|
|
2136
2239
|
"1": {
|
|
2137
2240
|
"name": "storage.data.table.abl"
|
|
@@ -2141,7 +2244,7 @@
|
|
|
2141
2244
|
]
|
|
2142
2245
|
},
|
|
2143
2246
|
"define-dataset": {
|
|
2144
|
-
"begin": "(?i)\\b(dataset)\\s+([a-zA-
|
|
2247
|
+
"begin": "(?i)\\b(dataset)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\b",
|
|
2145
2248
|
"beginCaptures": {
|
|
2146
2249
|
"1": {
|
|
2147
2250
|
"name": "keyword.other.abl"
|
|
@@ -2160,7 +2263,7 @@
|
|
|
2160
2263
|
"include": "#punctuation-comma"
|
|
2161
2264
|
},
|
|
2162
2265
|
{
|
|
2163
|
-
"match": "(?i)\\b(data-
|
|
2266
|
+
"match": "(?i)\\b((?:data-rel(?:ation|atio|ati|at|a)?)|parent-id-relation)\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)",
|
|
2164
2267
|
"comment": "Manually capture these so that we can name the relation name properly",
|
|
2165
2268
|
"captures": {
|
|
2166
2269
|
"1": {
|
|
@@ -2172,8 +2275,8 @@
|
|
|
2172
2275
|
}
|
|
2173
2276
|
},
|
|
2174
2277
|
{
|
|
2175
|
-
"match": "(?i)\\b(relation-
|
|
2176
|
-
"comment": "This ABL function is handled manually, because we know that the arguments are only
|
|
2278
|
+
"match": "(?i)\\b(relation-fi(?:elds|eld|el|e)?)\\b",
|
|
2279
|
+
"comment": "This ABL function is handled manually, because we know that the arguments are only table.field names, and the standard abl-function scopes assign these values to variable scopes",
|
|
2177
2280
|
"captures": {
|
|
2178
2281
|
"1": {
|
|
2179
2282
|
"name": "support.function.abl"
|
|
@@ -2198,7 +2301,7 @@
|
|
|
2198
2301
|
]
|
|
2199
2302
|
},
|
|
2200
2303
|
"define-event": {
|
|
2201
|
-
"match": "(?i)\\b(event)\\s+([a-zA-
|
|
2304
|
+
"match": "(?i)\\b(event)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\b",
|
|
2202
2305
|
"captures": {
|
|
2203
2306
|
"1": {
|
|
2204
2307
|
"name": "keyword.other.abl"
|
|
@@ -2209,7 +2312,7 @@
|
|
|
2209
2312
|
}
|
|
2210
2313
|
},
|
|
2211
2314
|
"define-button": {
|
|
2212
|
-
"begin": "(?i)\\s*(button)\\s+([a-
|
|
2315
|
+
"begin": "(?i)\\s*(button)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)",
|
|
2213
2316
|
"beginCaptures": {
|
|
2214
2317
|
"1": {
|
|
2215
2318
|
"name": "keyword.other.abl"
|
|
@@ -2241,7 +2344,7 @@
|
|
|
2241
2344
|
]
|
|
2242
2345
|
},
|
|
2243
2346
|
"from-x-and-y": {
|
|
2244
|
-
"match": "(?i)\\b(from)\\s+(X)\\s+((0(x)[
|
|
2347
|
+
"match": "(?i)\\b(from)\\s+(X)\\s+((0(x)[\\h]+)|(\\-?[[0-9]]+(\\.[[0-9]]+)?))\\s+(y)\\s+((0(x)[\\h]+)|(\\-?[[0-9]]+(\\.[[0-9]]+)?))\\s+ ",
|
|
2245
2348
|
"captures": {
|
|
2246
2349
|
"1": {
|
|
2247
2350
|
"name": "keyword.other.abl"
|
|
@@ -2261,7 +2364,7 @@
|
|
|
2261
2364
|
}
|
|
2262
2365
|
},
|
|
2263
2366
|
"define-buffer": {
|
|
2264
|
-
"begin": "(?i)\\s*(buffer)\\
|
|
2367
|
+
"begin": "(?i)\\s*(buffer)\\b(?![#$\\-_%&])",
|
|
2265
2368
|
"beginCaptures": {
|
|
2266
2369
|
"1": {
|
|
2267
2370
|
"name": "keyword.other.abl"
|
|
@@ -2287,7 +2390,7 @@
|
|
|
2287
2390
|
]
|
|
2288
2391
|
},
|
|
2289
2392
|
"define-frame": {
|
|
2290
|
-
"match": "(?i)\\s*(
|
|
2393
|
+
"match": "(?i)\\s*((?:fram(?:e)?))\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)",
|
|
2291
2394
|
"captures": {
|
|
2292
2395
|
"1": {
|
|
2293
2396
|
"name": "keyword.other.abl"
|
|
@@ -2299,13 +2402,13 @@
|
|
|
2299
2402
|
},
|
|
2300
2403
|
"define-variable": {
|
|
2301
2404
|
"comment": "This rule captures just the variable name and the data type. Based on https://docs.progress.com/bundle/abl-reference/page/DEFINE-VARIABLE-statement.html",
|
|
2302
|
-
"begin": "(?i)\\s*(
|
|
2405
|
+
"begin": "(?i)\\s*(var(?:iable|iabl|iab|ia|i)?)\\s*",
|
|
2303
2406
|
"beginCaptures": {
|
|
2304
2407
|
"1": {
|
|
2305
2408
|
"name": "keyword.other.abl"
|
|
2306
2409
|
}
|
|
2307
2410
|
},
|
|
2308
|
-
"end": "(?i)(?=\\.)|\\b(?=
|
|
2411
|
+
"end": "(?i)(?=\\.)|\\b(?=(bgc(?:olor|olo|ol|o)?)|(column-lab(?:el|e)?)|contet-help-id|dcolor|decimals|drop-target|extent|font|(fgc(?:olor|olo|ol|o)?)|(form(?:at|a)?)|initial|label|(mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|no-undo|not|(case-sen(?:sitive|sitiv|siti|sit|si|s)?)|(pfc(?:olor|olo|ol|o)?)|view-as|triggers)\\b",
|
|
2309
2412
|
"endCaptures": {
|
|
2310
2413
|
"1": {
|
|
2311
2414
|
"name": "keyword.other.abl"
|
|
@@ -2313,7 +2416,7 @@
|
|
|
2313
2416
|
},
|
|
2314
2417
|
"patterns": [
|
|
2315
2418
|
{
|
|
2316
|
-
"match": "
|
|
2419
|
+
"match": "\\b([Cc][Ll][Aa][Ss][Ss])\\b",
|
|
2317
2420
|
"captures": {
|
|
2318
2421
|
"1": {
|
|
2319
2422
|
"name": "keyword.other.abl"
|
|
@@ -2336,27 +2439,13 @@
|
|
|
2336
2439
|
"comment": "needs to be before the #keywords include",
|
|
2337
2440
|
"include": "#type-names"
|
|
2338
2441
|
},
|
|
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
2442
|
{
|
|
2348
2443
|
"include": "#string"
|
|
2349
|
-
},
|
|
2350
|
-
{
|
|
2351
|
-
"include": "#type-name-generic"
|
|
2352
|
-
},
|
|
2353
|
-
{
|
|
2354
|
-
"include": "#type-name"
|
|
2355
2444
|
}
|
|
2356
2445
|
]
|
|
2357
2446
|
},
|
|
2358
2447
|
"label-variable": {
|
|
2359
|
-
"match": "(?i)\\s*(
|
|
2448
|
+
"match": "(?i)\\s*([a-zA-Z0-9_\\-#$%]+)\\s+(label)\\s*",
|
|
2360
2449
|
"captures": {
|
|
2361
2450
|
"1": {
|
|
2362
2451
|
"name": "variable.other.abl"
|
|
@@ -2368,7 +2457,7 @@
|
|
|
2368
2457
|
},
|
|
2369
2458
|
"format-constant": {
|
|
2370
2459
|
"comment": "DATE/TIME/TZ fields can have an unquoted format if it's something like 99/99/9999",
|
|
2371
|
-
"match": "(?i)\\b(
|
|
2460
|
+
"match": "(?i)\\b((?:form(?:at|a)?))\\s+(9+/9+/9+)\\b",
|
|
2372
2461
|
"captures": {
|
|
2373
2462
|
"1": {
|
|
2374
2463
|
"name": "keyword.other.abl"
|
|
@@ -2379,7 +2468,7 @@
|
|
|
2379
2468
|
}
|
|
2380
2469
|
},
|
|
2381
2470
|
"define-table": {
|
|
2382
|
-
"match": "(?i)(?<=\\b)(temp-table|before-table)\\s*([
|
|
2471
|
+
"match": "(?i)(?<=\\b)(temp-table|before-table)\\s*([a-zA-Z_][a-zA-Z0-9_\\-#$%]*)\\s*",
|
|
2383
2472
|
"captures": {
|
|
2384
2473
|
"1": {
|
|
2385
2474
|
"name": "keyword.other.abl"
|
|
@@ -2390,7 +2479,7 @@
|
|
|
2390
2479
|
}
|
|
2391
2480
|
},
|
|
2392
2481
|
"buffer-for-table": {
|
|
2393
|
-
"match": "(?i)\\s*(?!do|repeat|for)([
|
|
2482
|
+
"match": "(?i)\\s*(?!do|repeat|for)([a-zA-Z_\\-#$%]+)\\s+(for)\\s+((temp-table)\\s+)?([a-zA-Z][a-zA-Z0-9_\\-#$%]*)\\s*",
|
|
2394
2483
|
"captures": {
|
|
2395
2484
|
"1": {
|
|
2396
2485
|
"name": "storage.data.table.abl"
|
|
@@ -2407,7 +2496,7 @@
|
|
|
2407
2496
|
}
|
|
2408
2497
|
},
|
|
2409
2498
|
"double-colon-field-name": {
|
|
2410
|
-
"match": "\\s*::([
|
|
2499
|
+
"match": "\\s*::([a-zA-Z_\\-#$%]+)\\s*",
|
|
2411
2500
|
"captures": {
|
|
2412
2501
|
"1": {
|
|
2413
2502
|
"name": "storage.data.table.abl"
|
|
@@ -2415,7 +2504,7 @@
|
|
|
2415
2504
|
}
|
|
2416
2505
|
},
|
|
2417
2506
|
"for-table": {
|
|
2418
|
-
"match": "(?i)\\s*(for)\\s+((temp-table)\\s+)?([
|
|
2507
|
+
"match": "(?i)\\s*(for)\\s+((temp-table)\\s+)?([a-zA-Z_\\-#$%]+)\\s*",
|
|
2419
2508
|
"captures": {
|
|
2420
2509
|
"1": {
|
|
2421
2510
|
"name": "keyword.other.abl"
|
|
@@ -2439,7 +2528,7 @@
|
|
|
2439
2528
|
"name": "meta.brace.round.js"
|
|
2440
2529
|
}
|
|
2441
2530
|
},
|
|
2442
|
-
"end": "(?i)\\b(?=\\)|where|no-lock|share
|
|
2531
|
+
"end": "(?i)\\b(?=\\)|where|no-lock|(share(?:-lock|-loc|-lo|-l|-)?)|using|(no-prefe(?:tch|tc|t)?)|no-wait)\\s*",
|
|
2443
2532
|
"patterns": [
|
|
2444
2533
|
{
|
|
2445
2534
|
"include": "#parens"
|
|
@@ -2476,7 +2565,7 @@
|
|
|
2476
2565
|
]
|
|
2477
2566
|
},
|
|
2478
2567
|
"use-index": {
|
|
2479
|
-
"match": "(?i)\\b(use-index)\\s+([a-
|
|
2568
|
+
"match": "(?i)\\b(use-index)\\s+([a-zA-Z_][a-zA-Z0-9_\\-$]*)\\b",
|
|
2480
2569
|
"captures": {
|
|
2481
2570
|
"1": {
|
|
2482
2571
|
"name": "keyword.other.abl"
|
|
@@ -2487,7 +2576,7 @@
|
|
|
2487
2576
|
}
|
|
2488
2577
|
},
|
|
2489
2578
|
"access-modifier": {
|
|
2490
|
-
"match": "(?i)\\s*(package-private|private|package-protected|protected|public|static|override|abstract|final)\\
|
|
2579
|
+
"match": "(?i)\\s*(package-private|private|package-protected|protected|public|static|override|abstract|final)\\s+",
|
|
2491
2580
|
"captures": {
|
|
2492
2581
|
"1": {
|
|
2493
2582
|
"name": "keyword.other.abl"
|
|
@@ -2502,10 +2591,63 @@
|
|
|
2502
2591
|
}
|
|
2503
2592
|
}
|
|
2504
2593
|
},
|
|
2594
|
+
"var-statement": {
|
|
2595
|
+
"name": "meta.define.abl",
|
|
2596
|
+
"begin": "^\\s*(var)\\s+",
|
|
2597
|
+
"beginCaptures": {
|
|
2598
|
+
"1": {
|
|
2599
|
+
"name": "keyword.other.abl"
|
|
2600
|
+
}
|
|
2601
|
+
},
|
|
2602
|
+
"end": "(\\s([a-zA-Z][a-zA-Z0-9_\\-#$%]*))",
|
|
2603
|
+
"endCaptures": {
|
|
2604
|
+
"2": {
|
|
2605
|
+
"name": "variable.other.abl"
|
|
2606
|
+
}
|
|
2607
|
+
},
|
|
2608
|
+
"patterns": [
|
|
2609
|
+
{
|
|
2610
|
+
"include": "#access-modifier"
|
|
2611
|
+
},
|
|
2612
|
+
{
|
|
2613
|
+
"include": "#serializable"
|
|
2614
|
+
},
|
|
2615
|
+
{
|
|
2616
|
+
"comment": "This capture must use spaces and not word boundaries because the 'end' is on a space. This also captures class names that are ABL primitive type names, for example OpenEdge.Core.Memptr in its short form",
|
|
2617
|
+
"match": "(?i)\\s*(class)\\s*(blob|character|char|clob|com-handle|date|datetime|datetime-tz|decimal|handle|int64|integer|int|logical|longchar|memptr|raw|recid|rowid|widget-handle)?",
|
|
2618
|
+
"captures": {
|
|
2619
|
+
"1": {
|
|
2620
|
+
"name": "keyword.other.abl"
|
|
2621
|
+
},
|
|
2622
|
+
"2": {
|
|
2623
|
+
"name": "entity.name.type.abl"
|
|
2624
|
+
}
|
|
2625
|
+
}
|
|
2626
|
+
},
|
|
2627
|
+
{
|
|
2628
|
+
"include": "#primitive-type"
|
|
2629
|
+
},
|
|
2630
|
+
{
|
|
2631
|
+
"include": "#type-names"
|
|
2632
|
+
},
|
|
2633
|
+
{
|
|
2634
|
+
"include": "#array-literal"
|
|
2635
|
+
},
|
|
2636
|
+
{
|
|
2637
|
+
"include": "#string"
|
|
2638
|
+
},
|
|
2639
|
+
{
|
|
2640
|
+
"include": "#comment"
|
|
2641
|
+
},
|
|
2642
|
+
{
|
|
2643
|
+
"include": "#preprocessors"
|
|
2644
|
+
}
|
|
2645
|
+
]
|
|
2646
|
+
},
|
|
2505
2647
|
"define-stream": {
|
|
2506
2648
|
"name": "meta.define.stream.abl",
|
|
2507
|
-
"match": "(?i)\\s*(stream)\\s*([
|
|
2508
|
-
"comment": "https://docs.progress.com/bundle/
|
|
2649
|
+
"match": "(?i)\\s*(stream)\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%\\-]*)",
|
|
2650
|
+
"comment": "https://docs.progress.com/bundle/abl-reference/page/DEFINE-STREAM-statement.html",
|
|
2509
2651
|
"captures": {
|
|
2510
2652
|
"1": {
|
|
2511
2653
|
"name": "keyword.other.abl"
|
|
@@ -2520,7 +2662,7 @@
|
|
|
2520
2662
|
}
|
|
2521
2663
|
},
|
|
2522
2664
|
"define-like": {
|
|
2523
|
-
"match": "(?i)\\s*(like|like-sequential)\\s+(([
|
|
2665
|
+
"match": "(?i)\\s*(like|like-sequential)\\s+(([a-zA-Z][a-zA-Z_\\-#$%]*\\.)?([a-zA-Z][a-zA-Z0-9_\\-#$%]*\\.)?([a-zA-Z][a-zA-Z0-9_\\-#$%]*))",
|
|
2524
2666
|
"captures": {
|
|
2525
2667
|
"1": {
|
|
2526
2668
|
"name": "keyword.other.abl"
|
|
@@ -2531,11 +2673,11 @@
|
|
|
2531
2673
|
}
|
|
2532
2674
|
},
|
|
2533
2675
|
"block-label": {
|
|
2534
|
-
"match": "(?i)^\\s*(?!(
|
|
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",
|
|
2676
|
+
"match": "(?i)^\\s*(?!((?:transact(?:ion|io|i)?)|no-lock|(?:exclusive-l(?:ock|oc|o)?)|(?:share(?:-lock|-loc|-lo|-l|-)?)):)([a-zA-Z][a-zA-Z0-9_\\-#$%\\-$#]*)(:)\\s",
|
|
2677
|
+
"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
2678
|
"captures": {
|
|
2537
2679
|
"2": {
|
|
2538
|
-
"name": "
|
|
2680
|
+
"name": "entity.name.label.abl"
|
|
2539
2681
|
},
|
|
2540
2682
|
"3": {
|
|
2541
2683
|
"name": "punctuation.terminator.abl"
|
|
@@ -2581,7 +2723,7 @@
|
|
|
2581
2723
|
"include": "#while-expression"
|
|
2582
2724
|
},
|
|
2583
2725
|
{
|
|
2584
|
-
"match": "(?i)\\b(
|
|
2726
|
+
"match": "(?i)\\b((transact(?:ion|io|i)?)|stop-after)\\b",
|
|
2585
2727
|
"name": "keyword.other.abl"
|
|
2586
2728
|
},
|
|
2587
2729
|
{
|
|
@@ -2590,6 +2732,9 @@
|
|
|
2590
2732
|
{
|
|
2591
2733
|
"include": "#type-member-call"
|
|
2592
2734
|
},
|
|
2735
|
+
{
|
|
2736
|
+
"include": "#language-functions"
|
|
2737
|
+
},
|
|
2593
2738
|
{
|
|
2594
2739
|
"include": "#abl-functions"
|
|
2595
2740
|
},
|
|
@@ -2602,6 +2747,9 @@
|
|
|
2602
2747
|
{
|
|
2603
2748
|
"include": "#branch-options"
|
|
2604
2749
|
},
|
|
2750
|
+
{
|
|
2751
|
+
"include": "#keywords"
|
|
2752
|
+
},
|
|
2605
2753
|
{
|
|
2606
2754
|
"include": "#expression"
|
|
2607
2755
|
},
|
|
@@ -2611,7 +2759,7 @@
|
|
|
2611
2759
|
]
|
|
2612
2760
|
},
|
|
2613
2761
|
"from-to-by": {
|
|
2614
|
-
"begin": "\\s*([
|
|
2762
|
+
"begin": "\\s*([a-zA-Z0-9_\\-#$%$\\-_%&]+)\\s+(=)\\s*",
|
|
2615
2763
|
"beginCaptures": {
|
|
2616
2764
|
"1": {
|
|
2617
2765
|
"name": "variable.other.abl"
|
|
@@ -2620,7 +2768,7 @@
|
|
|
2620
2768
|
"name": "keyword.operator.source.abl"
|
|
2621
2769
|
}
|
|
2622
2770
|
},
|
|
2623
|
-
"end": "(?i)(?=
|
|
2771
|
+
"end": "(?i)(?=(transact(?:ion|io|i)?)|on|:|with|while)",
|
|
2624
2772
|
"patterns": [
|
|
2625
2773
|
{
|
|
2626
2774
|
"match": "(?i)\\s+(to|by)\\s*",
|
|
@@ -2668,8 +2816,8 @@
|
|
|
2668
2816
|
},
|
|
2669
2817
|
"patterns": [
|
|
2670
2818
|
{
|
|
2671
|
-
"comment": "Captures the static class before the : of Subscribe ( [ subscriber : ] handler-method )",
|
|
2672
|
-
"match": "\\s*([\\w
|
|
2819
|
+
"comment": "Captures the static class before the : of Subscribe ( [ subscriber : ] handler-method ). Type names are files, so support unicode",
|
|
2820
|
+
"match": "\\s*([\\w#$%\\-]+(\\.[\\w#$%\\-]+)+)\\s*(:)",
|
|
2673
2821
|
"captures": {
|
|
2674
2822
|
"1": {
|
|
2675
2823
|
"name": "entity.name.type.abl"
|
|
@@ -2681,7 +2829,7 @@
|
|
|
2681
2829
|
},
|
|
2682
2830
|
{
|
|
2683
2831
|
"comment": "Captures the variable before the : or , of Subscribe( [ subscriber-handle , ] handler-procedure ) or Subscribe ( [ subscriber : ] handler-method )",
|
|
2684
|
-
"match": "\\s*([a-zA-
|
|
2832
|
+
"match": "\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\s*((,)|(:))\\s*",
|
|
2685
2833
|
"captures": {
|
|
2686
2834
|
"1": {
|
|
2687
2835
|
"name": "variable.other.abl"
|
|
@@ -2696,7 +2844,7 @@
|
|
|
2696
2844
|
},
|
|
2697
2845
|
{
|
|
2698
2846
|
"comment": "Subscribe( handler-procedure or handler-method)",
|
|
2699
|
-
"match": "\\s*([a-zA-
|
|
2847
|
+
"match": "\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\s*",
|
|
2700
2848
|
"captures": {
|
|
2701
2849
|
"1": {
|
|
2702
2850
|
"name": "entity.name.function.abl"
|
|
@@ -2744,7 +2892,7 @@
|
|
|
2744
2892
|
},
|
|
2745
2893
|
"for-record": {
|
|
2746
2894
|
"comment": "this regex just tries to capture a bunch (6) of tables",
|
|
2747
|
-
"match": "(?i)\\s*(for)\\s+([
|
|
2895
|
+
"match": "(?i)\\s*(for)\\s+([a-zA-Z_\\-#$%]*)\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?",
|
|
2748
2896
|
"captures": {
|
|
2749
2897
|
"1": {
|
|
2750
2898
|
"name": "keyword.other.abl"
|
|
@@ -2785,7 +2933,7 @@
|
|
|
2785
2933
|
}
|
|
2786
2934
|
},
|
|
2787
2935
|
"on-error-endkey-stop": {
|
|
2788
|
-
"match": "(?i)\\s*(on)\\s+(endkey|error|stop|quit)\\s+(undo)\\s*(?!leave|next|retry|return|throw)([a-
|
|
2936
|
+
"match": "(?i)\\s*(on)\\s+(endkey|error|stop|quit)\\s+(undo)\\s*(?!leave|next|retry|return|throw)([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*",
|
|
2789
2937
|
"captures": {
|
|
2790
2938
|
"1": {
|
|
2791
2939
|
"name": "keyword.other.abl"
|
|
@@ -2797,30 +2945,30 @@
|
|
|
2797
2945
|
"name": "keyword.other.abl"
|
|
2798
2946
|
},
|
|
2799
2947
|
"4": {
|
|
2800
|
-
"name": "
|
|
2948
|
+
"name": "entity.name.label.abl"
|
|
2801
2949
|
}
|
|
2802
2950
|
}
|
|
2803
2951
|
},
|
|
2804
2952
|
"block-undo-leave-next-retry": {
|
|
2805
2953
|
"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)([a-
|
|
2954
|
+
"match": "(?i)\\s*(?<!,)\\s*(leave|next|retry|undo)\\s*(?!on)([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*",
|
|
2807
2955
|
"captures": {
|
|
2808
2956
|
"1": {
|
|
2809
2957
|
"name": "keyword.other.abl"
|
|
2810
2958
|
},
|
|
2811
2959
|
"2": {
|
|
2812
|
-
"name": "
|
|
2960
|
+
"name": "entity.name.label.abl"
|
|
2813
2961
|
}
|
|
2814
2962
|
}
|
|
2815
2963
|
},
|
|
2816
2964
|
"branch-leave-next-retry-throw": {
|
|
2817
|
-
"match": "(?i)\\s*(?<=,)\\s*(leave|next|retry|throw)\\s*(?!on)([a-
|
|
2965
|
+
"match": "(?i)\\s*(?<=,)\\s*(leave|next|retry|throw)\\s*(?!on)([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*",
|
|
2818
2966
|
"captures": {
|
|
2819
2967
|
"1": {
|
|
2820
2968
|
"name": "keyword.other.abl"
|
|
2821
2969
|
},
|
|
2822
2970
|
"2": {
|
|
2823
|
-
"name": "
|
|
2971
|
+
"name": "entity.name.label.abl"
|
|
2824
2972
|
}
|
|
2825
2973
|
}
|
|
2826
2974
|
},
|
|
@@ -2904,7 +3052,7 @@
|
|
|
2904
3052
|
}
|
|
2905
3053
|
},
|
|
2906
3054
|
"comment": " This regex captures to the end of the line, or the colon, whichever comes first",
|
|
2907
|
-
"end": "(
|
|
3055
|
+
"end": "(?=:|$)",
|
|
2908
3056
|
"patterns": [
|
|
2909
3057
|
{
|
|
2910
3058
|
"include": "#new-class"
|
|
@@ -2928,31 +3076,31 @@
|
|
|
2928
3076
|
},
|
|
2929
3077
|
"undo-statement": {
|
|
2930
3078
|
"comment": "https://docs.progress.com/bundle/abl-reference/page/UNDO-statement.html",
|
|
2931
|
-
"begin": "(?i)\\s*(undo)\\s*([a-
|
|
3079
|
+
"begin": "(?i)\\s*(undo)\\s*([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*(,)",
|
|
2932
3080
|
"beginCaptures": {
|
|
2933
3081
|
"1": {
|
|
2934
3082
|
"name": "keyword.other.abl"
|
|
2935
3083
|
},
|
|
2936
3084
|
"2": {
|
|
2937
|
-
"name": "
|
|
3085
|
+
"name": "entity.name.label.abl"
|
|
2938
3086
|
},
|
|
2939
3087
|
"3": {
|
|
2940
3088
|
"name": "punctuation.separator.comma.abl"
|
|
2941
3089
|
}
|
|
2942
3090
|
},
|
|
2943
|
-
"end": "(
|
|
3091
|
+
"end": "(?=\\.|:)",
|
|
2944
3092
|
"patterns": [
|
|
2945
3093
|
{
|
|
2946
3094
|
"include": "#string"
|
|
2947
3095
|
},
|
|
2948
3096
|
{
|
|
2949
|
-
"match": "(?i)\\s*(leave|next|retry)\\s([a-
|
|
3097
|
+
"match": "(?i)\\s*(leave|next|retry)\\s([a-zA-Z0-9_\\-#$%\\-$]*)?",
|
|
2950
3098
|
"captures": {
|
|
2951
3099
|
"1": {
|
|
2952
3100
|
"name": "keyword.other.abl"
|
|
2953
3101
|
},
|
|
2954
3102
|
"2": {
|
|
2955
|
-
"name": "
|
|
3103
|
+
"name": "entity.name.label.abl"
|
|
2956
3104
|
}
|
|
2957
3105
|
}
|
|
2958
3106
|
},
|
|
@@ -3011,7 +3159,7 @@
|
|
|
3011
3159
|
"name": "keyword.other.abl"
|
|
3012
3160
|
}
|
|
3013
3161
|
},
|
|
3014
|
-
"end": "(?i)(?=
|
|
3162
|
+
"end": "(?i)(?=(transact(?:ion|io|i)?)|on|:|with)",
|
|
3015
3163
|
"patterns": [
|
|
3016
3164
|
{
|
|
3017
3165
|
"comment": "The comment scopes are included in the statements pattern, but the operator trumps these",
|
|
@@ -3028,19 +3176,16 @@
|
|
|
3028
3176
|
},
|
|
3029
3177
|
{
|
|
3030
3178
|
"include": "#expression"
|
|
3031
|
-
},
|
|
3032
|
-
{
|
|
3033
|
-
"include": "X-#statements"
|
|
3034
3179
|
}
|
|
3035
3180
|
]
|
|
3036
3181
|
},
|
|
3037
3182
|
"analyze-suspend-resume": {
|
|
3038
|
-
"begin": "(?i)(
|
|
3183
|
+
"begin": "(?i)(&analyze-suspend|&analyze-resume)\\s*",
|
|
3039
3184
|
"end": "(?=(?://|/\\*))|$",
|
|
3040
3185
|
"name": "comment.preprocessor.analyze-suspend.abl"
|
|
3041
3186
|
},
|
|
3042
3187
|
"global-scoped-define": {
|
|
3043
|
-
"begin": "(?i)(
|
|
3188
|
+
"begin": "(?i)((?:&scop(?:ed-define|ed-defin|ed-defi|ed-def|ed-de|ed-d|ed-|ed|e)?)|(?:&glob(?:al-define|al-defin|al-defi|al-def|al-de|al-d|al-|al|a)?))\\s*([\\.a-zA-Z0-9_\\-#$%\\\\/]*)\\s*",
|
|
3044
3189
|
"beginCaptures": {
|
|
3045
3190
|
"1": {
|
|
3046
3191
|
"name": "keyword.other.abl"
|
|
@@ -3049,7 +3194,7 @@
|
|
|
3049
3194
|
"name": "entity.name.function.preprocessor.abl"
|
|
3050
3195
|
}
|
|
3051
3196
|
},
|
|
3052
|
-
"end": "(
|
|
3197
|
+
"end": "(?=//|/\\*)|$",
|
|
3053
3198
|
"name": "meta.preprocessor.define.abl",
|
|
3054
3199
|
"patterns": [
|
|
3055
3200
|
{
|
|
@@ -3079,6 +3224,12 @@
|
|
|
3079
3224
|
{
|
|
3080
3225
|
"include": "#function-arguments"
|
|
3081
3226
|
},
|
|
3227
|
+
{
|
|
3228
|
+
"include": "#property-call"
|
|
3229
|
+
},
|
|
3230
|
+
{
|
|
3231
|
+
"include": "#static-object-property-call"
|
|
3232
|
+
},
|
|
3082
3233
|
{
|
|
3083
3234
|
"include": "#db-dot-table-dot-field"
|
|
3084
3235
|
},
|
|
@@ -3091,15 +3242,15 @@
|
|
|
3091
3242
|
{
|
|
3092
3243
|
"include": "#code-block"
|
|
3093
3244
|
},
|
|
3094
|
-
{
|
|
3095
|
-
"include": "#property-call"
|
|
3096
|
-
},
|
|
3097
3245
|
{
|
|
3098
3246
|
"include": "#handle-attributes"
|
|
3099
3247
|
},
|
|
3100
3248
|
{
|
|
3101
3249
|
"include": "#preprocessors"
|
|
3102
3250
|
},
|
|
3251
|
+
{
|
|
3252
|
+
"include": "#abl-system-handles"
|
|
3253
|
+
},
|
|
3103
3254
|
{
|
|
3104
3255
|
"include": "#keywords"
|
|
3105
3256
|
}
|
|
@@ -3126,7 +3277,15 @@
|
|
|
3126
3277
|
"include": "#parens"
|
|
3127
3278
|
},
|
|
3128
3279
|
{
|
|
3129
|
-
"
|
|
3280
|
+
"include": "#function-arguments-no-parens"
|
|
3281
|
+
}
|
|
3282
|
+
]
|
|
3283
|
+
},
|
|
3284
|
+
"function-arguments-no-parens": {
|
|
3285
|
+
"name": "meta.function.arguments.abl",
|
|
3286
|
+
"patterns": [
|
|
3287
|
+
{
|
|
3288
|
+
"match": "(?i)\\s*((input-o(?:utput|utpu|utp|u)?)|output|input|table-handle|dataset-handle|append|by-value|by-reference|bind)\\b(?![#$\\-_%&])",
|
|
3130
3289
|
"captures": {
|
|
3131
3290
|
"1": {
|
|
3132
3291
|
"name": "keyword.other.abl"
|
|
@@ -3134,7 +3293,7 @@
|
|
|
3134
3293
|
}
|
|
3135
3294
|
},
|
|
3136
3295
|
{
|
|
3137
|
-
"match": "(?i)\\b(dataset)\\s+([
|
|
3296
|
+
"match": "(?i)\\b(dataset)\\s+([a-zA-Z_\\-#$%]+(\\.[a-zA-Z_\\-#$%]+)?)\\b",
|
|
3138
3297
|
"captures": {
|
|
3139
3298
|
"1": {
|
|
3140
3299
|
"name": "keyword.other.abl"
|
|
@@ -3145,7 +3304,7 @@
|
|
|
3145
3304
|
}
|
|
3146
3305
|
},
|
|
3147
3306
|
{
|
|
3148
|
-
"match": "(?i)\\b(temp-table|table|buffer)\\s+([
|
|
3307
|
+
"match": "(?i)\\b(temp-table|table|buffer)\\s+([a-zA-Z_\\-#$%]+(\\.[a-zA-Z_\\-#$%]+)?)\\b",
|
|
3149
3308
|
"captures": {
|
|
3150
3309
|
"1": {
|
|
3151
3310
|
"name": "keyword.other.abl"
|
|
@@ -3156,13 +3315,13 @@
|
|
|
3156
3315
|
}
|
|
3157
3316
|
},
|
|
3158
3317
|
{
|
|
3159
|
-
"include": "#
|
|
3318
|
+
"include": "#function-arguments"
|
|
3160
3319
|
},
|
|
3161
3320
|
{
|
|
3162
|
-
"include": "#
|
|
3321
|
+
"include": "#constant"
|
|
3163
3322
|
},
|
|
3164
3323
|
{
|
|
3165
|
-
"include": "#
|
|
3324
|
+
"include": "#type-reference"
|
|
3166
3325
|
},
|
|
3167
3326
|
{
|
|
3168
3327
|
"include": "#abl-system-handles"
|
|
@@ -3170,17 +3329,23 @@
|
|
|
3170
3329
|
{
|
|
3171
3330
|
"include": "#can-find"
|
|
3172
3331
|
},
|
|
3332
|
+
{
|
|
3333
|
+
"include": "#language-functions"
|
|
3334
|
+
},
|
|
3173
3335
|
{
|
|
3174
3336
|
"include": "#abl-functions"
|
|
3175
3337
|
},
|
|
3176
3338
|
{
|
|
3177
|
-
"include": "#
|
|
3339
|
+
"include": "#type-member-call"
|
|
3178
3340
|
},
|
|
3179
3341
|
{
|
|
3180
|
-
"include": "#
|
|
3342
|
+
"include": "#db-dot-table-dot-field"
|
|
3181
3343
|
},
|
|
3182
3344
|
{
|
|
3183
|
-
"include": "#
|
|
3345
|
+
"include": "#handle-attributes"
|
|
3346
|
+
},
|
|
3347
|
+
{
|
|
3348
|
+
"include": "#handle-methods"
|
|
3184
3349
|
},
|
|
3185
3350
|
{
|
|
3186
3351
|
"include": "#expression"
|
|
@@ -3189,22 +3354,19 @@
|
|
|
3189
3354
|
"include": "#comment"
|
|
3190
3355
|
},
|
|
3191
3356
|
{
|
|
3192
|
-
"include": "#
|
|
3357
|
+
"include": "#array-literal"
|
|
3193
3358
|
},
|
|
3194
3359
|
{
|
|
3195
3360
|
"include": "#punctuation-comma"
|
|
3196
3361
|
},
|
|
3197
|
-
{
|
|
3198
|
-
"include": "#static-object-property-call"
|
|
3199
|
-
},
|
|
3200
3362
|
{
|
|
3201
3363
|
"include": "#preprocessors"
|
|
3202
3364
|
}
|
|
3203
3365
|
]
|
|
3204
3366
|
},
|
|
3205
3367
|
"static-object-property-call": {
|
|
3206
|
-
"
|
|
3207
|
-
"
|
|
3368
|
+
"comment": "This rule only captures dotted type name and not single class names. Type names are files, so support unicode.",
|
|
3369
|
+
"match": "(?i)\\s*(([\\w#$%\\-]+|progress)(\\.[\\w#$%\\-]+)+)\\s*(:)([\\w\\-]+)\\s*",
|
|
3208
3370
|
"captures": {
|
|
3209
3371
|
"1": {
|
|
3210
3372
|
"name": "entity.name.type.abl"
|
|
@@ -3218,7 +3380,7 @@
|
|
|
3218
3380
|
}
|
|
3219
3381
|
},
|
|
3220
3382
|
"unqualified-method-call": {
|
|
3221
|
-
"match": "\\b([a-zA-
|
|
3383
|
+
"match": "\\b([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\b(?=\\()",
|
|
3222
3384
|
"captures": {
|
|
3223
3385
|
"1": {
|
|
3224
3386
|
"name": "entity.name.function.abl"
|
|
@@ -3226,7 +3388,7 @@
|
|
|
3226
3388
|
}
|
|
3227
3389
|
},
|
|
3228
3390
|
"property-call": {
|
|
3229
|
-
"match": "(:)([a-zA-
|
|
3391
|
+
"match": "(:)([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)\\b",
|
|
3230
3392
|
"captures": {
|
|
3231
3393
|
"1": {
|
|
3232
3394
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -3251,11 +3413,11 @@
|
|
|
3251
3413
|
},
|
|
3252
3414
|
"variable-name": {
|
|
3253
3415
|
"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|\\[|\\(|,)([a-zA-
|
|
3416
|
+
"match": "(?<=^|\\s|\\[|\\(|,)([a-zA-Z_][a-zA-Z0-9_#$\\-%&]*)(?=\\.\\s|\\.$|,|:|\\s|\\)|\\]|\\[|$)",
|
|
3255
3417
|
"name": "variable.other.abl"
|
|
3256
3418
|
},
|
|
3257
3419
|
"extent": {
|
|
3258
|
-
"match": "(?i)\\s*(extent)\\s*((0x
|
|
3420
|
+
"match": "(?i)\\s*(extent)\\s*((0x)?\\h+)?",
|
|
3259
3421
|
"captures": {
|
|
3260
3422
|
"1": {
|
|
3261
3423
|
"name": "keyword.other.abl"
|
|
@@ -3266,7 +3428,7 @@
|
|
|
3266
3428
|
}
|
|
3267
3429
|
},
|
|
3268
3430
|
"decimals": {
|
|
3269
|
-
"match": "(?i)\\s*(decimals)\\s((0x
|
|
3431
|
+
"match": "(?i)\\s*(decimals)\\s((0x)?\\h+)?",
|
|
3270
3432
|
"captures": {
|
|
3271
3433
|
"1": {
|
|
3272
3434
|
"name": "keyword.other.abl"
|
|
@@ -3277,7 +3439,7 @@
|
|
|
3277
3439
|
}
|
|
3278
3440
|
},
|
|
3279
3441
|
"ordinal": {
|
|
3280
|
-
"match": "(?i)\\s*(ordinal)\\s((0x
|
|
3442
|
+
"match": "(?i)\\s*(ordinal)\\s((0x)?\\h+)?",
|
|
3281
3443
|
"captures": {
|
|
3282
3444
|
"1": {
|
|
3283
3445
|
"name": "keyword.other.abl"
|
|
@@ -3292,19 +3454,34 @@
|
|
|
3292
3454
|
"begin": "\\[",
|
|
3293
3455
|
"beginCaptures": {
|
|
3294
3456
|
"0": {
|
|
3295
|
-
"name": "
|
|
3457
|
+
"name": "punctuation.definition.bracket.square.begin.abl"
|
|
3296
3458
|
}
|
|
3297
3459
|
},
|
|
3298
3460
|
"end": "\\]",
|
|
3299
3461
|
"endCaptures": {
|
|
3300
3462
|
"0": {
|
|
3301
|
-
"name": "
|
|
3463
|
+
"name": "punctuation.definition.bracket.square.end.abl"
|
|
3302
3464
|
}
|
|
3303
3465
|
},
|
|
3304
3466
|
"patterns": [
|
|
3467
|
+
{
|
|
3468
|
+
"comment": "See https://docs.progress.com/bundle/abl-reference/page/Array-reference.html for array ranges",
|
|
3469
|
+
"match": "(?i)\\s+(for)\\s+",
|
|
3470
|
+
"captures": {
|
|
3471
|
+
"1": {
|
|
3472
|
+
"name": "keyword.other.abl"
|
|
3473
|
+
}
|
|
3474
|
+
}
|
|
3475
|
+
},
|
|
3305
3476
|
{
|
|
3306
3477
|
"include": "#expression"
|
|
3307
3478
|
},
|
|
3479
|
+
{
|
|
3480
|
+
"include": "#preprocessors"
|
|
3481
|
+
},
|
|
3482
|
+
{
|
|
3483
|
+
"include": "#comment"
|
|
3484
|
+
},
|
|
3308
3485
|
{
|
|
3309
3486
|
"include": "#punctuation-comma"
|
|
3310
3487
|
}
|
|
@@ -3315,13 +3492,13 @@
|
|
|
3315
3492
|
"begin": "\\[",
|
|
3316
3493
|
"beginCaptures": {
|
|
3317
3494
|
"0": {
|
|
3318
|
-
"name": "
|
|
3495
|
+
"name": "punctuation.definition.bracket.square.begin.abl"
|
|
3319
3496
|
}
|
|
3320
3497
|
},
|
|
3321
3498
|
"end": "\\]",
|
|
3322
3499
|
"endCaptures": {
|
|
3323
3500
|
"0": {
|
|
3324
|
-
"name": "
|
|
3501
|
+
"name": "punctuation.definition.bracket.square.end.abl"
|
|
3325
3502
|
}
|
|
3326
3503
|
},
|
|
3327
3504
|
"patterns": [
|
|
@@ -3356,11 +3533,33 @@
|
|
|
3356
3533
|
]
|
|
3357
3534
|
},
|
|
3358
3535
|
"parameter-name": {
|
|
3359
|
-
"match": "(?<=^|\\s)(
|
|
3536
|
+
"match": "(?<=^|\\s)(a-zA-Z0-9_\\-#$%|-)+(?=\\s)",
|
|
3360
3537
|
"name": "variable.parameter.abl"
|
|
3361
3538
|
},
|
|
3362
3539
|
"run-statement": {
|
|
3363
|
-
"
|
|
3540
|
+
"patterns": [
|
|
3541
|
+
{
|
|
3542
|
+
"include": "#run-unquoted"
|
|
3543
|
+
},
|
|
3544
|
+
{
|
|
3545
|
+
"include": "#run-quoted"
|
|
3546
|
+
}
|
|
3547
|
+
]
|
|
3548
|
+
},
|
|
3549
|
+
"run-quoted": {
|
|
3550
|
+
"match": "(?i)\\s*(run)\\s+(?!value)\\s*(['\"].*['\"])",
|
|
3551
|
+
"captures": {
|
|
3552
|
+
"1": {
|
|
3553
|
+
"name": "keyword.other.abl"
|
|
3554
|
+
},
|
|
3555
|
+
"2": {
|
|
3556
|
+
"name": "entity.name.procedure.abl"
|
|
3557
|
+
}
|
|
3558
|
+
}
|
|
3559
|
+
},
|
|
3560
|
+
"run-unquoted": {
|
|
3561
|
+
"comment": "(External) Program names are files, so need to support unicode.",
|
|
3562
|
+
"match": "(?i)\\s*(run)\\s+(?!value)\\s*([\\w\\-$\\@\\/\\\\]{1,253}(\\.[\\w@$\\-]{1,2})?)",
|
|
3364
3563
|
"captures": {
|
|
3365
3564
|
"1": {
|
|
3366
3565
|
"name": "keyword.other.abl"
|
|
@@ -3372,14 +3571,15 @@
|
|
|
3372
3571
|
},
|
|
3373
3572
|
"include-file": {
|
|
3374
3573
|
"name": "meta.include.abl",
|
|
3375
|
-
"comment": "https://docs.progress.com/bundle/
|
|
3376
|
-
"begin": "(
|
|
3574
|
+
"comment": "https://docs.progress.com/bundle/abl-reference/page/Include-file-reference.html. Filesystem names can be unicode",
|
|
3575
|
+
"begin": "({)\\s*(['\"]?([\\\\\\/\\w$\\-]+)(\\.[\\w]+['\"]?)?)",
|
|
3377
3576
|
"beginCaptures": {
|
|
3378
3577
|
"1": {
|
|
3379
3578
|
"name": "punctuation.section.abl"
|
|
3380
3579
|
},
|
|
3381
3580
|
"2": {
|
|
3382
|
-
"name": "entity.name.include.abl"
|
|
3581
|
+
"name": "entity.name.include.abl",
|
|
3582
|
+
"comment": "The include name may be quoted"
|
|
3383
3583
|
}
|
|
3384
3584
|
},
|
|
3385
3585
|
"end": "\\s*(})\\s*",
|
|
@@ -3393,13 +3593,12 @@
|
|
|
3393
3593
|
"include": "#argument-reference"
|
|
3394
3594
|
},
|
|
3395
3595
|
{
|
|
3396
|
-
"match": "(?<=\\s)(&[a-zA-
|
|
3596
|
+
"match": "(?<=\\s)(&[a-zA-Z0-9][a-zA-Z0-9_\\-#$%#$\\-%\\.]+)\\s*(=)?",
|
|
3397
3597
|
"name": "meta.include.argument.abl",
|
|
3398
3598
|
"comment": "This is intended to catch '&arg' and '&arg=' ",
|
|
3399
3599
|
"captures": {
|
|
3400
3600
|
"1": {
|
|
3401
|
-
"name": "support.other.argument.abl"
|
|
3402
|
-
"comment": "you can use variable names, field names, and reserved words as argument names."
|
|
3601
|
+
"name": "support.other.argument.abl"
|
|
3403
3602
|
},
|
|
3404
3603
|
"2": {
|
|
3405
3604
|
"name": "keyword.operator.source.abl"
|
|
@@ -3410,51 +3609,35 @@
|
|
|
3410
3609
|
"include": "#string"
|
|
3411
3610
|
},
|
|
3412
3611
|
{
|
|
3413
|
-
"match": "(
|
|
3414
|
-
"comment": "non-string argument values
|
|
3415
|
-
"name": "meta.include-named-argument",
|
|
3612
|
+
"match": "([a-zA-Z0-9][a-zA-Z0-9_\\-#$%#$\\-%\\.:]+)\\b",
|
|
3613
|
+
"comment": "non-string argument values",
|
|
3416
3614
|
"captures": {
|
|
3417
3615
|
"1": {
|
|
3418
|
-
"name": "support.other.argument.abl"
|
|
3419
|
-
"comment": "you can use variable names, field names, and reserved words as argument names."
|
|
3420
|
-
},
|
|
3421
|
-
"2": {
|
|
3422
|
-
"name": "keyword.operator.source.abl"
|
|
3616
|
+
"name": "support.other.argument.abl"
|
|
3423
3617
|
}
|
|
3424
3618
|
}
|
|
3425
3619
|
},
|
|
3426
3620
|
{
|
|
3427
|
-
"
|
|
3428
|
-
|
|
3429
|
-
{
|
|
3430
|
-
"match": "(?<=\\s)(&[a-zA-Z][a-zA-Z0-9\\#\\$\\-\\_\\%\\.]+)\\s*(=?)",
|
|
3431
|
-
"comment": "non-string argument values after the &arg = ",
|
|
3432
|
-
"name": "meta.include-named-argument",
|
|
3621
|
+
"match": "(?<=\\=)(/\\*+)|(\\*+/)|(//)",
|
|
3622
|
+
"comment": "Comment start/stop argument values",
|
|
3433
3623
|
"captures": {
|
|
3434
|
-
"
|
|
3435
|
-
"name": "support.other.argument.abl"
|
|
3436
|
-
"comment": "you can use variable names, field names, and reserved words as argument names."
|
|
3437
|
-
},
|
|
3438
|
-
"2": {
|
|
3439
|
-
"name": "keyword.operator.source.abl"
|
|
3624
|
+
"0": {
|
|
3625
|
+
"name": "support.other.argument.abl"
|
|
3440
3626
|
}
|
|
3441
3627
|
}
|
|
3442
3628
|
},
|
|
3443
3629
|
{
|
|
3444
|
-
"
|
|
3445
|
-
"
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
"comment": "you can use variable names, field names, and reserved words as argument names."
|
|
3450
|
-
}
|
|
3451
|
-
}
|
|
3630
|
+
"comment": "Argument references can be passed into includes as arguments",
|
|
3631
|
+
"include": "#argument-reference"
|
|
3632
|
+
},
|
|
3633
|
+
{
|
|
3634
|
+
"include": "#comment"
|
|
3452
3635
|
}
|
|
3453
3636
|
]
|
|
3454
3637
|
},
|
|
3455
3638
|
"argument-reference": {
|
|
3456
|
-
"comment": "https://docs.progress.com/bundle/
|
|
3457
|
-
"match": "\\s*((\\{\\s
|
|
3639
|
+
"comment": "https://docs.progress.com/bundle/abl-reference/page/Argument-reference.html",
|
|
3640
|
+
"match": "\\s*((\\{\\s*&[\\.a-zA-Z0-9_\\-#$%\\\/]+\\})|(\\{\\s*\\d+\\})|(\\{\\s*\\*\\}))\\s*",
|
|
3458
3641
|
"captures": {
|
|
3459
3642
|
"1": {
|
|
3460
3643
|
"name": "support.other.argument.abl"
|
|
@@ -3472,14 +3655,14 @@
|
|
|
3472
3655
|
]
|
|
3473
3656
|
},
|
|
3474
3657
|
"singlelinecomment": {
|
|
3475
|
-
"match": "
|
|
3658
|
+
"match": "//.*$",
|
|
3476
3659
|
"comment": "Was comment.source.abl but should be changed, per https://macromates.com/manual/en/language_grammars",
|
|
3477
3660
|
"name": "comment.line.double-slash.abl"
|
|
3478
3661
|
},
|
|
3479
3662
|
"multilinecomment": {
|
|
3480
|
-
"begin": "
|
|
3663
|
+
"begin": "/\\*",
|
|
3664
|
+
"end": "\\*/",
|
|
3481
3665
|
"contentName": "comment",
|
|
3482
|
-
"end": "\\*\\/",
|
|
3483
3666
|
"name": "comment.block.source.abl",
|
|
3484
3667
|
"patterns": [
|
|
3485
3668
|
{
|
|
@@ -3531,7 +3714,7 @@
|
|
|
3531
3714
|
"name": "punctuation.definition.string.begin.abl"
|
|
3532
3715
|
}
|
|
3533
3716
|
},
|
|
3534
|
-
"end": "(?i)(\")(:[
|
|
3717
|
+
"end": "(?i)(\")(:[LlRrTtCcUu]\\d*\\b)?",
|
|
3535
3718
|
"endCaptures": {
|
|
3536
3719
|
"1": {
|
|
3537
3720
|
"name": "punctuation.definition.string.end.abl"
|
|
@@ -3554,23 +3737,23 @@
|
|
|
3554
3737
|
"name": "storage.type.abl"
|
|
3555
3738
|
}
|
|
3556
3739
|
},
|
|
3557
|
-
"comment": "https://docs.progress.com/bundle/
|
|
3740
|
+
"comment": "https://docs.progress.com/bundle/abl-reference/page/Data-types.html"
|
|
3558
3741
|
},
|
|
3559
3742
|
"primitive-type": {
|
|
3560
|
-
"match": "(?i)(?<=^|\\s)(blob|
|
|
3743
|
+
"match": "(?i)(?<=^|\\s)(blob|(char(?:acter|acte|act|ac|a)?)|cha|ch|c|clob|com-handle|date|da|datetime|datetime-tz|(dec(?:imal|ima|im|i)?)|de|handle|int64|(int(?:eger|ege|eg|e)?)|in|i|(log(?:ical|ica|ic|i)?)|lo|l|(longch(?:ar|a)?)|memptr|raw|recid|rowid|widget-handle)(?![=a-zA-Z0-9_\\-#$%\\-])",
|
|
3561
3744
|
"captures": {
|
|
3562
3745
|
"1": {
|
|
3563
3746
|
"name": "storage.type.abl"
|
|
3564
3747
|
}
|
|
3565
3748
|
},
|
|
3566
|
-
"comment": "https://docs.progress.com/bundle/
|
|
3749
|
+
"comment": "https://docs.progress.com/bundle/abl-reference/page/Data-types.html"
|
|
3567
3750
|
},
|
|
3568
3751
|
"numeric": {
|
|
3569
|
-
"match": "(?<![
|
|
3752
|
+
"match": "(?<![a-zA-Z0-9_\\-#$%-])(0[xX]\\h+)|(\\-?[0-9]+(\\.[0-9]+)?)",
|
|
3570
3753
|
"name": "constant.numeric.source.abl"
|
|
3571
3754
|
},
|
|
3572
3755
|
"abl-system-handles": {
|
|
3573
|
-
"match": "(?i)\\b(
|
|
3756
|
+
"match": "(?i)\\b(active-window|audit-control|audit-policy|clipboard|codebase-locator|color-table|compiler|current-window|debugger|default-window|dslog-manager|(error-stat(?:us|u)?)|(file-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|font-table|(last-even(?:t)?)|log-manager|profiler|(rcode-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|security-policy|self|session|source-procedure|super|target-procedure|this-object|this-procedure|web-context)\\b(?![#$\\-_%&])",
|
|
3574
3757
|
"captures": {
|
|
3575
3758
|
"1": {
|
|
3576
3759
|
"name": "variable.language.abl"
|
|
@@ -3581,16 +3764,17 @@
|
|
|
3581
3764
|
}
|
|
3582
3765
|
},
|
|
3583
3766
|
"timestamp-constant": {
|
|
3584
|
-
"match": "(?i)(?<=^|\\s*)(today|now)(
|
|
3767
|
+
"match": "(?i)(?<=^|\\s*)(today|now)(?!a-zA-Z0-9_\\-#$%|-)",
|
|
3768
|
+
"comment": "These are constants that can be used in initial values. This excludes MTIME and ETIME",
|
|
3585
3769
|
"name": "constant.language.abl"
|
|
3586
3770
|
},
|
|
3587
3771
|
"constant": {
|
|
3588
|
-
"match": "(?i)(?<=^|\\s|\\()(true|false|yes|no|\\?)(
|
|
3772
|
+
"match": "(?i)(?<=^|\\s|\\()(true|false|yes|no|\\?)(?![a-zA-Z0-9_\\-#$%])",
|
|
3589
3773
|
"name": "constant.language.abl"
|
|
3590
3774
|
},
|
|
3591
3775
|
"punctuation-colon": {
|
|
3592
|
-
"
|
|
3593
|
-
"
|
|
3776
|
+
"match": ":",
|
|
3777
|
+
"name": "punctuation.terminator.abl"
|
|
3594
3778
|
},
|
|
3595
3779
|
"punctuation-separator": {
|
|
3596
3780
|
"name": "punctuation.separator.abl",
|
|
@@ -3599,7 +3783,7 @@
|
|
|
3599
3783
|
"include": "#punctuation-comma"
|
|
3600
3784
|
},
|
|
3601
3785
|
{
|
|
3602
|
-
"match": "(
|
|
3786
|
+
"match": "(:)",
|
|
3603
3787
|
"captures": {
|
|
3604
3788
|
"1": {
|
|
3605
3789
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -3647,11 +3831,14 @@
|
|
|
3647
3831
|
},
|
|
3648
3832
|
{
|
|
3649
3833
|
"include": "#operator-with-space"
|
|
3834
|
+
},
|
|
3835
|
+
{
|
|
3836
|
+
"include": "#operator-with-trailing-space"
|
|
3650
3837
|
}
|
|
3651
3838
|
]
|
|
3652
3839
|
},
|
|
3653
3840
|
"operator-no-space": {
|
|
3654
|
-
"match": "(
|
|
3841
|
+
"match": "(\\+=|-=|\\\\=|\\*=|<=|<>|>=|=|\\+|-|/|<|>|\\*)",
|
|
3655
3842
|
"captures": {
|
|
3656
3843
|
"1": {
|
|
3657
3844
|
"name": "keyword.operator.source.abl"
|
|
@@ -3659,15 +3846,60 @@
|
|
|
3659
3846
|
}
|
|
3660
3847
|
},
|
|
3661
3848
|
"operator-with-space": {
|
|
3662
|
-
"match": "(?i)(?<=\\s)(
|
|
3663
|
-
"comment": "Lookahead and -behind for the spaces
|
|
3849
|
+
"match": "(?i)(?<=\\s)(contains|begins|matches|eq|le|lt|ge|gt|ne)(?=\\s|\\()",
|
|
3850
|
+
"comment": "Lookahead and -behind for the spaces",
|
|
3851
|
+
"captures": {
|
|
3852
|
+
"1": {
|
|
3853
|
+
"name": "keyword.operator.source.abl"
|
|
3854
|
+
}
|
|
3855
|
+
}
|
|
3856
|
+
},
|
|
3857
|
+
"operator-with-trailing-space": {
|
|
3858
|
+
"match": "\\b([Nn][Oo][Tt])(?=\\s|\\()",
|
|
3859
|
+
"comment": "Lookahead only for the spaces, so that in particular the NOT is captured properly",
|
|
3664
3860
|
"captures": {
|
|
3665
3861
|
"1": {
|
|
3666
3862
|
"name": "keyword.operator.source.abl"
|
|
3667
3863
|
}
|
|
3668
3864
|
}
|
|
3669
3865
|
},
|
|
3866
|
+
"new-record": {
|
|
3867
|
+
"comment": "This scope MUST be called after before type-reference (especially new-class) to avoid types being captured as tables",
|
|
3868
|
+
"patterns": [
|
|
3869
|
+
{
|
|
3870
|
+
"comment": " NEW\\s+( <buffer> )",
|
|
3871
|
+
"match": "(?i)\\s*(new)\\s+(\\()\\s*([a-zA-Z_][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*(\\))",
|
|
3872
|
+
"captures": {
|
|
3873
|
+
"1": {
|
|
3874
|
+
"name": "support.function.abl"
|
|
3875
|
+
},
|
|
3876
|
+
"2": {
|
|
3877
|
+
"name": "meta.brace.round.js"
|
|
3878
|
+
},
|
|
3879
|
+
"3": {
|
|
3880
|
+
"name": "storage.data.table.abl"
|
|
3881
|
+
},
|
|
3882
|
+
"5": {
|
|
3883
|
+
"name": "meta.brace.round.js"
|
|
3884
|
+
}
|
|
3885
|
+
}
|
|
3886
|
+
},
|
|
3887
|
+
{
|
|
3888
|
+
"comment": " NEW <buffer>. The position of the negative lookahead (?!...) is very important",
|
|
3889
|
+
"match": "(?i)\\s*((new)\\s+(?!.*\\()([a-zA-Z_][a-zA-Z0-9_\\-#$%\\.]*))",
|
|
3890
|
+
"captures": {
|
|
3891
|
+
"2": {
|
|
3892
|
+
"name": "support.function.abl"
|
|
3893
|
+
},
|
|
3894
|
+
"3": {
|
|
3895
|
+
"name": "storage.data.table.abl"
|
|
3896
|
+
}
|
|
3897
|
+
}
|
|
3898
|
+
}
|
|
3899
|
+
]
|
|
3900
|
+
},
|
|
3670
3901
|
"keywords": {
|
|
3902
|
+
"comment": "These scopes contain statements, not all the keywords. Methods, attributes and functions have their own scopes.",
|
|
3671
3903
|
"patterns": [
|
|
3672
3904
|
{
|
|
3673
3905
|
"include": "#keywords-A"
|
|
@@ -3748,7 +3980,7 @@
|
|
|
3748
3980
|
},
|
|
3749
3981
|
"keywords-A": {
|
|
3750
3982
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3751
|
-
"match": "(?i)\\b(
|
|
3983
|
+
"match": "(?i)\\b((accum(?:ulate|ulat|ula|ul|u)?)|(ambig(?:uous|uou|uo|u)?)|(array-m(?:essage|essag|essa|ess|es|e)?)|(asc(?:ending|endin|endi|end|en|e)?)|(avail(?:able|abl|ab|a)?)|(ave(?:rage|rag|ra|r)?)|abort|abstract|across|active-form|active-window|add|advise|aggregate|alert-box|all|allow-replication|alter|alternate-key|and|ansi-only|any|any-key|any-printable|anywhere|append|append-line|application|apply|as|as-cursor|ask-overwrite|assembly|assign|at|attach|attachment|attribute-type|audit-control|audit-policy|authorization|auto-endkey|auto-go|automatic|avg)\\b(?![#$\\-_%&])",
|
|
3752
3984
|
"captures": {
|
|
3753
3985
|
"1": {
|
|
3754
3986
|
"name": "keyword.other.abl"
|
|
@@ -3757,7 +3989,7 @@
|
|
|
3757
3989
|
},
|
|
3758
3990
|
"keywords-B": {
|
|
3759
3991
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3760
|
-
"match": "(?i)\\b(
|
|
3992
|
+
"match": "(?i)\\b((backward(?:s)?)|(before-h(?:ide|id|i)?)|(bgc(?:olor|olo|ol|o)?)|(block-lev(?:el|e)?)|(border-b(?:ottom|otto|ott|ot|o)?)|(border-l(?:eft|ef|e)?)|(border-r(?:ight|igh|ig|i)?)|(border-t(?:op|o)?)|(buffer-comp(?:are|ar|a)?)|(button(?:s)?)|(button(?:s)?)|(by-variant-point(?:er|e)?)|back-tab|backspace|base-key|base64|batch|begins|bell|between|big-endian|binary|bind|bind-where|blob|block|both|bottom|bottom-column|break|break-line|browse|browse-column-data-types|browse-column-formats|browse-column-labels|browse-header|btos|buffer|buffer-copy|by|by-pointer|by-reference|by-value|byte)\\b(?![#$\\-_%&])",
|
|
3761
3993
|
"captures": {
|
|
3762
3994
|
"1": {
|
|
3763
3995
|
"name": "keyword.other.abl"
|
|
@@ -3766,7 +3998,7 @@
|
|
|
3766
3998
|
},
|
|
3767
3999
|
"keywords-C": {
|
|
3768
4000
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3769
|
-
"match": "(?i)\\b(
|
|
4001
|
+
"match": "(?i)\\b((center(?:ed|e)?)|(char(?:acter|acte|act|ac|a)?)|(colon-align(?:ed|e)?)|(column(?:s)?)|(column-lab(?:el|e)?)|(column-label-bgc(?:olor|olo|ol|o)?)|(column-label-fgc(?:olor|olo|ol|o)?)|(column-label-height-c(?:hars|har|ha|h)?)|(column-label-height-p(?:ixels|ixel|ixe|ix|i)?)|(compare(?:s)?)|(context-pop(?:up|u)?)|(control-cont(?:ainer|aine|ain|ai|a)?)|(control-fram(?:e)?)|(current-lang(?:uage|uag|ua|u)?)|(curs(?:or|o)?)|cache|cache-size|call|cancel-pick|case|catch|cdecl|chained|character_length|check|check-mem-stomp|choices|choose|class|clear|client-principal|clipboard|clob|close|codebase-locator|col|col-of|collate|colon|color|color-table|column-codepage|column-label-dcolor|column-label-font|column-of|com-self|combo-box|command|compile|compiler|component-handle|component-self|connect|constrained|constructor|container-event|contains|contents|context|context-help-id|control|convert|copy|copy-lob|count|create|create-on-add|create-test-file|ctos|current|current-value|current_date|cursor-down|cursor-left|cursor-right|cursor-up|cut)\\b(?![#$\\-_%&])",
|
|
3770
4002
|
"captures": {
|
|
3771
4003
|
"1": {
|
|
3772
4004
|
"name": "keyword.other.abl"
|
|
@@ -3775,7 +4007,7 @@
|
|
|
3775
4007
|
},
|
|
3776
4008
|
"keywords-D": {
|
|
3777
4009
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3778
|
-
"match": "(?i)\\b(
|
|
4010
|
+
"match": "(?i)\\b((data-b(?:ind|in|i)?)|(data-rel(?:ation|atio|ati|at|a)?)|(def(?:ine|in|i)?)|(default-ex(?:tension|tensio|tensi|tens|ten|te|t)?)|(desc(?:ending|endin|endi|end|en|e)?)|(dict(?:ionary|ionar|iona|ion|io|i)?)|(discon(?:nect|nec|ne|n)?)|(disp(?:lay|la|l)?)|data-refresh-line|data-refresh-page|data-source|database|dataset|dataset-handle|dcolor|dde|dde-notify|debug-list|debug-set-tenant|debugger|declare|default|default-action|default-pop-up|default-untranslatable|default-window|defer-lob-fetch|define-user-event-manager|del|delegate|delete|delete-character|delete-column|delete-end-line|delete-field|delete-word|delimiter|deselect|deselect-extend|deselection|deselection-extend|destructor|detach|dialog-box|dialog-help|dir|disable|disabled|dismiss-menu|distinct|dll-call-type|do|dos|dos-end|dotnet-clr-loaded|double|down|drop|drop-down|drop-down-list|drop-file-notify|drop-target|dslog-manager|dump|dynamic-current-value|dynamic-new|dynamic-property)\\b(?![#$\\-_%&])",
|
|
3779
4011
|
"captures": {
|
|
3780
4012
|
"1": {
|
|
3781
4013
|
"name": "keyword.other.abl"
|
|
@@ -3784,7 +4016,7 @@
|
|
|
3784
4016
|
},
|
|
3785
4017
|
"keywords-E": {
|
|
3786
4018
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3787
|
-
"match": "(?i)\\b(
|
|
4019
|
+
"match": "(?i)\\b((error-stat(?:us|u)?)|(exclusive-l(?:ock|oc|o)?)|(exclusive-web(?:-user|-use|-us|-u|-)?)|each|echo|edge|editing|editor|editor-backtab|editor-tab|else|empty|empty-selection|enable|end|end-box-selection|end-error|end-key|end-move|end-resize|end-row-resize|end-search|endkey|enter-menubar|entry|enum|eq|error|escape|event|event-handler-context|events|except|exclusive|execute|exists|exit|expire|explicit|export|extended|extent|external|extract)\\b(?![#$\\-_%&])",
|
|
3788
4020
|
"captures": {
|
|
3789
4021
|
"1": {
|
|
3790
4022
|
"name": "keyword.other.abl"
|
|
@@ -3793,7 +4025,7 @@
|
|
|
3793
4025
|
},
|
|
3794
4026
|
"keywords-F": {
|
|
3795
4027
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3796
|
-
"match": "(?i)\\b(
|
|
4028
|
+
"match": "(?i)\\b((fgc(?:olor|olo|ol|o)?)|(field(?:s)?)|(file-access-d(?:ate|at|a)?)|(file-access-t(?:ime|im|i)?)|(file-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|(form(?:at|a)?)|(form(?:at|a)?)|(forward(?:s)?)|(fram(?:e)?)|(frame-val(?:ue|u)?)|(from-c(?:hars|har|ha|h)?)|(from-cur(?:rent|ren|re|r)?)|(from-p(?:ixels|ixel|ixe|ix|i)?)|false|false-leaks|fetch|file|filename|fill-in|filters|final|finally|find|find-case-sensitive|find-global|find-next|find-next-occurrence|find-prev-occurrence|find-previous|find-select|find-wrap-around|finder|firehose-cursor|first|fix-codepage|fixed-only|flags|flat-button|float|focus|focus-in|font|font-table|for|force-file|foreign-key-hidden|from|fromnoreorder|full-height|function|function-call-type)\\b(?![#$\\-_%&])",
|
|
3797
4029
|
"captures": {
|
|
3798
4030
|
"1": {
|
|
3799
4031
|
"name": "keyword.other.abl"
|
|
@@ -3802,7 +4034,7 @@
|
|
|
3802
4034
|
},
|
|
3803
4035
|
"keywords-G": {
|
|
3804
4036
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3805
|
-
"match": "(?i)\\b(
|
|
4037
|
+
"match": "(?i)\\b((get-key-val(?:ue|u)?)|ge|generate-md5|get|get-attr-call-type|get-dir|get-file|get-text-height|get-text-width|getbyte|global|go|go-on|goto|grant|grant-archive|grayed|grid-set|grid-unit-height|grid-unit-width|group|gt)\\b(?![#$\\-_%&])",
|
|
3806
4038
|
"captures": {
|
|
3807
4039
|
"1": {
|
|
3808
4040
|
"name": "keyword.other.abl"
|
|
@@ -3811,7 +4043,7 @@
|
|
|
3811
4043
|
},
|
|
3812
4044
|
"keywords-H": {
|
|
3813
4045
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3814
|
-
"match": "(?i)\\b(
|
|
4046
|
+
"match": "(?i)\\b((help-con(?:text|tex|te|t)?)|(helpfile-n(?:ame|am|a)?)|having|header|height|help-topic|hidden|hide|hint|home|horiz-end|horiz-home|horiz-scroll-drag|host-byte-order)\\b(?![#$\\-_%&])",
|
|
3815
4047
|
"captures": {
|
|
3816
4048
|
"1": {
|
|
3817
4049
|
"name": "keyword.other.abl"
|
|
@@ -3820,7 +4052,7 @@
|
|
|
3820
4052
|
},
|
|
3821
4053
|
"keywords-I": {
|
|
3822
4054
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3823
|
-
"match": "(?i)\\b(
|
|
4055
|
+
"match": "(?i)\\b((image-size-c(?:hars|har|ha|h)?)|(image-size-p(?:ixels|ixel|ixe|ix|i)?)|(info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|(input-o(?:utput|utpu|utp|ut|u)?)|if|image|image-down|image-insensitive|image-size|image-up|implements|import|in|index-hint|indexed-reposition|indicator|inherit-color-mode|inherits|init|initial|initial-dir|initial-filter|initiate|inner|input|insert|insert-column|insert-field|insert-field-data|insert-field-label|insert-mode|interface|into|is|item|iteration-changed)\\b(?![#$\\-_%&])",
|
|
3824
4056
|
"captures": {
|
|
3825
4057
|
"1": {
|
|
3826
4058
|
"name": "keyword.other.abl"
|
|
@@ -3829,7 +4061,7 @@
|
|
|
3829
4061
|
},
|
|
3830
4062
|
"keywords-J": {
|
|
3831
4063
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3832
|
-
"match": "(?i)\\b(join
|
|
4064
|
+
"match": "(?i)\\b(join|join-by-sqldb|join-on-select)\\b(?![#$\\-_%&])",
|
|
3833
4065
|
"captures": {
|
|
3834
4066
|
"1": {
|
|
3835
4067
|
"name": "keyword.other.abl"
|
|
@@ -3838,7 +4070,7 @@
|
|
|
3838
4070
|
},
|
|
3839
4071
|
"keywords-K": {
|
|
3840
4072
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3841
|
-
"match": "(?i)\\b(
|
|
4073
|
+
"match": "(?i)\\b((keep-frame-z(?:-order|-orde|-ord|-or|-o|-)?)|(key-func(?:tion|tio|ti|t)?)|keep-messages|keep-tab-order|key-code|key-label|keycache-join)\\b(?![#$\\-_%&])",
|
|
3842
4074
|
"captures": {
|
|
3843
4075
|
"1": {
|
|
3844
4076
|
"name": "keyword.other.abl"
|
|
@@ -3847,7 +4079,7 @@
|
|
|
3847
4079
|
},
|
|
3848
4080
|
"keywords-L": {
|
|
3849
4081
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3850
|
-
"match": "(?i)\\b(
|
|
4082
|
+
"match": "(?i)\\b((label-pfc(?:olor|olo|ol|o)?)|(last-even(?:t)?)|(left-align(?:ed|e)?)|(listi(?:ng|n)?)|(longch(?:ar|a)?)|label|landscape|last-key|le|leading|leak-detection|leave|left|left-end|length|like|like-sequential|line-down|line-left|line-right|line-up|little-endian|load|load-from|load-picture|load-result-into|lob-dir|locked|log-id|log-manager|long|lookahead|lower|lt)\\b(?![#$\\-_%&])",
|
|
3851
4083
|
"captures": {
|
|
3852
4084
|
"1": {
|
|
3853
4085
|
"name": "keyword.other.abl"
|
|
@@ -3856,7 +4088,7 @@
|
|
|
3856
4088
|
},
|
|
3857
4089
|
"keywords-M": {
|
|
3858
4090
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3859
|
-
"match": "(?i)\\b(
|
|
4091
|
+
"match": "(?i)\\b((margin-height-c(?:hars|har|ha|h)?)|(margin-height-p(?:ixels|ixel|ixe|ix|i)?)|(margin-width-c(?:hars|har|ha|h)?)|(margin-width-p(?:ixels|ixel|ixe|ix|i)?)|(min-schema-marshal(?:l)?)|(mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|machine-class|main-menu|map|margin-extra|margin-height|margin-width|matches|max|max-button|max-height|max-rows|max-size|max-width|maximize|md5-value|memptr|menu|menu-drop|menu-item|menubar|message|message-area|message-area-msg|message-line|method|min-height|min-size|min-width|mod|modulo|mouse|move|mpe|multiple-key|must-exist)\\b(?![#$\\-_%&])",
|
|
3860
4092
|
"captures": {
|
|
3861
4093
|
"1": {
|
|
3862
4094
|
"name": "keyword.other.abl"
|
|
@@ -3865,7 +4097,7 @@
|
|
|
3865
4097
|
},
|
|
3866
4098
|
"keywords-N": {
|
|
3867
4099
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3868
|
-
"match": "(?i)\\b(
|
|
4100
|
+
"match": "(?i)\\b((no-array-m(?:essage|essag|essa|ess|es|e)?)|(no-attr-l(?:ist|is|i)?)|(no-attr-s(?:pace|pac|pa|p)?)|(no-auto-tri(?:m)?)|(no-column-sc(?:rolling|rollin|rolli|roll|rol|ro|r)?)|(no-convert-3d(?:-colors|-color|-colo|-col|-co|-c|-)?)|(no-f(?:ill|il|i)?)|(no-inherit-bgc(?:olor|olo|ol|o)?)|(no-inherit-fgc(?:olor|olo|ol|o)?)|(no-label(?:s)?)|(no-mes(?:sage|sag|sa|s)?)|(no-prefe(?:tch|tc|t)?)|(no-query-o(?:rder-added|rder-adde|rder-add|rder-ad|rder-a|rder-|rder|rde|rd|r)?)|(no-query-u(?:nique-added|nique-adde|nique-add|nique-ad|nique-a|nique-|nique|niqu|niq|ni|n)?)|(no-return-val(?:ue|u)?)|(no-schema-marshal(?:l)?)|(no-scrollbar-v(?:ertical|ertica|ertic|erti|ert|er|e)?)|(no-tab(?:-stop|-sto|-st|-s|-)?)|(no-und(?:erline|erlin|erli|erl|er|e)?)|namespace-prefix|namespace-uri|native|ne|nested|new|new-instance|new-line|next|next-error|next-frame|next-prompt|next-word|no|no-apply|no-assign|no-attr|no-auto-validate|no-bind-where|no-box|no-console|no-convert|no-debug|no-drag|no-echo|no-error|no-firehose-cursor|no-focus|no-help|no-hide|no-index-hint|no-join-by-sqldb|no-keycache-join|no-lobs|no-lock|no-lookahead|no-map|no-pause|no-row-markers|no-scrolling|no-separate-connection|no-separators|no-undo|no-wait|no-word-wrap|node-type|non-serializable|none|not-active|null|num-copies|num-selected|numeric)\\b(?![#$\\-_%&])",
|
|
3869
4101
|
"captures": {
|
|
3870
4102
|
"1": {
|
|
3871
4103
|
"name": "keyword.other.abl"
|
|
@@ -3874,7 +4106,7 @@
|
|
|
3874
4106
|
},
|
|
3875
4107
|
"keywords-O": {
|
|
3876
4108
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3877
|
-
"match": "(?i)\\b(
|
|
4109
|
+
"match": "(?i)\\b((ole-invoke-loca(?:le|l)?)|(ole-names-loca(?:le|l)?)|object|octet_length|of|off|off-end|off-home|ok|ok-cancel|old|on|open|open-line-above|option|options-file|or|ordered-join|orientation|os-append|os-command|os-copy|os-create-dir|os-delete|os-dir|os-rename|os2|os400|otherwise|out-of-data|outer|outer-join|output|overlay|override)\\b(?![#$\\-_%&])",
|
|
3878
4110
|
"captures": {
|
|
3879
4111
|
"1": {
|
|
3880
4112
|
"name": "keyword.other.abl"
|
|
@@ -3883,7 +4115,7 @@
|
|
|
3883
4115
|
},
|
|
3884
4116
|
"keywords-P": {
|
|
3885
4117
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3886
|
-
"match": "(?i)\\b(
|
|
4118
|
+
"match": "(?i)\\b((page-wid(?:th|t)?)|(param(?:eter|ete|et|e)?)|(perf(?:ormance|ormanc|orman|orma|orm|or|o)?)|(pfc(?:olor|olo|ol|o)?)|(preproc(?:ess|es|e)?)|(presel(?:ect|ec|e)?)|(proce(?:dure|dur|du|d)?)|(prompt-f(?:or|o)?)|(put-key-val(?:ue|u)?)|package-private|package-protected|page|page-down|page-left|page-right|page-right-text|page-up|paged|parent-id-field|parent-window-close|partial-key|pascal|paste|pause|pick|pick-area|pick-both|pixels|portrait|precision|prev|prev-frame|prev-word|printer|printer-setup|private|privileges|procedure-call-type|procedure-complete|process|profile-file|profiler|prompt|promsgs|propath|property|protected|public|publish|put|put-bits|put-byte|put-bytes|put-double|put-float|put-int64|put-long|put-short|put-string|put-unsigned-long|put-unsigned-short|putbyte)\\b(?![#$\\-_%&])",
|
|
3887
4119
|
"captures": {
|
|
3888
4120
|
"1": {
|
|
3889
4121
|
"name": "keyword.other.abl"
|
|
@@ -3892,7 +4124,7 @@
|
|
|
3892
4124
|
},
|
|
3893
4125
|
"keywords-Q": {
|
|
3894
4126
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3895
|
-
"match": "(?i)\\b(
|
|
4127
|
+
"match": "(?i)\\b(query|query-tuning|question|quit)\\b(?![#$\\-_%&])",
|
|
3896
4128
|
"captures": {
|
|
3897
4129
|
"1": {
|
|
3898
4130
|
"name": "keyword.other.abl"
|
|
@@ -3901,7 +4133,7 @@
|
|
|
3901
4133
|
},
|
|
3902
4134
|
"keywords-R": {
|
|
3903
4135
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3904
|
-
"match": "(?i)\\b(
|
|
4136
|
+
"match": "(?i)\\b((rcode-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|(rect(?:angle|angl|ang|an|a)?)|(reposition-back(?:wards|ward|war|wa|w)?)|(reposition-forw(?:ards|ard|ar|a)?)|(reposition-parent-rel(?:ation|atio|ati|at|a)?)|(return-to-start-di(?:r)?)|(return-val(?:ue|u)?)|(right-align(?:ed|e)?)|(run-proc(?:edure|edur|edu|ed|e)?)|radio-set|raw|raw-transfer|read-available|read-exact-num|read-response|readkey|real|recall|recursive|reference-only|reinstate|release|repeat|replication-create|replication-delete|replication-write|reports|reposition|request|resize|result|resume-display|retain|retry-cancel|return|returns|reverse-from|revert|revoke|right|right-end|routine-level|row|row-created|row-deleted|row-display|row-entry|row-height|row-leave|row-modified|row-of|row-unmodified|rule|rule-row|rule-y|run)\\b(?![#$\\-_%&])",
|
|
3905
4137
|
"captures": {
|
|
3906
4138
|
"1": {
|
|
3907
4139
|
"name": "keyword.other.abl"
|
|
@@ -3910,7 +4142,7 @@
|
|
|
3910
4142
|
},
|
|
3911
4143
|
"keywords-S": {
|
|
3912
4144
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3913
|
-
"match": "(?i)\\b(
|
|
4145
|
+
"match": "(?i)\\b((sax-comple(?:te|t)?)|(scrolled-row-pos(?:ition|itio|iti|it|i)?)|(set-pointer-val(?:ue|u)?)|(share(?:-lock|-loc|-lo|-l|-)?)|(show-stat(?:s)?)|(side-lab(?:el|e)?)|(size-c(?:hars|har|ha|h)?)|(size-p(?:ixels|ixel|ixe|ix|i)?)|(stored-proc(?:edure|edur|edu|ed|e)?)|(sub-ave(?:rage|rag|ra|r)?)|(sub-max(?:imum|imu|im|i)?)|(sub-min(?:imum|imu|im|i)?)|(substr(?:ing|in|i)?)|save|save-as|sax-attributes|sax-parser-error|sax-reader|sax-running|sax-uninitialized|sax-write-begin|sax-write-complete|sax-write-content|sax-write-element|sax-write-error|sax-write-idle|sax-write-tag|sax-writer|sax-xml|schema|screen|screen-io|scroll|scroll-bars|scroll-horizontal|scroll-left|scroll-mode|scroll-notify|scroll-right|scroll-vertical|scrollbar-drag|scrolling|search-self|search-target|section|security-policy|seek|select|select-extend|select-on-join|select-repositioned-row|selected-items|selection|selection-extend|selection-list|self|send|sensitive|separate-connection|separators|serializable|serialize-hidden|serialize-name|server|server-socket|session|set|set-attr-call-type|set-byte-order|set-cell-focus|set-contents|set-db-logging|set-event-manager-option|set-option|set-state|settings|shared|short|signature|silent|simple|single|single-character|single-run|size|skip|skip-group-duplicates|skip-schema-check|slider|smallint|soap-fault|soap-header|soap-header-entryref|socket|some|source|source-procedure|space|sql|start|start-box-selection|start-extend-box-selection|start-mem-check|start-move|start-resize|start-row-resize|start-search|starting|static|status|status-area|status-area-msg|stdcall|stomp-detection|stomp-frequency|stop|stop-after|stop-display|stop-mem-check|stream|stream-handle|stream-io|string-xref|sub-count|sub-menu|sub-menu-help|sub-total|subscribe|sum|summary|super|suspend|system-dialog|system-help)\\b(?![#$\\-_%&])",
|
|
3914
4146
|
"captures": {
|
|
3915
4147
|
"1": {
|
|
3916
4148
|
"name": "keyword.other.abl"
|
|
@@ -3919,7 +4151,7 @@
|
|
|
3919
4151
|
},
|
|
3920
4152
|
"keywords-T": {
|
|
3921
4153
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3922
|
-
"match": "(?i)\\b(
|
|
4154
|
+
"match": "(?i)\\b((text-seg(?:-growth|-growt|-grow|-gro|-gr|-g|-)?)|(transact(?:ion|io|i)?)|tab|table-scan|target|target-procedure|temp-table|tenant|tenant-where|term|terminal|terminate|text|text-cursor|then|this-object|this-procedure|three-d|through|throw|thru|title|to|tooltip|top|top-column|topic|total|trailing|trans|transaction-mode|trigger|triggers|true|ttcodepage)\\b(?![#$\\-_%&])",
|
|
3923
4155
|
"captures": {
|
|
3924
4156
|
"1": {
|
|
3925
4157
|
"name": "keyword.other.abl"
|
|
@@ -3928,7 +4160,7 @@
|
|
|
3928
4160
|
},
|
|
3929
4161
|
"keywords-U": {
|
|
3930
4162
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3931
|
-
"match": "(?i)\\b(
|
|
4163
|
+
"match": "(?i)\\b((unbuff(?:ered|ere|er|e)?)|(underl(?:ine|in|i)?)|(unform(?:atted|atte|att|at|a)?)|(use-dic(?:t-exps|t-exp|t-ex|t-e|t-|t)?)|undo|union|unique|unix|unix-end|unless-hidden|unload|unsigned-byte|unsigned-int64|unsigned-integer|unsigned-long|unsigned-short|unsubscribe|up|update|upper|use|use-filename|use-index|use-revvideo|use-text|use-underline|use-widget-pool|user|using|utc-offset)\\b(?![#$\\-_%&])",
|
|
3932
4164
|
"captures": {
|
|
3933
4165
|
"1": {
|
|
3934
4166
|
"name": "keyword.other.abl"
|
|
@@ -3937,7 +4169,7 @@
|
|
|
3937
4169
|
},
|
|
3938
4170
|
"keywords-V": {
|
|
3939
4171
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3940
|
-
"match": "(?i)\\b(
|
|
4172
|
+
"match": "(?i)\\b((vari(?:able|abl|ab|a)?)|(verb(?:ose|os|o)?)|(vert(?:ical|ica|ic|i)?)|v6frame|validate|value-changed|values|var|view|view-as|virtual-height|virtual-width|vms|void)\\b(?![#$\\-_%&])",
|
|
3941
4173
|
"captures": {
|
|
3942
4174
|
"1": {
|
|
3943
4175
|
"name": "keyword.other.abl"
|
|
@@ -3946,7 +4178,7 @@
|
|
|
3946
4178
|
},
|
|
3947
4179
|
"keywords-W": {
|
|
3948
4180
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3949
|
-
"match": "(?i)\\b(
|
|
4181
|
+
"match": "(?i)\\b((web-con(?:text|tex|te|t)?)|(window-delayed-min(?:imize|imiz|imi|im|i)?)|(work-tab(?:le|l)?)|wait|wait-for|warning|web-notify|when|where|while|widget|widget-pool|width|window-close|window-maximized|window-minimized|window-name|window-normal|window-resized|window-restored|with|word-index|workfile)\\b(?![#$\\-_%&])",
|
|
3950
4182
|
"captures": {
|
|
3951
4183
|
"1": {
|
|
3952
4184
|
"name": "keyword.other.abl"
|
|
@@ -3955,7 +4187,7 @@
|
|
|
3955
4187
|
},
|
|
3956
4188
|
"keywords-X": {
|
|
3957
4189
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3958
|
-
"match": "(?i)\\b(
|
|
4190
|
+
"match": "(?i)\\b(x-document|x-noderef|x-of|xcode|xml-data-type|xml-node-name|xml-node-type|xor|xref|xref-xml)\\b(?![#$\\-_%&])",
|
|
3959
4191
|
"captures": {
|
|
3960
4192
|
"1": {
|
|
3961
4193
|
"name": "keyword.other.abl"
|
|
@@ -3964,7 +4196,7 @@
|
|
|
3964
4196
|
},
|
|
3965
4197
|
"keywords-Y": {
|
|
3966
4198
|
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3967
|
-
"match": "(?i)\\b(
|
|
4199
|
+
"match": "(?i)\\b(y-of|year|year-offset|yes|yes-no|yes-no-cancel)\\b(?![#$\\-_%&])",
|
|
3968
4200
|
"captures": {
|
|
3969
4201
|
"1": {
|
|
3970
4202
|
"name": "keyword.other.abl"
|
|
@@ -4048,7 +4280,7 @@
|
|
|
4048
4280
|
]
|
|
4049
4281
|
},
|
|
4050
4282
|
"handle-attributes-A": {
|
|
4051
|
-
"match": "(?i)(:)(
|
|
4283
|
+
"match": "(?i)(:)((ambig(?:uous|uou|uo|u)?)|(appl-alert(?:-boxes|-boxe|-box|-bo|-b|-)?)|(attr(?:-space|-spac|-spa|-sp|-s|-)?)|(auto-comp(?:letion|letio|leti|let|le|l)?)|(auto-ind(?:ent|en|e)?)|(auto-ret(?:urn|ur|u)?)|(auto-val(?:idate|idat|ida|id|i)?)|(auto-z(?:ap|a)?)|(avail(?:able|abl|ab|a)?)|accelerator|active|actor|adm-data|after-buffer|after-rowid|after-table|allow-column-searching|allow-prev-deserialization|always-on-top|appl-context-id|appserver-info|appserver-password|appserver-userid|async-request-count|async-request-handle|asynchronous|attached-pairlist|attribute-names|audit-event-context|auto-delete|auto-delete-xml|auto-end-key|auto-go|auto-resize|auto-synchronize|available-formats)\\b(?![#$\\-_%&])",
|
|
4052
4284
|
"captures": {
|
|
4053
4285
|
"1": {
|
|
4054
4286
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4059,7 +4291,7 @@
|
|
|
4059
4291
|
}
|
|
4060
4292
|
},
|
|
4061
4293
|
"handle-attributes-B": {
|
|
4062
|
-
"match": "(?i)(:)(
|
|
4294
|
+
"match": "(?i)(:)((back(?:ground|groun|grou|gro|gr|g)?)|(bgc(?:olor|olo|ol|o)?)|(border-bottom-c(?:hars|har|ha|h)?)|(border-bottom-p(?:ixels|ixel|ixe|ix|i)?)|(border-left-c(?:hars|har|ha|h)?)|(border-left-p(?:ixels|ixel|ixe|ix|i)?)|(border-right-c(?:hars|har|ha|h)?)|(border-right-p(?:ixels|ixel|ixe|ix|i)?)|(border-top-c(?:hars|har|ha|h)?)|(border-top-p(?:ixels|ixel|ixe|ix|i)?)|(box-select(?:able|abl|ab|a)?)|(buffer-n(?:ame|am|a)?)|base-ade|basic-logging|batch-mode|batch-size|before-buffer|before-rowid|before-table|blank|block-iteration-display|box|buffer-chars|buffer-field|buffer-group-id|buffer-group-name|buffer-handle|buffer-lines|buffer-partition-id|buffer-tenant-id|buffer-tenant-name|bytes-read|bytes-written)\\b(?![#$\\-_%&])",
|
|
4063
4295
|
"captures": {
|
|
4064
4296
|
"1": {
|
|
4065
4297
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4070,7 +4302,7 @@
|
|
|
4070
4302
|
}
|
|
4071
4303
|
},
|
|
4072
4304
|
"handle-attributes-C": {
|
|
4073
|
-
"match": "(?i)(:)(
|
|
4305
|
+
"match": "(?i)(:)((can-crea(?:te|t)?)|(can-dele(?:te|t)?)|(can-writ(?:e)?)|(case-sen(?:sitive|sitiv|siti|sit|si|s)?)|(center(?:ed|e)?)|(column(?:s)?)|(column-bgc(?:olor|olo|ol|o)?)|(column-fgc(?:olor|olo|ol|o)?)|(column-lab(?:el|e)?)|(column-pfc(?:olor|olo|ol|o)?)|(column-sc(?:rolling|rollin|rolli|roll|rol|ro|r)?)|(convert-3d(?:-colors|-color|-colo|-col|-co|-c|-)?)|(cpint(?:ernal|erna|ern|er|e)?)|(crc-val(?:ue|u)?)|(current-env(?:ironment|ironmen|ironme|ironm|iron|iro|ir|i)?)|cache|call-name|call-type|can-do-domain-support|can-read|cancel-button|cancelled|careful-paint|charset|checked|child-buffer|child-num|class-type|client-connection-id|client-tty|client-type|client-workstation|code|codepage|column-dcolor|column-font|column-movable|column-read-only|column-resizable|com-handle|complete|config-name|context-help|context-help-file|context-help-id|control-box|coverage|cpcase|cpcoll|cplog|cpprint|cprcodein|cprcodeout|cpstream|cpterm|current-changed|current-column|current-iteration|current-request-info|current-response-info|current-result-row|current-row-modified|current-window|cursor-char|cursor-line|cursor-offset)\\b(?![#$\\-_%&])",
|
|
4074
4306
|
"captures": {
|
|
4075
4307
|
"1": {
|
|
4076
4308
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4081,7 +4313,7 @@
|
|
|
4081
4313
|
}
|
|
4082
4314
|
},
|
|
4083
4315
|
"handle-attributes-D": {
|
|
4084
|
-
"match": "(?i)(:)(
|
|
4316
|
+
"match": "(?i)(:)((data-entry-ret(?:urn|ur|u)?)|(data-t(?:ype|yp|y)?)|(date-f(?:ormat|orma|orm|or|o)?)|(dde-i(?:d)?)|(default-but(?:ton|to|t)?)|(descript(?:ion|io|i)?)|(display-t(?:ype|yp|y)?)|data-source|data-source-complete-map|data-source-modified|data-source-rowid|dataset|db-context|db-list|db-references|dbname|dcolor|dde-error|dde-item|dde-name|dde-topic|deblank|debug-alert|decimals|default|default-buffer-handle|default-commit|default-string|default-value|delimiter|directory|disable-auto-zap|display-timezone|domain-description|domain-name|domain-type|down|drag-enabled|drop-target|dynamic)\\b(?![#$\\-_%&])",
|
|
4085
4317
|
"captures": {
|
|
4086
4318
|
"1": {
|
|
4087
4319
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4092,7 +4324,7 @@
|
|
|
4092
4324
|
}
|
|
4093
4325
|
},
|
|
4094
4326
|
"handle-attributes-E": {
|
|
4095
|
-
"match": "(?i)(:)(
|
|
4327
|
+
"match": "(?i)(:)((edge-c(?:hars|har|ha|h)?)|(edge-p(?:ixels|ixel|ixe|ix|i)?)|(error-col(?:umn|um|u)?)|(event-t(?:ype|yp|y)?)|edit-can-paste|edit-can-undo|empty|enabled|encoding|encryption-salt|end-user-prompt|entity-expansion-limit|entry-types-list|error|error-object|error-object-detail|error-row|error-stack-trace|error-string|event-group-id|event-handler|event-handler-object|event-procedure|event-procedure-context|exclusive-id|execution-log|exit-code|expand|expandable|extent)\\b(?![#$\\-_%&])",
|
|
4096
4328
|
"captures": {
|
|
4097
4329
|
"1": {
|
|
4098
4330
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4103,7 +4335,7 @@
|
|
|
4103
4335
|
}
|
|
4104
4336
|
},
|
|
4105
4337
|
"handle-attributes-F": {
|
|
4106
|
-
"match": "(?i)(:)(
|
|
4338
|
+
"match": "(?i)(:)((fgc(?:olor|olo|ol|o)?)|(file-create-d(?:ate|at|a)?)|(file-create-t(?:ime|im|i)?)|(file-mod-d(?:ate|at|a)?)|(file-mod-t(?:ime|im|i)?)|(file-off(?:set|se|s)?)|(first-async(?:-request|-reques|-reque|-requ|-req|-re|-r|-)?)|(first-proc(?:edure|edur|edu|ed|e)?)|(first-serv(?:er|e)?)|(first-tab-i(?:tem|te|t)?)|(fore(?:ground|groun|grou|gro|gr|g)?)|(form(?:at|a)?)|(formatte(?:d)?)|(fragmen(?:t)?)|(fram(?:e)?)|(frame-spa(?:cing|cin|ci|c)?)|(full-height-c(?:hars|har|ha|h)?)|(full-height-p(?:ixels|ixel|ixe|ix|i)?)|(full-pathn(?:ame|am|a)?)|(full-width(?:-chars|-char|-cha|-ch|-c|-)?)|(full-width-p(?:ixels|ixel|ixe|ix|i)?)|file-name|file-size|file-type|fill-mode|fill-where-string|filled|first-buffer|first-child|first-column|first-data-source|first-dataset|first-form|first-object|first-query|first-server-socket|first-socket|fit-last-column|flat-button|focused-row|focused-row-selected|font|foreign-key-hidden|form-input|form-long-input|forward-only|frame-col|frame-name|frame-row|frame-x|frame-y|frequency|function)\\b(?![#$\\-_%&])",
|
|
4107
4339
|
"captures": {
|
|
4108
4340
|
"1": {
|
|
4109
4341
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4114,7 +4346,7 @@
|
|
|
4114
4346
|
}
|
|
4115
4347
|
},
|
|
4116
4348
|
"handle-attributes-G": {
|
|
4117
|
-
"match": "(?i)(:)(
|
|
4349
|
+
"match": "(?i)(:)((graphic-e(?:dge|dg|d)?)|(grid-factor-h(?:orizontal|orizonta|orizont|orizon|orizo|oriz|ori|or|o)?)|(grid-factor-v(?:ertical|ertica|ertic|erti|ert|er|e)?)|(grid-unit-height-c(?:hars|har|ha|h)?)|(grid-unit-height-p(?:ixels|ixel|ixe|ix|i)?)|(grid-unit-width-c(?:hars|har|ha|h)?)|(grid-unit-width-p(?:ixels|ixel|ixe|ix|i)?)|grid-snap|grid-visible|group-box)\\b(?![#$\\-_%&])",
|
|
4118
4350
|
"captures": {
|
|
4119
4351
|
"1": {
|
|
4120
4352
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4125,7 +4357,7 @@
|
|
|
4125
4357
|
}
|
|
4126
4358
|
},
|
|
4127
4359
|
"handle-attributes-H": {
|
|
4128
|
-
"match": "(?i)(:)(
|
|
4360
|
+
"match": "(?i)(:)((height-c(?:hars|har|ha|h)?)|(height-p(?:ixels|ixel|ixe|ix|i)?)|(hori(?:zontal|zonta|zont|zon|zo|z)?)|handle|handler|has-lobs|has-records|help|hidden|html-charset|html-end-of-line|html-end-of-page|html-frame-begin|html-frame-end|html-header-begin|html-header-end|html-title-begin|html-title-end|hwnd)\\b(?![#$\\-_%&])",
|
|
4129
4361
|
"captures": {
|
|
4130
4362
|
"1": {
|
|
4131
4363
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4136,7 +4368,7 @@
|
|
|
4136
4368
|
}
|
|
4137
4369
|
},
|
|
4138
4370
|
"handle-attributes-I": {
|
|
4139
|
-
"match": "(?i)(:)(
|
|
4371
|
+
"match": "(?i)(:)((icfparam(?:eter|ete|et|e)?)|(ignore-current-mod(?:ified|ifie|ifi|if|i)?)|(index-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|(inherit-bgc(?:olor|olo|ol|o)?)|(inherit-fgc(?:olor|olo|ol|o)?)|(is-clas(?:s)?)|(is-partitione(?:d)?)|icon|image|image-down|image-insensitive|image-up|immediate-display|in-handle|index|initial|inner-chars|inner-lines|input-value|instantiating-procedure|internal-entries|is-json|is-multi-tenant|is-open|is-parameter-set|is-xml|items-per-row)\\b(?![#$\\-_%&])",
|
|
4140
4372
|
"captures": {
|
|
4141
4373
|
"1": {
|
|
4142
4374
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4147,7 +4379,7 @@
|
|
|
4147
4379
|
}
|
|
4148
4380
|
},
|
|
4149
4381
|
"handle-attributes-K": {
|
|
4150
|
-
"match": "(?i)(:)(
|
|
4382
|
+
"match": "(?i)(:)((keep-frame-z(?:-order|-orde|-ord|-or|-o|-)?)|keep-connection-open|keep-security-cache|key|keys)\\b(?![#$\\-_%&])",
|
|
4151
4383
|
"captures": {
|
|
4152
4384
|
"1": {
|
|
4153
4385
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4158,7 +4390,7 @@
|
|
|
4158
4390
|
}
|
|
4159
4391
|
},
|
|
4160
4392
|
"handle-attributes-L": {
|
|
4161
|
-
"match": "(?i)(:)(
|
|
4393
|
+
"match": "(?i)(:)((label-bgc(?:olor|olo|ol|o)?)|(label-dc(?:olor|olo|ol|o)?)|(label-fgc(?:olor|olo|ol|o)?)|(language(?:s)?)|(last-async(?:-request|-reques|-reque|-requ|-req|-re|-r|-)?)|(last-proce(?:dure|dur|du|d)?)|(last-serv(?:er|e)?)|(last-tab-i(?:tem|te|t)?)|label|label-font|labels|labels-have-colons|large|large-to-small|last-batch|last-child|last-form|last-object|last-server-socket|last-socket|length|library|library-calling-convention|line|list-item-pairs|list-items|listings|literal-question|local-host|local-name|local-port|local-version-info|locator-column-number|locator-line-number|locator-public-id|locator-system-id|locator-type|locked|log-entry-types|log-threshold|logfile-name|logging-level|login-expiration-timestamp|login-host|login-state)\\b(?![#$\\-_%&])",
|
|
4162
4394
|
"captures": {
|
|
4163
4395
|
"1": {
|
|
4164
4396
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4169,7 +4401,7 @@
|
|
|
4169
4401
|
}
|
|
4170
4402
|
},
|
|
4171
4403
|
"handle-attributes-M": {
|
|
4172
|
-
"match": "(?i)(:)(
|
|
4404
|
+
"match": "(?i)(:)((max-height-c(?:hars|har|ha|h)?)|(max-height-p(?:ixels|ixel|ixe|ix|i)?)|(max-val(?:ue|u)?)|(max-width-c(?:hars|har|ha|h)?)|(max-width-p(?:ixels|ixel|ixe|ix|i)?)|(menu-k(?:ey|e)?)|(menu-m(?:ouse|ous|ou|o)?)|(min-column-width-c(?:hars|har|ha|h)?)|(min-column-width-p(?:ixels|ixel|ixe|ix|i)?)|(min-height-c(?:hars|har|ha|h)?)|(min-height-p(?:ixels|ixel|ixe|ix|i)?)|(min-schema-marshal(?:l)?)|(min-val(?:ue|u)?)|(min-width-c(?:hars|har|ha|h)?)|(min-width-p(?:ixels|ixel|ixe|ix|i)?)|(mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|mandatory|manual-highlight|max-button|max-chars|max-data-guess|maximum-level|menu-bar|merge-by-field|message-area|message-area-font|min-button|modified|movable|multi-compile|multiple|multitasking-interval|must-understand)\\b(?![#$\\-_%&])",
|
|
4173
4405
|
"captures": {
|
|
4174
4406
|
"1": {
|
|
4175
4407
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4180,7 +4412,7 @@
|
|
|
4180
4412
|
}
|
|
4181
4413
|
},
|
|
4182
4414
|
"handle-attributes-N": {
|
|
4183
|
-
"match": "(?i)(:)(
|
|
4415
|
+
"match": "(?i)(:)((next-col(?:umn|um|u)?)|(next-tab-ite(?:m)?)|(no-schema-marshal(?:l)?)|(no-val(?:idate|idat|ida|id|i)?)|(num-but(?:tons|ton|to|t)?)|(num-col(?:umns|umn|um|u)?)|(num-locked-col(?:umns|umn|um|u)?)|(num-repl(?:aced|ace|ac|a)?)|(num-visible-col(?:umns|umn|um|u)?)|(numeric-dec(?:imal-point|imal-poin|imal-poi|imal-po|imal-p|imal-|imal|ima|im|i)?)|(numeric-f(?:ormat|orma|orm|or|o)?)|(numeric-sep(?:arator|arato|arat|ara|ar|a)?)|name|namespace-prefix|namespace-uri|needs-appserver-prompt|needs-prompt|nested|new|new-row|next-rowid|next-sibling|no-current-value|no-empty-space|no-focus|node-value|nonamespace-schema-location|num-buffers|num-child-relations|num-children|num-dropped-files|num-entries|num-fields|num-formats|num-header-entries|num-items|num-iterations|num-lines|num-log-files|num-messages|num-parameters|num-references|num-relations|num-results|num-selected-rows|num-selected-widgets|num-source-buffers|num-tabs|num-to-retain|num-top-buffers)\\b(?![#$\\-_%&])",
|
|
4184
4416
|
"captures": {
|
|
4185
4417
|
"1": {
|
|
4186
4418
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4191,7 +4423,7 @@
|
|
|
4191
4423
|
}
|
|
4192
4424
|
},
|
|
4193
4425
|
"handle-attributes-O": {
|
|
4194
|
-
"match": "(?i)(:)(
|
|
4426
|
+
"match": "(?i)(:)((on-frame(?:-border|-borde|-bord|-bor|-bo|-b|-)?)|options|ordinal|origin-handle|origin-rowid|overlay|owner|owner-document)\\b(?![#$\\-_%&])",
|
|
4195
4427
|
"captures": {
|
|
4196
4428
|
"1": {
|
|
4197
4429
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4202,7 +4434,7 @@
|
|
|
4202
4434
|
}
|
|
4203
4435
|
},
|
|
4204
4436
|
"handle-attributes-P": {
|
|
4205
|
-
"match": "(?i)(:)(
|
|
4437
|
+
"match": "(?i)(:)((page-bot(?:tom|to|t)?)|(param(?:eter|ete|et|e)?)|(parent-rel(?:ation|atio|ati|at|a)?)|(pbe-hash-alg(?:orithm|orith|orit|ori|or|o)?)|(persist(?:ent|en|e)?)|(pfc(?:olor|olo|ol|o)?)|(pixels-per-col(?:umn|um|u)?)|(popup-m(?:enu|en|e)?)|(popup-o(?:nly|nl|n)?)|(prev-col(?:umn|um|u)?)|(prev-tab-i(?:tem|te|t)?)|(private-d(?:ata|at|a)?)|(progress-s(?:ource|ourc|our|ou|o)?)|page-top|parent|parent-buffer|parent-fields-after|parent-fields-before|parent-id-relation|parse-status|password-field|pathname|pbe-key-rounds|persistent-cache-disabled|persistent-procedure|pixels-per-row|position|prefer-dataset|prepare-string|prepared|prev-sibling|primary|primary-passphrase|printer-control-handle|printer-hdc|printer-name|printer-port|procedure-name|procedure-type|profiling|proxy|proxy-password|proxy-userid|public-id|published-events)\\b(?![#$\\-_%&])",
|
|
4206
4438
|
"captures": {
|
|
4207
4439
|
"1": {
|
|
4208
4440
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4213,7 +4445,7 @@
|
|
|
4213
4445
|
}
|
|
4214
4446
|
},
|
|
4215
4447
|
"handle-attributes-Q": {
|
|
4216
|
-
"match": "(?i)(:)(
|
|
4448
|
+
"match": "(?i)(:)(qualified-user-id|query|query-off-end|quit)\\b(?![#$\\-_%&])",
|
|
4217
4449
|
"captures": {
|
|
4218
4450
|
"1": {
|
|
4219
4451
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4224,7 +4456,7 @@
|
|
|
4224
4456
|
}
|
|
4225
4457
|
},
|
|
4226
4458
|
"handle-attributes-R": {
|
|
4227
|
-
"match": "(?i)(:)(
|
|
4459
|
+
"match": "(?i)(:)((record-len(?:gth|gt|g)?)|(relation-fi(?:elds|eld|el|e)?)|(resiza(?:ble|bl|b)?)|(retain-s(?:hape|hap|ha|h)?)|(return-ins(?:erted|erte|ert|er|e)?)|(return-val(?:ue|u)?)|(row-height-c(?:hars|har|ha|h)?)|(row-height-p(?:ixels|ixel|ixe|ix|i)?)|(row-ma(?:rkers|rker|rke|rk|r)?)|radio-buttons|read-only|recid|recursive|refreshable|rejected|relations-active|remote|remote-host|remote-port|reposition|request-info|resize|response-info|restart-row|restart-rowid|return-value-data-type|return-value-dll-type|role|roles|rounded|row|row-resizable|row-state|rowid)\\b(?![#$\\-_%&])",
|
|
4228
4460
|
"captures": {
|
|
4229
4461
|
"1": {
|
|
4230
4462
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4235,7 +4467,7 @@
|
|
|
4235
4467
|
}
|
|
4236
4468
|
},
|
|
4237
4469
|
"handle-attributes-S": {
|
|
4238
|
-
"match": "(?i)(:)(
|
|
4470
|
+
"match": "(?i)(:)((screen-val(?:ue|u)?)|(scrollbar-h(?:orizontal|orizonta|orizont|orizon|orizo|oriz|ori|or|o)?)|(scrollbar-v(?:ertical|ertica|ertic|erti|ert|er|e)?)|(separator-fgc(?:olor|olo|ol|o)?)|(server-connection-bo(?:und|un|u)?)|(server-connection-bound-re(?:quest|ques|que|qu|q)?)|(server-connection-co(?:ntext|ntex|nte|nt|n)?)|(show-in-task(?:bar|ba|b)?)|(side-label-h(?:andle|andl|and|an|a)?)|(skip-deleted-rec(?:ord|or|o)?)|(stoppe(?:d)?)|(super-proc(?:edures|edure|edur|edu|ed|e)?)|(suppress-w(?:arnings|arning|arnin|arni|arn|ar|a)?)|(system-alert(?:-boxes|-boxe|-box|-bo|-b|-)?)|save-where-string|schema-change|schema-location|schema-marshal|schema-path|screen-lines|scroll-bars|scrollable|seal-timestamp|selectable|selected|selection-end|selection-start|selection-text|sensitive|separators|serialize-hidden|serialize-name|server|server-connection-id|server-operating-mode|session-end|session-id|side-labels|signature-value|single-run|singleton|small-icon|small-title|soap-fault-actor|soap-fault-code|soap-fault-detail|soap-fault-misunderstood-header|soap-fault-node|soap-fault-role|soap-fault-string|soap-fault-subcode|soap-version|sort|sort-ascending|sort-number|ssl-server-name|standalone|startup-parameters|state-detail|statistics|status-area|status-area-font|stop|stop-object|stream|stretch-to-fit|strict|strict-entity-resolution|subtype|suppress-namespace-processing|suppress-warnings-list|symmetric-encryption-aad|symmetric-encryption-algorithm|symmetric-encryption-iv|symmetric-encryption-key|symmetric-support|system-id)\\b(?![#$\\-_%&])",
|
|
4239
4471
|
"captures": {
|
|
4240
4472
|
"1": {
|
|
4241
4473
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4246,7 +4478,7 @@
|
|
|
4246
4478
|
}
|
|
4247
4479
|
},
|
|
4248
4480
|
"handle-attributes-T": {
|
|
4249
|
-
"match": "(?i)(:)(
|
|
4481
|
+
"match": "(?i)(:)((table-num(?:ber|be|b)?)|(temp-dir(?:ectory|ector|ecto|ect|ec|e)?)|(title-bgc(?:olor|olo|ol|o)?)|(title-dc(?:olor|olo|ol|o)?)|(title-fgc(?:olor|olo|ol|o)?)|(title-fo(?:nt|n)?)|(trans-init-proc(?:edure|edur|edu|ed|e)?)|(transact(?:ion|io|i)?)|(transpar(?:ent|en|e)?)|tab-position|tab-stop|table|table-crc-list|table-handle|table-list|text-selected|thread-safe|three-d|tic-marks|time-source|timezone|title|toggle-box|tooltip|tooltips|top-nav-query|top-only|trace-filter|tracing|tracking-changes|type)\\b(?![#$\\-_%&])",
|
|
4250
4482
|
"captures": {
|
|
4251
4483
|
"1": {
|
|
4252
4484
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4257,7 +4489,7 @@
|
|
|
4257
4489
|
}
|
|
4258
4490
|
},
|
|
4259
4491
|
"handle-attributes-U": {
|
|
4260
|
-
"match": "(?i)(:)(
|
|
4492
|
+
"match": "(?i)(:)(undo|undo-throw-scope|unique-id|unique-match|url|url-password|url-userid|user-id)\\b(?![#$\\-_%&])",
|
|
4261
4493
|
"captures": {
|
|
4262
4494
|
"1": {
|
|
4263
4495
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4268,7 +4500,7 @@
|
|
|
4268
4500
|
}
|
|
4269
4501
|
},
|
|
4270
4502
|
"handle-attributes-V": {
|
|
4271
|
-
"match": "(?i)(:)(
|
|
4503
|
+
"match": "(?i)(:)((validate-expressio(?:n)?)|(virtual-height-c(?:hars|har|ha|h)?)|(virtual-height-p(?:ixels|ixel|ixe|ix|i)?)|(virtual-width-c(?:hars|har|ha|h)?)|(virtual-width-p(?:ixels|ixel|ixe|ix|i)?)|v6display|validate-message|validate-xml|validation-enabled|value|version|view-as|view-first-column-on-reopen|visible)\\b(?![#$\\-_%&])",
|
|
4272
4504
|
"captures": {
|
|
4273
4505
|
"1": {
|
|
4274
4506
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4279,7 +4511,7 @@
|
|
|
4279
4511
|
}
|
|
4280
4512
|
},
|
|
4281
4513
|
"handle-attributes-W": {
|
|
4282
|
-
"match": "(?i)(:)(
|
|
4514
|
+
"match": "(?i)(:)((widget-e(?:nter|nte|nt|n)?)|(widget-l(?:eave|eav|ea|e)?)|(width-c(?:hars|har|ha|h)?)|(width-p(?:ixels|ixel|ixe|ix|i)?)|(window-sta(?:te|t)?)|(window-sys(?:tem|te|t)?)|(work-area-height-p(?:ixels|ixel|ixe|ix|i)?)|(work-area-width-p(?:ixels|ixel|ixe|ix|i)?)|warning|wc-admin-app|where-string|widget-id|window|word-wrap|work-area-x|work-area-y|write-status)\\b(?![#$\\-_%&])",
|
|
4283
4515
|
"captures": {
|
|
4284
4516
|
"1": {
|
|
4285
4517
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4290,7 +4522,7 @@
|
|
|
4290
4522
|
}
|
|
4291
4523
|
},
|
|
4292
4524
|
"handle-attributes-X": {
|
|
4293
|
-
"match": "(?i)(:)(xml-
|
|
4525
|
+
"match": "(?i)(:)((xml-schema-pat(?:h)?)|x|x-document|xcode-session-key|xml-data-type|xml-entity-expansion-limit|xml-node-name|xml-node-type|xml-strict-entity-resolution|xml-suppress-namespace-processing)\\b(?![#$\\-_%&])",
|
|
4294
4526
|
"captures": {
|
|
4295
4527
|
"1": {
|
|
4296
4528
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4301,7 +4533,7 @@
|
|
|
4301
4533
|
}
|
|
4302
4534
|
},
|
|
4303
4535
|
"handle-attributes-Y": {
|
|
4304
|
-
"match": "(?i)(:)(year-offset
|
|
4536
|
+
"match": "(?i)(:)(y|year-offset)\\b(?![#$\\-_%&])",
|
|
4305
4537
|
"captures": {
|
|
4306
4538
|
"1": {
|
|
4307
4539
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4370,7 +4602,7 @@
|
|
|
4370
4602
|
]
|
|
4371
4603
|
},
|
|
4372
4604
|
"handle-methods-A": {
|
|
4373
|
-
"begin": "(?i)(:)(
|
|
4605
|
+
"begin": "(?i)(:)((add-calc-col(?:umn|um|u)?)|(add-events-proc(?:edure|edur|edu|ed|e)?)|(add-like-col(?:umn|um|u)?)|(add-rel(?:ation|atio|ati|at|a)?)|(add-super-proc(?:edure|edur|edu|ed|e)?)|accept-changes|accept-row-changes|add-buffer|add-columns-from|add-fields-from|add-first|add-header-entry|add-index-field|add-last|add-like-field|add-like-index|add-new-field|add-new-index|add-parent-id-relation|add-schema-location|add-source-buffer|append-child|apply-callback|attach-data-source|authentication-failed)\\s*(?=\\()",
|
|
4374
4606
|
"beginCaptures": {
|
|
4375
4607
|
"1": {
|
|
4376
4608
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4392,7 +4624,7 @@
|
|
|
4392
4624
|
]
|
|
4393
4625
|
},
|
|
4394
4626
|
"handle-methods-B": {
|
|
4395
|
-
"begin": "(?i)(:)(buffer-
|
|
4627
|
+
"begin": "(?i)(:)((buffer-comp(?:are|ar|a)?)|(buffer-releas(?:e)?)|begin-event-group|buffer-copy|buffer-create|buffer-delete|buffer-export|buffer-export-fields|buffer-field|buffer-import|buffer-import-fields|buffer-validate|buffer-value)\\s*(?=\\()",
|
|
4396
4628
|
"beginCaptures": {
|
|
4397
4629
|
"1": {
|
|
4398
4630
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4414,7 +4646,7 @@
|
|
|
4414
4646
|
]
|
|
4415
4647
|
},
|
|
4416
4648
|
"handle-methods-C": {
|
|
4417
|
-
"begin": "(?i)(:)(
|
|
4649
|
+
"begin": "(?i)(:)((clear-select(?:ion|io|i)?)|(clear-sort-arrow(?:s)?)|(convert-to-offs(?:et|e)?)|cancel-break|cancel-requests|cancel-requests-after|clear|clear-appl-context|clear-log|clone-node|close-log|connect|connected|copy-dataset|copy-sax-attributes|copy-temp-table|create-like|create-like-sequential|create-node|create-node-namespace|create-result-list-entry|current-query)\\s*(?=\\()",
|
|
4418
4650
|
"beginCaptures": {
|
|
4419
4651
|
"1": {
|
|
4420
4652
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4436,7 +4668,7 @@
|
|
|
4436
4668
|
]
|
|
4437
4669
|
},
|
|
4438
4670
|
"handle-methods-D": {
|
|
4439
|
-
"begin": "(?i)(:)(
|
|
4671
|
+
"begin": "(?i)(:)((debu(?:g)?)|(discon(?:nect|nec|ne|n)?)|declare-namespace|delete|delete-char|delete-current-row|delete-header-entry|delete-line|delete-node|delete-result-list-entry|delete-selected-row|delete-selected-rows|deselect-focused-row|deselect-rows|deselect-selected-row|detach-data-source|disable|disable-connections|disable-dump-triggers|disable-load-triggers|display-message|dump-logging-now)\\s*(?=\\()",
|
|
4440
4672
|
"beginCaptures": {
|
|
4441
4673
|
"1": {
|
|
4442
4674
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4458,7 +4690,7 @@
|
|
|
4458
4690
|
]
|
|
4459
4691
|
},
|
|
4460
4692
|
"handle-methods-E": {
|
|
4461
|
-
"begin": "(?i)(:)(
|
|
4693
|
+
"begin": "(?i)(:)(edit-clear|edit-copy|edit-cut|edit-paste|edit-undo|empty-dataset|empty-temp-table|enable|enable-connections|encode-domain-access-code|encrypt-audit-mac-key|end-document|end-element|end-event-group|end-file-drop|entry|export|export-principal|)\\s*(?=\\()",
|
|
4462
4694
|
"beginCaptures": {
|
|
4463
4695
|
"1": {
|
|
4464
4696
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4480,7 +4712,7 @@
|
|
|
4480
4712
|
]
|
|
4481
4713
|
},
|
|
4482
4714
|
"handle-methods-F": {
|
|
4483
|
-
"begin": "(?i)(:)(
|
|
4715
|
+
"begin": "(?i)(:)(fetch-selected-row|fill|find-by-rowid|find-current|find-first|find-last|find-unique|first-of)\\s*(?=\\()",
|
|
4484
4716
|
"beginCaptures": {
|
|
4485
4717
|
"1": {
|
|
4486
4718
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4502,7 +4734,7 @@
|
|
|
4502
4734
|
]
|
|
4503
4735
|
},
|
|
4504
4736
|
"handle-methods-G": {
|
|
4505
|
-
"begin": "(?i)(:)(get-
|
|
4737
|
+
"begin": "(?i)(:)((get-blue(?:-value|-valu|-val|-va|-v|-)?)|(get-browse-col(?:umn|um|u)?)|(get-child-rel(?:ation|atio|ati|at|a)?)|(get-curr(?:ent|en|e)?)|(get-file-offse(?:t)?)|(get-firs(?:t)?)|(get-green(?:-value|-valu|-val|-va|-v|-)?)|(get-header-entr(?:y)?)|(get-red(?:-value|-valu|-val|-va|-v|-)?)|(get-rel(?:ation|atio|ati|at|a)?)|(get-rgb(?:-value|-valu|-val|-va|-v|-)?)|(get-selected(?:-widget|-widge|-widg|-wid|-wi|-w|-)?)|(get-text-height-c(?:hars|har|ha|h)?)|(get-text-height-p(?:ixels|ixel|ixe|ix|i)?)|(get-text-width-c(?:hars|har|ha|h)?)|(get-text-width-p(?:ixels|ixel|ixe|ix|i)?)|(get-wait(?:-state|-stat|-sta|-st|-s|-)?)|get-attribute|get-attribute-node|get-binary-data|get-buffer-handle|get-bytes-available|get-callback-proc-context|get-callback-proc-name|get-cgi-list|get-cgi-long-value|get-cgi-value|get-changes|get-child|get-client|get-column|get-config-value|get-dataset-buffer|get-document-element|get-dropped-file|get-dynamic|get-error-column|get-error-row|get-file-name|get-index-by-namespace-name|get-index-by-qname|get-iteration|get-last|get-localname-by-index|get-message|get-message-type|get-next|get-node|get-number|get-parent|get-prev|get-printers|get-property|get-qname-by-index|get-repositioned-row|get-row|get-safe-user|get-serialized|get-signature|get-socket-option|get-source-buffer|get-tab-item|get-top-buffer|get-type-by-index|get-type-by-namespace-name|get-type-by-qname|get-uri-by-index|get-value-by-index|get-value-by-namespace-name|get-value-by-qname)\\s*(?=\\()",
|
|
4506
4738
|
"beginCaptures": {
|
|
4507
4739
|
"1": {
|
|
4508
4740
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4524,7 +4756,7 @@
|
|
|
4524
4756
|
]
|
|
4525
4757
|
},
|
|
4526
4758
|
"handle-methods-I": {
|
|
4527
|
-
"begin": "(?i)(:)(
|
|
4759
|
+
"begin": "(?i)(:)((index-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|(insert-b(?:acktab|ackta|ackt|ack|ac|a)?)|(insert-t(?:ab|a)?)|import-node|import-principal|increment-exclusive-id|initialize|initialize-document-type|initiate|insert|insert-attribute|insert-before|insert-file|insert-row|insert-string|invoke|is-row-selected|is-selected)\\s*(?=\\()",
|
|
4528
4760
|
"beginCaptures": {
|
|
4529
4761
|
"1": {
|
|
4530
4762
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4546,7 +4778,7 @@
|
|
|
4546
4778
|
]
|
|
4547
4779
|
},
|
|
4548
4780
|
"handle-methods-L": {
|
|
4549
|
-
"begin": "(?i)(:)(
|
|
4781
|
+
"begin": "(?i)(:)((load-mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|last-of|list-property-names|load|load-domains|load-icon|load-image|load-image-down|load-image-insensitive|load-image-up|load-small-icon|lock-registration|log-audit-event|logout|longchar-to-node-value|lookup|)\\s*(?=\\()",
|
|
4550
4782
|
"beginCaptures": {
|
|
4551
4783
|
"1": {
|
|
4552
4784
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4568,7 +4800,7 @@
|
|
|
4568
4800
|
]
|
|
4569
4801
|
},
|
|
4570
4802
|
"handle-methods-M": {
|
|
4571
|
-
"begin": "(?i)(:)(move-
|
|
4803
|
+
"begin": "(?i)(:)((move-after(?:-tab-item|-tab-ite|-tab-it|-tab-i|-tab-|-tab|-ta|-t|-)?)|(move-befor(?:e-tab-item|e-tab-ite|e-tab-it|e-tab-i|e-tab-|e-tab|e-ta|e-t|e-|e)?)|(move-col(?:umn|um|u)?)|(move-to-b(?:ottom|otto|ott|ot|o)?)|(move-to-t(?:op|o)?)|mark-new|mark-row-state|memptr-to-node-value|merge-changes|merge-row-changes|move-to-eof)\\s*(?=\\()",
|
|
4572
4804
|
"beginCaptures": {
|
|
4573
4805
|
"1": {
|
|
4574
4806
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4590,7 +4822,7 @@
|
|
|
4590
4822
|
]
|
|
4591
4823
|
},
|
|
4592
4824
|
"handle-methods-N": {
|
|
4593
|
-
"begin": "(?i)(:)(
|
|
4825
|
+
"begin": "(?i)(:)(node-value-to-longchar|node-value-to-memptr|normalize)\\s*(?=\\()",
|
|
4594
4826
|
"beginCaptures": {
|
|
4595
4827
|
"1": {
|
|
4596
4828
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4612,7 +4844,7 @@
|
|
|
4612
4844
|
]
|
|
4613
4845
|
},
|
|
4614
4846
|
"handle-methods-Q": {
|
|
4615
|
-
"begin": "(?i)(:)(query-
|
|
4847
|
+
"begin": "(?i)(:)(query-close|query-open|query-prepare)\\s*(?=\\()",
|
|
4616
4848
|
"beginCaptures": {
|
|
4617
4849
|
"1": {
|
|
4618
4850
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4634,7 +4866,7 @@
|
|
|
4634
4866
|
]
|
|
4635
4867
|
},
|
|
4636
4868
|
"handle-methods-R": {
|
|
4637
|
-
"begin": "(?i)(:)(
|
|
4869
|
+
"begin": "(?i)(:)((remove-events-proc(?:edure|edur|edu|ed|e)?)|(remove-super-proc(?:edure|edur|edu|ed|e)?)|raw-transfer|read|read-file|read-json|read-xml|read-xmlschema|refresh|refresh-audit-policy|register-domain|reject-changes|reject-row-changes|remove-attribute|remove-child|replace|replace-child|replace-selection-text|reposition-to-row|reposition-to-rowid|reset||)\\s*(?=\\()",
|
|
4638
4870
|
"beginCaptures": {
|
|
4639
4871
|
"1": {
|
|
4640
4872
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4656,7 +4888,7 @@
|
|
|
4656
4888
|
]
|
|
4657
4889
|
},
|
|
4658
4890
|
"handle-methods-S": {
|
|
4659
|
-
"begin": "(?i)(:)(
|
|
4891
|
+
"begin": "(?i)(:)((scroll-to-i(?:tem|te|t)?)|(set-blue(?:-value|-valu|-val|-va|-v|-)?)|(set-green(?:-value|-valu|-val|-va|-v|-)?)|(set-numeric-form(?:at|a)?)|(set-red(?:-value|-valu|-val|-va|-v|-)?)|(set-rgb(?:-value|-valu|-val|-va|-v|-)?)|(set-wait(?:-state|-stat|-sta|-st|-s|-)?)|save|save-file|save-row-changes|sax-parse|sax-parse-first|sax-parse-next|scroll-to-current-row|scroll-to-selected-row|seal|search|select-all|select-focused-row|select-next-row|select-prev-row|select-row|serialize-row|set-actor|set-appl-context|set-attribute|set-attribute-node|set-break|set-buffers|set-callback|set-callback-procedure|set-client|set-commit|set-connect-procedure|set-dynamic|set-input-source|set-must-understand|set-node|set-output-destination|set-parameter|set-property|set-read-response-procedure|set-repositioned-row|set-role|set-rollback|set-safe-user|set-selection|set-serialized|set-socket-option|set-sort-arrow|start-document|start-element|stop-parsing|string-value|synchronize)\\s*(?=\\()",
|
|
4660
4892
|
"beginCaptures": {
|
|
4661
4893
|
"1": {
|
|
4662
4894
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4678,7 +4910,7 @@
|
|
|
4678
4910
|
]
|
|
4679
4911
|
},
|
|
4680
4912
|
"handle-methods-T": {
|
|
4681
|
-
"begin": "(?i)(:)(
|
|
4913
|
+
"begin": "(?i)(:)((temp-table-prepar(?:e)?)|tenant-id|tenant-name)\\s*(?=\\()",
|
|
4682
4914
|
"beginCaptures": {
|
|
4683
4915
|
"1": {
|
|
4684
4916
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4700,7 +4932,7 @@
|
|
|
4700
4932
|
]
|
|
4701
4933
|
},
|
|
4702
4934
|
"handle-methods-U": {
|
|
4703
|
-
"begin": "(?i)(:)(
|
|
4935
|
+
"begin": "(?i)(:)(update-attribute|url-decode|url-encode|user-data)\\s*(?=\\()",
|
|
4704
4936
|
"beginCaptures": {
|
|
4705
4937
|
"1": {
|
|
4706
4938
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4722,7 +4954,7 @@
|
|
|
4722
4954
|
]
|
|
4723
4955
|
},
|
|
4724
4956
|
"handle-methods-V": {
|
|
4725
|
-
"begin": "(?i)(:)(validate
|
|
4957
|
+
"begin": "(?i)(:)(validate|validate-domain-access-code|validate-seal)\\s*(?=\\()",
|
|
4726
4958
|
"beginCaptures": {
|
|
4727
4959
|
"1": {
|
|
4728
4960
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4744,7 +4976,7 @@
|
|
|
4744
4976
|
]
|
|
4745
4977
|
},
|
|
4746
4978
|
"handle-methods-W": {
|
|
4747
|
-
"begin": "(?i)(:)(write
|
|
4979
|
+
"begin": "(?i)(:)(write|write-cdata|write-characters|write-comment|write-data|write-data-element|write-empty-element|write-entity-ref|write-external-dtd|write-fragment|write-json|write-message|write-processing-instruction|write-xml|write-xmlschema)\\s*(?=\\()",
|
|
4748
4980
|
"beginCaptures": {
|
|
4749
4981
|
"1": {
|
|
4750
4982
|
"name": "punctuation.separator.colon.abl"
|
|
@@ -4840,7 +5072,7 @@
|
|
|
4840
5072
|
},
|
|
4841
5073
|
"abl-functions-A": {
|
|
4842
5074
|
"name": "meta.function-call.abl",
|
|
4843
|
-
"begin": "(?i)\\s*(
|
|
5075
|
+
"begin": "(?i)\\s*((abs(?:olute|olut|olu|ol|o)?)|(accum(?:ulate|ulat|ula|ul|u)?)|(ambig(?:uous|uou|uo|u)?)|(asc(?:ending|endin|endi|end|en|e)?)|(avail(?:able|abl|ab|a)?)|add-interval|alias|audit-enabled)\\s*(?=\\()",
|
|
4844
5076
|
"beginCaptures": {
|
|
4845
5077
|
"1": {
|
|
4846
5078
|
"name": "support.function.abl"
|
|
@@ -4860,7 +5092,7 @@
|
|
|
4860
5092
|
},
|
|
4861
5093
|
"abl-functions-B": {
|
|
4862
5094
|
"name": "meta.function-call.abl",
|
|
4863
|
-
"begin": "(?i)\\s*(
|
|
5095
|
+
"begin": "(?i)\\s*(base64-decode|base64-encode|box|buffer-group-id|buffer-group-name|buffer-partition-id|buffer-tenant-id|buffer-tenant-name)\\s*(?=\\()",
|
|
4864
5096
|
"beginCaptures": {
|
|
4865
5097
|
"1": {
|
|
4866
5098
|
"name": "support.function.abl"
|
|
@@ -4880,7 +5112,7 @@
|
|
|
4880
5112
|
},
|
|
4881
5113
|
"abl-functions-C": {
|
|
4882
5114
|
"name": "meta.function-call.abl",
|
|
4883
|
-
"begin": "(?i)\\s*(
|
|
5115
|
+
"begin": "(?i)\\s*((compare(?:s)?)|(current-lang(?:uage|uag|ua|u)?)|can-do|can-find|can-query|can-set|caps|cast|chr|codepage-convert|connected|count-of|current-changed|current-result-row|current-value)\\s*(?=\\()",
|
|
4884
5116
|
"beginCaptures": {
|
|
4885
5117
|
"1": {
|
|
4886
5118
|
"name": "support.function.abl"
|
|
@@ -4900,7 +5132,7 @@
|
|
|
4900
5132
|
},
|
|
4901
5133
|
"abl-functions-D": {
|
|
4902
5134
|
"name": "meta.function-call.abl",
|
|
4903
|
-
"begin": "(?i)\\s*(
|
|
5135
|
+
"begin": "(?i)\\s*((dbrest(?:rictions|riction|rictio|ricti|rict|ric|ri|r)?)|(dbvers(?:ion|io|i)?)|(dec(?:imal|ima|im|i)?)|(dynamic-func(?:tion|tio|ti|t)?)|data-source-modified|dataservers|date|datetime|datetime-tz|day|db-remote-host|dbcodepage|dbcollation|dbname|dbparam|dbtaskid|dbtype|decrypt|defined|dynamic-cast|dynamic-current-value|dynamic-enum|dynamic-invoke|dynamic-next-value|dynamic-property)\\s*(?=\\()",
|
|
4904
5136
|
"beginCaptures": {
|
|
4905
5137
|
"1": {
|
|
4906
5138
|
"name": "support.function.abl"
|
|
@@ -4920,7 +5152,7 @@
|
|
|
4920
5152
|
},
|
|
4921
5153
|
"abl-functions-E": {
|
|
4922
5154
|
"name": "meta.function-call.abl",
|
|
4923
|
-
"begin": "(?i)\\s*(
|
|
5155
|
+
"begin": "(?i)\\s*(encode|encrypt|entered|entry|error|etime|exp|extent)\\s*(?=\\()",
|
|
4924
5156
|
"beginCaptures": {
|
|
4925
5157
|
"1": {
|
|
4926
5158
|
"name": "support.function.abl"
|
|
@@ -4940,7 +5172,7 @@
|
|
|
4940
5172
|
},
|
|
4941
5173
|
"abl-functions-F": {
|
|
4942
5174
|
"name": "meta.function-call.abl",
|
|
4943
|
-
"begin": "(?i)\\s*(frame-
|
|
5175
|
+
"begin": "(?i)\\s*((frame-inde(?:x)?)|(frame-val(?:ue|u)?)|fill|first|first-of|frame-col|frame-db|frame-down|frame-field|frame-file|frame-line|frame-name|frame-row)\\s*(?=\\()",
|
|
4944
5176
|
"beginCaptures": {
|
|
4945
5177
|
"1": {
|
|
4946
5178
|
"name": "support.function.abl"
|
|
@@ -4960,7 +5192,7 @@
|
|
|
4960
5192
|
},
|
|
4961
5193
|
"abl-functions-G": {
|
|
4962
5194
|
"name": "meta.function-call.abl",
|
|
4963
|
-
"begin": "(?i)\\s*(
|
|
5195
|
+
"begin": "(?i)\\s*((gateway(?:s)?)|(get-codepage(?:s)?)|(get-codepage(?:s)?)|(get-coll(?:ations|ation|atio|ati|at|a)?)|(go-pend(?:ing|in|i)?)|generate-pbe-key|generate-pbe-salt|generate-random-key|generate-uuid|get-bits|get-byte|get-byte-order|get-bytes|get-class|get-collation|get-db-client|get-double|get-effective-tenant-id|get-effective-tenant-name|get-float|get-int64|get-long|get-pointer-value|get-short|get-size|get-string|get-unsigned-long|get-unsigned-short|guid)\\s*(?=\\()",
|
|
4964
5196
|
"beginCaptures": {
|
|
4965
5197
|
"1": {
|
|
4966
5198
|
"name": "support.function.abl"
|
|
@@ -4980,7 +5212,7 @@
|
|
|
4980
5212
|
},
|
|
4981
5213
|
"abl-functions-H": {
|
|
4982
5214
|
"name": "meta.function-call.abl",
|
|
4983
|
-
"begin": "(?i)\\s*(
|
|
5215
|
+
"begin": "(?i)\\s*(handle|hash-code|hex-decode|hex-encode)\\s*(?=\\()",
|
|
4984
5216
|
"beginCaptures": {
|
|
4985
5217
|
"1": {
|
|
4986
5218
|
"name": "support.function.abl"
|
|
@@ -5000,7 +5232,7 @@
|
|
|
5000
5232
|
},
|
|
5001
5233
|
"abl-functions-I": {
|
|
5002
5234
|
"name": "meta.function-call.abl",
|
|
5003
|
-
"begin": "(?i)\\s*(
|
|
5235
|
+
"begin": "(?i)\\s*((int(?:eger|ege|eg|e)?)|(is-attr(?:-space|-spac|-spa|-sp|-s|-)?)|index|input|int64|interval|is-codepage-fixed|is-column-codepage|is-db-multi-tenant|is-lead-byte|iso-date)\\s*(?=\\()",
|
|
5004
5236
|
"beginCaptures": {
|
|
5005
5237
|
"1": {
|
|
5006
5238
|
"name": "support.function.abl"
|
|
@@ -5020,7 +5252,7 @@
|
|
|
5020
5252
|
},
|
|
5021
5253
|
"abl-functions-K": {
|
|
5022
5254
|
"name": "meta.function-call.abl",
|
|
5023
|
-
"begin": "(?i)\\s*(
|
|
5255
|
+
"begin": "(?i)\\s*((keyfunc(?:tion|tio|ti|t)?)|kblabel|keycode|keylabel|keyword|keyword-all)\\s*(?=\\()",
|
|
5024
5256
|
"beginCaptures": {
|
|
5025
5257
|
"1": {
|
|
5026
5258
|
"name": "support.function.abl"
|
|
@@ -5040,7 +5272,7 @@
|
|
|
5040
5272
|
},
|
|
5041
5273
|
"abl-functions-L": {
|
|
5042
5274
|
"name": "meta.function-call.abl",
|
|
5043
|
-
"begin": "(?i)\\s*(
|
|
5275
|
+
"begin": "(?i)\\s*((line-count(?:er|e)?)|last|last-of|lastkey|lc|ldbname|left-trim|length|library|list-events|list-query-attrs|list-set-attrs|list-widgets|locked|log|logical|lookup|lower)\\s*(?=\\()",
|
|
5044
5276
|
"beginCaptures": {
|
|
5045
5277
|
"1": {
|
|
5046
5278
|
"name": "support.function.abl"
|
|
@@ -5060,7 +5292,7 @@
|
|
|
5060
5292
|
},
|
|
5061
5293
|
"abl-functions-M": {
|
|
5062
5294
|
"name": "meta.function-call.abl",
|
|
5063
|
-
"begin": "(?i)\\s*(
|
|
5295
|
+
"begin": "(?i)\\s*((min(?:imum|imu|im|i)?)|maximum|md5-digest|member|message-digest|message-lines|month|mtime)\\s*(?=\\()",
|
|
5064
5296
|
"beginCaptures": {
|
|
5065
5297
|
"1": {
|
|
5066
5298
|
"name": "support.function.abl"
|
|
@@ -5080,7 +5312,7 @@
|
|
|
5080
5312
|
},
|
|
5081
5313
|
"abl-functions-N": {
|
|
5082
5314
|
"name": "meta.function-call.abl",
|
|
5083
|
-
"begin": "(?i)\\s*(num-
|
|
5315
|
+
"begin": "(?i)\\s*((num-ali(?:ases|ase|as|a)?)|new|next-value|normalize|not|now|num-dbs|num-entries|num-results)\\s*(?=\\()",
|
|
5084
5316
|
"beginCaptures": {
|
|
5085
5317
|
"1": {
|
|
5086
5318
|
"name": "support.function.abl"
|
|
@@ -5100,7 +5332,7 @@
|
|
|
5100
5332
|
},
|
|
5101
5333
|
"abl-functions-O": {
|
|
5102
5334
|
"name": "meta.function-call.abl",
|
|
5103
|
-
"begin": "(?i)\\s*(os-
|
|
5335
|
+
"begin": "(?i)\\s*((os-drive(?:s)?)|opsys|os-dir|os-error|os-getenv)\\s*(?=\\()",
|
|
5104
5336
|
"beginCaptures": {
|
|
5105
5337
|
"1": {
|
|
5106
5338
|
"name": "support.function.abl"
|
|
@@ -5120,7 +5352,7 @@
|
|
|
5120
5352
|
},
|
|
5121
5353
|
"abl-functions-P": {
|
|
5122
5354
|
"name": "meta.function-call.abl",
|
|
5123
|
-
"begin": "(?i)\\s*(
|
|
5355
|
+
"begin": "(?i)\\s*((page-num(?:ber|be|b)?)|(proc-ha(?:ndle|ndl|nd|n)?)|(proc-st(?:atus|atu|at|a)?)|(provers(?:ion|io|i)?)|page-size|pdbname|process-architecture|program-name|progress|promsgs|propath)\\s*(?=\\()",
|
|
5124
5356
|
"beginCaptures": {
|
|
5125
5357
|
"1": {
|
|
5126
5358
|
"name": "support.function.abl"
|
|
@@ -5140,7 +5372,7 @@
|
|
|
5140
5372
|
},
|
|
5141
5373
|
"abl-functions-Q": {
|
|
5142
5374
|
"name": "meta.function-call.abl",
|
|
5143
|
-
"begin": "(?i)\\s*(
|
|
5375
|
+
"begin": "(?i)\\s*(query-off-end|quoter)\\s*(?=\\()",
|
|
5144
5376
|
"beginCaptures": {
|
|
5145
5377
|
"1": {
|
|
5146
5378
|
"name": "support.function.abl"
|
|
@@ -5160,7 +5392,7 @@
|
|
|
5160
5392
|
},
|
|
5161
5393
|
"abl-functions-R": {
|
|
5162
5394
|
"name": "meta.function-call.abl",
|
|
5163
|
-
"begin": "(?i)\\s*(
|
|
5395
|
+
"begin": "(?i)\\s*((record-len(?:gth|gt|g)?)|(relation-fi(?:elds|eld|el|e)?)|(return-val(?:ue|u)?)|(rgb-v(?:alue|alu|al|a)?)|r-index|random|raw|recid|rejected|replace|retry|return|right-trim|round|row-state|rowid)\\s*(?=\\()",
|
|
5164
5396
|
"beginCaptures": {
|
|
5165
5397
|
"1": {
|
|
5166
5398
|
"name": "support.function.abl"
|
|
@@ -5180,7 +5412,7 @@
|
|
|
5180
5412
|
},
|
|
5181
5413
|
"abl-functions-S": {
|
|
5182
5414
|
"name": "meta.function-call.abl",
|
|
5183
|
-
"begin": "(?i)\\s*(
|
|
5415
|
+
"begin": "(?i)\\s*((setuser(?:id|i)?)|(subst(?:itute|itut|itu|it|i)?)|(substr(?:ing|in|i)?)|screen-lines|sdbname|search|seek|set-db-client|set-effective-tenant|set-size|sha1-digest|skip|sqrt|ssl-server-name|string|super)\\s*(?=\\()",
|
|
5184
5416
|
"beginCaptures": {
|
|
5185
5417
|
"1": {
|
|
5186
5418
|
"name": "support.function.abl"
|
|
@@ -5200,7 +5432,7 @@
|
|
|
5200
5432
|
},
|
|
5201
5433
|
"abl-functions-T": {
|
|
5202
5434
|
"name": "meta.function-call.abl",
|
|
5203
|
-
"begin": "(?i)\\s*(
|
|
5435
|
+
"begin": "(?i)\\s*((transact(?:ion|io|i)?)|(trunc(?:ate|at|a)?)|tenant-id|tenant-name|tenant-name-to-id|terminal|this-object|time|timezone|to-rowid|today|trim|type-of)\\s*(?=\\()",
|
|
5204
5436
|
"beginCaptures": {
|
|
5205
5437
|
"1": {
|
|
5206
5438
|
"name": "support.function.abl"
|
|
@@ -5220,7 +5452,7 @@
|
|
|
5220
5452
|
},
|
|
5221
5453
|
"abl-functions-U": {
|
|
5222
5454
|
"name": "meta.function-call.abl",
|
|
5223
|
-
"begin": "(?i)\\s*(userid
|
|
5455
|
+
"begin": "(?i)\\s*(unbox|userid)\\s*(?=\\()",
|
|
5224
5456
|
"beginCaptures": {
|
|
5225
5457
|
"1": {
|
|
5226
5458
|
"name": "support.function.abl"
|
|
@@ -5240,7 +5472,7 @@
|
|
|
5240
5472
|
},
|
|
5241
5473
|
"abl-functions-V": {
|
|
5242
5474
|
"name": "meta.function-call.abl",
|
|
5243
|
-
"begin": "(?i)\\s*(
|
|
5475
|
+
"begin": "(?i)\\s*(valid-event|valid-handle|valid-object|value)\\s*(?=\\()",
|
|
5244
5476
|
"beginCaptures": {
|
|
5245
5477
|
"1": {
|
|
5246
5478
|
"name": "support.function.abl"
|
|
@@ -5260,7 +5492,7 @@
|
|
|
5260
5492
|
},
|
|
5261
5493
|
"abl-functions-W": {
|
|
5262
5494
|
"name": "meta.function-call.abl",
|
|
5263
|
-
"begin": "(?i)\\s*(widget-
|
|
5495
|
+
"begin": "(?i)\\s*((widget-h(?:andle|andl|and|an|a)?)|weekday)\\s*(?=\\()",
|
|
5264
5496
|
"beginCaptures": {
|
|
5265
5497
|
"1": {
|
|
5266
5498
|
"name": "support.function.abl"
|
|
@@ -5301,4 +5533,4 @@
|
|
|
5301
5533
|
},
|
|
5302
5534
|
"scopeName": "source.abl",
|
|
5303
5535
|
"uuid": "075bb86e-03ea-4fea-bac0-e11b9dc73e03"
|
|
5304
|
-
}
|
|
5536
|
+
}
|