abl-tmlanguage 1.3.15 → 1.3.18
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/.github/workflows/ci.yml +36 -0
- package/CHANGELOG.md +18 -0
- package/README.md +17 -12
- package/abl.tmLanguage.json +280 -69
- package/package.json +1 -1
- package/spec/annotations/annotation.spec.js +49 -50
- package/spec/blocks/block-labels.spec.js +3 -3
- package/spec/blocks/block-options.spec.js +157 -1
- package/spec/comments/comment-in-block-statement.spec.js +20 -14
- package/spec/comments/comment-in-for-each.spec.js +9 -6
- package/spec/comments/comment-in-function-args.spec.js +4 -5
- package/spec/comments/vscode-abl-issue#127.spec.js +4 -4
- package/spec/create-widgets/create-window.spec.js +11 -8
- package/spec/db-table-and-field/buffer-copy.spec.js +45 -39
- package/spec/db-table-and-field/create-alias.spec.js +3 -3
- package/spec/db-table-and-field/field-in-function.spec.js +6 -6
- package/spec/db-table-and-field/foreach.spec.js +3 -3
- package/spec/db-table-and-field/issue#88.spec.js +2 -2
- package/spec/db-table-and-field/new-record.spec.js +46 -25
- package/spec/define/define-browse.spec.js +54 -54
- package/spec/define/define-button.spec.js +3 -3
- package/spec/define/define-query.spec.js +43 -0
- package/spec/define-buffer/create-buffer.spec.js +3 -3
- package/spec/define-buffer/simple-single-line.spec.js +9 -9
- package/spec/define-frame/issue#173.spec.js +56 -50
- package/spec/define-parameter/simple-single-line.spec.js +3 -3
- package/spec/define-property/property-getter.spec.js +4 -4
- package/spec/define-temp-table/define-dataset.spec.js +23 -17
- package/spec/define-temp-table/define-temp-table.spec.js +68 -53
- package/spec/define-variable/extent.spec.js +6 -6
- package/spec/define-variable/initial.spec.js +15 -15
- package/spec/define-variable/issue#6.spec.js +39 -39
- package/spec/define-variable/issue#9.spec.js +3 -3
- package/spec/define-variable/var-statement.spec.js +7 -4
- package/spec/do/do-blocks.spec.js +25 -19
- package/spec/for-each/issue#321.spec.js +2 -2
- package/spec/function-call/can-find.spec.js +10 -11
- package/spec/function-call/misc-abl-functions.spec.js +3 -3
- package/spec/function-call/nested-functions.spec.js +21 -22
- package/spec/function-call/udf-calls.spec.js +22 -23
- package/spec/function-call/vscode-abl-issue#19.spec.js +12 -12
- package/spec/global-scoped-define/global-define.spec.js +54 -7
- package/spec/global-scoped-define/scoped-define-with-procedure-keyword.spec.js +49 -15
- package/spec/global-scoped-define/undefine.spec.js +44 -0
- package/spec/include/abl-tmlanguage-issues#5.spec.js +3 -3
- package/spec/include/include-file-name.spec.js +16 -4
- package/spec/include/unnamed-arguments.spec.js +4 -5
- package/spec/include/vscode-abl-issue#45.spec.js +3 -3
- package/spec/include/vscode-abl-issue#77.spec.js +16 -17
- package/spec/include/vscode-abl-issue#80.spec.js +10 -7
- package/spec/input-output/input-from.spec.js +19 -16
- package/spec/input-output/output-to.spec.js +15 -15
- package/spec/method-attribute-property-call/abl-method-attribute-call.spec.js +16 -17
- package/spec/method-attribute-property-call/connected-method.spec.js +3 -4
- package/spec/method-attribute-property-call/datset-table-attribute-method-call.spec.js +53 -0
- package/spec/method-attribute-property-call/method-call.spec.js +16 -16
- package/spec/method-attribute-property-call/unqualified-method-call.spec.js +3 -4
- package/spec/method-definition/constructor.spec.js +6 -6
- package/spec/method-definition/method.spec.js +12 -12
- package/spec/misc-statements/case-statement.spec.js +9 -9
- package/spec/misc-statements/class-in-var-name.spec.js +9 -10
- package/spec/misc-statements/copy-lob.spec.js +3 -3
- package/spec/misc-statements/do-in-name.spec.js +21 -22
- package/spec/misc-statements/event-subscribe.spec.js +14 -15
- package/spec/misc-statements/export-delimiter.spec.js +6 -6
- package/spec/misc-statements/if-then.spec.js +9 -9
- package/spec/misc-statements/issue#173.spec.js +3 -4
- package/spec/misc-statements/message-statement.spec.js +3 -3
- package/spec/misc-statements/record-buffer-functions.spec.js +3 -3
- package/spec/misc-statements/release.spec.js +3 -4
- package/spec/misc-statements/skip-statement-and-fuction.spec.js +3 -4
- package/spec/numbers/scientific-notation.spec.js +212 -0
- package/spec/operators/operators.spec.js +10 -10
- package/spec/preprocesors/issue166.spec.js +27 -19
- package/spec/preprocesors/preprocessor-functions.spec.js +77 -0
- package/spec/preprocesors/proparse-preprocessor.spec.js +27 -3
- package/spec/procedure-definition/trigger-procedure.spec.js +8 -2
- package/spec/procedure-definition/vscode-abl-issue#22.spec.js +3 -3
- package/spec/procedure-definition/vscode-abl-issue#26.spec.js +4 -4
- package/spec/procedure-definition/vscode-abl-issue#325.spec.js +26 -2
- package/spec/procedure-definition/vscode-abl-issue#62.spec.js +7 -4
- package/spec/run-statement/run-statement.spec.js +25 -13
- package/spec/shared.js +12 -11
- package/spec/strings/translation-attribute.spec.js +4 -4
- package/spec/strings/vscode-abl-issue#11.spec.js +24 -24
- package/spec/strings/vscode-abl-issue#28.spec.js +9 -9
- package/spec/type-name/argument.spec.js +11 -12
- package/spec/type-name/cast.spec.js +7 -7
- package/spec/type-name/define-temp-table.spec.js +6 -6
- package/spec/type-name/new.spec.js +3 -3
- package/spec/type-name/parameter-as.spec.js +6 -6
- package/spec/type-name/type-name.spec.js +22 -20
package/abl.tmLanguage.json
CHANGED
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"procedure-definition": {
|
|
59
59
|
"name": "meta.procedure.abl",
|
|
60
60
|
"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",
|
|
61
|
-
"begin": "(?i)\\
|
|
61
|
+
"begin": "(?i)\\s*(proce(?:dure|dur|du|d)?)\\s+(?=[a-zA-Z_])",
|
|
62
62
|
"beginCaptures": {
|
|
63
63
|
"1": {
|
|
64
64
|
"name": "keyword.other.abl"
|
|
@@ -94,6 +94,9 @@
|
|
|
94
94
|
{
|
|
95
95
|
"include": "#argument-reference"
|
|
96
96
|
},
|
|
97
|
+
{
|
|
98
|
+
"include": "#preprocessor-reference"
|
|
99
|
+
},
|
|
97
100
|
{
|
|
98
101
|
"include": "#numeric"
|
|
99
102
|
},
|
|
@@ -479,6 +482,12 @@
|
|
|
479
482
|
{
|
|
480
483
|
"include": "#buffer-copy"
|
|
481
484
|
},
|
|
485
|
+
{
|
|
486
|
+
"include": "#preprocessors"
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"include": "#argument-reference"
|
|
490
|
+
},
|
|
482
491
|
{
|
|
483
492
|
"include": "#trigger-procedure"
|
|
484
493
|
},
|
|
@@ -518,6 +527,9 @@
|
|
|
518
527
|
{
|
|
519
528
|
"include": "#event-un-subscribe"
|
|
520
529
|
},
|
|
530
|
+
{
|
|
531
|
+
"include": "#dataset-name"
|
|
532
|
+
},
|
|
521
533
|
{
|
|
522
534
|
"include": "#buffer-name"
|
|
523
535
|
},
|
|
@@ -634,12 +646,6 @@
|
|
|
634
646
|
{
|
|
635
647
|
"include": "#operator"
|
|
636
648
|
},
|
|
637
|
-
{
|
|
638
|
-
"include": "#analyze-suspend-resume"
|
|
639
|
-
},
|
|
640
|
-
{
|
|
641
|
-
"include": "#global-scoped-define"
|
|
642
|
-
},
|
|
643
649
|
{
|
|
644
650
|
"include": "#label-variable"
|
|
645
651
|
},
|
|
@@ -653,7 +659,7 @@
|
|
|
653
659
|
"include": "#format-constant"
|
|
654
660
|
},
|
|
655
661
|
{
|
|
656
|
-
"include": "#
|
|
662
|
+
"include": "#escape-endline"
|
|
657
663
|
},
|
|
658
664
|
{
|
|
659
665
|
"include": "#dll-type"
|
|
@@ -743,16 +749,95 @@
|
|
|
743
749
|
}
|
|
744
750
|
}
|
|
745
751
|
},
|
|
752
|
+
"preprocessor-directives": {
|
|
753
|
+
"patterns": [
|
|
754
|
+
{
|
|
755
|
+
"match": "(?i)((&)(elseif|endif|else|then|if))\\s*",
|
|
756
|
+
"captures": {
|
|
757
|
+
"2": {
|
|
758
|
+
"name": "punctuation.definition.preprocessor.abl"
|
|
759
|
+
},
|
|
760
|
+
"3": {
|
|
761
|
+
"name": "keyword.control.directive.conditional.abl"
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
"match": "(?i)((&)(message))\\s*",
|
|
767
|
+
"captures": {
|
|
768
|
+
"2": {
|
|
769
|
+
"name": "punctuation.definition.preprocessor.abl"
|
|
770
|
+
},
|
|
771
|
+
"3": {
|
|
772
|
+
"name": "storage.type.function.abl"
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
]
|
|
777
|
+
},
|
|
778
|
+
"preprocessor-reference": {
|
|
779
|
+
"patterns": [
|
|
780
|
+
{
|
|
781
|
+
"comment": "https://docs.progress.com/bundle/abl-reference/page/Preprocessor-name-reference.html#Preprocessor-name-reference",
|
|
782
|
+
"match": "(?i)\\s*(({)(&)(window-system|line-number|batch-mode|file-name|sequence|opsys|process-architecture)\\s*(}))",
|
|
783
|
+
"captures": {
|
|
784
|
+
"1": {
|
|
785
|
+
"name": "meta.preprocessor.abl"
|
|
786
|
+
},
|
|
787
|
+
"2": {
|
|
788
|
+
"name": "punctuation.section.abl"
|
|
789
|
+
},
|
|
790
|
+
"3": {
|
|
791
|
+
"name": "punctuation.definition.preprocessor.abl"
|
|
792
|
+
},
|
|
793
|
+
"4": {
|
|
794
|
+
"name": "entity.name.function.preprocessor.abl"
|
|
795
|
+
},
|
|
796
|
+
"5": {
|
|
797
|
+
"name": "punctuation.section.abl"
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"match": "\\s*(({)(&)([a-zA-Z0-9_\\-#$%\\s\\(\\)]+)\\s*(}))",
|
|
803
|
+
"captures": {
|
|
804
|
+
"1": {
|
|
805
|
+
"name": "meta.preprocessor.abl"
|
|
806
|
+
},
|
|
807
|
+
"2": {
|
|
808
|
+
"name": "punctuation.section.abl"
|
|
809
|
+
},
|
|
810
|
+
"3": {
|
|
811
|
+
"name": "punctuation.definition.preprocessor.abl"
|
|
812
|
+
},
|
|
813
|
+
"4": {
|
|
814
|
+
"name": "entity.name.function.preprocessor.abl"
|
|
815
|
+
},
|
|
816
|
+
"5": {
|
|
817
|
+
"name": "punctuation.section.abl"
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
]
|
|
822
|
+
},
|
|
746
823
|
"preprocessors": {
|
|
747
|
-
"
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
"name": "storage.type.function.abl"
|
|
824
|
+
"patterns": [
|
|
825
|
+
{
|
|
826
|
+
"include": "#analyze-suspend-resume"
|
|
751
827
|
},
|
|
752
|
-
|
|
753
|
-
"
|
|
828
|
+
{
|
|
829
|
+
"include": "#global-scoped-define"
|
|
830
|
+
},
|
|
831
|
+
{
|
|
832
|
+
"include": "#preprocessor-directives"
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
"include": "#preprocessor-functions"
|
|
836
|
+
},
|
|
837
|
+
{
|
|
838
|
+
"include": "#preprocessor-reference"
|
|
754
839
|
}
|
|
755
|
-
|
|
840
|
+
]
|
|
756
841
|
},
|
|
757
842
|
"type-names": {
|
|
758
843
|
"patterns": [
|
|
@@ -1952,7 +2037,7 @@
|
|
|
1952
2037
|
"name": "variable.other.abl"
|
|
1953
2038
|
}
|
|
1954
2039
|
},
|
|
1955
|
-
"end": "(?i)
|
|
2040
|
+
"end": "(?i)(?=\\.\\s*)",
|
|
1956
2041
|
"patterns": [
|
|
1957
2042
|
{
|
|
1958
2043
|
"match": "(?i)\\b(for|scrolling|(rcode-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?))\\b",
|
|
@@ -2132,6 +2217,17 @@
|
|
|
2132
2217
|
}
|
|
2133
2218
|
]
|
|
2134
2219
|
},
|
|
2220
|
+
"dataset-name": {
|
|
2221
|
+
"match": "(?i)\\s*(dataset)\\s+([a-zA-Z][a-zA-Z0-9_\\-]*)",
|
|
2222
|
+
"captures": {
|
|
2223
|
+
"1": {
|
|
2224
|
+
"name": "keyword.other.abl"
|
|
2225
|
+
},
|
|
2226
|
+
"2": {
|
|
2227
|
+
"name": "storage.data.dataset.abl"
|
|
2228
|
+
}
|
|
2229
|
+
}
|
|
2230
|
+
},
|
|
2135
2231
|
"buffer-name": {
|
|
2136
2232
|
"match": "(?i)\\b(buffer)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)",
|
|
2137
2233
|
"captures": {
|
|
@@ -2826,19 +2922,17 @@
|
|
|
2826
2922
|
"name": "meta.block.abl",
|
|
2827
2923
|
"patterns": [
|
|
2828
2924
|
{
|
|
2829
|
-
"
|
|
2830
|
-
|
|
2831
|
-
{
|
|
2832
|
-
"include": "#for-record"
|
|
2925
|
+
"match": "(?i)\\b((transact(?:ion|io|i)?)|stop-after|and|or)\\b",
|
|
2926
|
+
"name": "keyword.other.abl"
|
|
2833
2927
|
},
|
|
2834
2928
|
{
|
|
2835
|
-
"include": "#
|
|
2929
|
+
"include": "#logical-expression"
|
|
2836
2930
|
},
|
|
2837
2931
|
{
|
|
2838
|
-
"include": "#
|
|
2932
|
+
"include": "#while-expression"
|
|
2839
2933
|
},
|
|
2840
2934
|
{
|
|
2841
|
-
"include": "#
|
|
2935
|
+
"include": "#for-record"
|
|
2842
2936
|
},
|
|
2843
2937
|
{
|
|
2844
2938
|
"match": "(?i)\\b((transact(?:ion|io|i)?)|stop-after)\\b",
|
|
@@ -2864,15 +2958,6 @@
|
|
|
2864
2958
|
},
|
|
2865
2959
|
{
|
|
2866
2960
|
"include": "#branch-options"
|
|
2867
|
-
},
|
|
2868
|
-
{
|
|
2869
|
-
"include": "#keywords"
|
|
2870
|
-
},
|
|
2871
|
-
{
|
|
2872
|
-
"include": "#expression"
|
|
2873
|
-
},
|
|
2874
|
-
{
|
|
2875
|
-
"include": "#preprocessors"
|
|
2876
2961
|
}
|
|
2877
2962
|
]
|
|
2878
2963
|
},
|
|
@@ -3104,7 +3189,7 @@
|
|
|
3104
3189
|
"name": "punctuation.definition.string.begin.abl"
|
|
3105
3190
|
}
|
|
3106
3191
|
},
|
|
3107
|
-
"name": "string.single.
|
|
3192
|
+
"name": "string.quoted.single.abl",
|
|
3108
3193
|
"end": "(')",
|
|
3109
3194
|
"endCaptures": {
|
|
3110
3195
|
"1": {
|
|
@@ -3121,6 +3206,14 @@
|
|
|
3121
3206
|
"match": "~.",
|
|
3122
3207
|
"name": "constant.character.escape.abl"
|
|
3123
3208
|
},
|
|
3209
|
+
"escape-endline": {
|
|
3210
|
+
"match": "(~)\\s*$",
|
|
3211
|
+
"captures": {
|
|
3212
|
+
"1": {
|
|
3213
|
+
"name": "punctuation.separator.continuation"
|
|
3214
|
+
}
|
|
3215
|
+
}
|
|
3216
|
+
},
|
|
3124
3217
|
"branch-return-value-double": {
|
|
3125
3218
|
"comment": "RETURN \"return-value\"",
|
|
3126
3219
|
"begin": "(?i)\\s*(return)(\\s+(error))?\\s+(\")",
|
|
@@ -3206,7 +3299,7 @@
|
|
|
3206
3299
|
"name": "punctuation.separator.comma.abl"
|
|
3207
3300
|
}
|
|
3208
3301
|
},
|
|
3209
|
-
"end": "(
|
|
3302
|
+
"end": "(?=[\\.:](?![a-zA-Z0-9_\\-#$%]))",
|
|
3210
3303
|
"patterns": [
|
|
3211
3304
|
{
|
|
3212
3305
|
"include": "#string"
|
|
@@ -3237,6 +3330,12 @@
|
|
|
3237
3330
|
{
|
|
3238
3331
|
"include": "#function-arguments"
|
|
3239
3332
|
},
|
|
3333
|
+
{
|
|
3334
|
+
"include": "#function-arguments-no-parens"
|
|
3335
|
+
},
|
|
3336
|
+
{
|
|
3337
|
+
"include": "#parens"
|
|
3338
|
+
},
|
|
3240
3339
|
{
|
|
3241
3340
|
"include": "#expression"
|
|
3242
3341
|
},
|
|
@@ -3280,20 +3379,10 @@
|
|
|
3280
3379
|
"end": "(?i)(?=(transact(?:ion|io|i)?)|on|:|with)",
|
|
3281
3380
|
"patterns": [
|
|
3282
3381
|
{
|
|
3283
|
-
"
|
|
3284
|
-
"include": "#comment"
|
|
3285
|
-
},
|
|
3286
|
-
{
|
|
3287
|
-
"include": "#operator"
|
|
3288
|
-
},
|
|
3289
|
-
{
|
|
3290
|
-
"include": "#property-call"
|
|
3382
|
+
"include": "#logical-expression"
|
|
3291
3383
|
},
|
|
3292
3384
|
{
|
|
3293
3385
|
"include": "#branch-options"
|
|
3294
|
-
},
|
|
3295
|
-
{
|
|
3296
|
-
"include": "#expression"
|
|
3297
3386
|
}
|
|
3298
3387
|
]
|
|
3299
3388
|
},
|
|
@@ -3303,25 +3392,119 @@
|
|
|
3303
3392
|
"name": "comment.preprocessor.analyze-suspend.abl"
|
|
3304
3393
|
},
|
|
3305
3394
|
"global-scoped-define": {
|
|
3306
|
-
"
|
|
3395
|
+
"patterns": [
|
|
3396
|
+
{
|
|
3397
|
+
"begin": "(?i)^\\s*((&)(scop(?:ed-define|ed-defin|ed-defi|ed-def|ed-de|ed-d|ed-|ed|e)?))\\s*",
|
|
3398
|
+
"name": "meta.preprocessor.abl",
|
|
3399
|
+
"beginCaptures": {
|
|
3400
|
+
"2": {
|
|
3401
|
+
"name": "punctuation.definition.preprocessor.abl"
|
|
3402
|
+
},
|
|
3403
|
+
"3": {
|
|
3404
|
+
"name": "keyword.control.directive.define.abl"
|
|
3405
|
+
},
|
|
3406
|
+
"4": {
|
|
3407
|
+
"name": "entity.name.function.preprocessor.abl"
|
|
3408
|
+
}
|
|
3409
|
+
},
|
|
3410
|
+
"end": "([\\.a-zA-Z0-9_\\-#$%\\/]+)\\s*",
|
|
3411
|
+
"endCaptures": {
|
|
3412
|
+
"1": {
|
|
3413
|
+
"name": "entity.name.function.preprocessor.abl"
|
|
3414
|
+
}
|
|
3415
|
+
},
|
|
3416
|
+
"patterns": [
|
|
3417
|
+
{
|
|
3418
|
+
"include": "#escape-endline"
|
|
3419
|
+
}
|
|
3420
|
+
]
|
|
3421
|
+
},
|
|
3422
|
+
{
|
|
3423
|
+
"begin": "(?i)^\\s*((&)(glob(?:al-define|al-defin|al-defi|al-def|al-de|al-d|al-|al|a)?))\\s*",
|
|
3424
|
+
"name": "meta.preprocessor.abl",
|
|
3425
|
+
"beginCaptures": {
|
|
3426
|
+
"2": {
|
|
3427
|
+
"name": "punctuation.definition.preprocessor.abl"
|
|
3428
|
+
},
|
|
3429
|
+
"3": {
|
|
3430
|
+
"name": "keyword.control.directive.define.abl"
|
|
3431
|
+
},
|
|
3432
|
+
"4": {
|
|
3433
|
+
"name": "entity.name.function.preprocessor.abl"
|
|
3434
|
+
}
|
|
3435
|
+
},
|
|
3436
|
+
"end": "([\\.a-zA-Z0-9_\\-#$%\\/]+)\\s*",
|
|
3437
|
+
"endCaptures": {
|
|
3438
|
+
"1": {
|
|
3439
|
+
"name": "entity.name.function.preprocessor.abl"
|
|
3440
|
+
}
|
|
3441
|
+
},
|
|
3442
|
+
"patterns": [
|
|
3443
|
+
{
|
|
3444
|
+
"include": "#escape-endline"
|
|
3445
|
+
}
|
|
3446
|
+
]
|
|
3447
|
+
},
|
|
3448
|
+
{
|
|
3449
|
+
"begin": "(?i)((&)(undef(?:ine|in|i)?))\\s*([\\.a-zA-Z0-9_\\-#$%\\/]*)\\s*",
|
|
3450
|
+
"name": "meta.preprocessor.abl",
|
|
3451
|
+
"beginCaptures": {
|
|
3452
|
+
"2": {
|
|
3453
|
+
"name": "punctuation.definition.preprocessor.abl"
|
|
3454
|
+
},
|
|
3455
|
+
"3": {
|
|
3456
|
+
"name": "keyword.control.directive.define.abl"
|
|
3457
|
+
},
|
|
3458
|
+
"4": {
|
|
3459
|
+
"name": "entity.name.function.preprocessor.abl"
|
|
3460
|
+
}
|
|
3461
|
+
},
|
|
3462
|
+
"end": "([\\.a-zA-Z0-9_\\-#$%\\/]+)\\s*",
|
|
3463
|
+
"endCaptures": {
|
|
3464
|
+
"1": {
|
|
3465
|
+
"name": "entity.name.function.preprocessor.abl"
|
|
3466
|
+
}
|
|
3467
|
+
},
|
|
3468
|
+
"patterns": [
|
|
3469
|
+
{
|
|
3470
|
+
"include": "#escape-char"
|
|
3471
|
+
}
|
|
3472
|
+
]
|
|
3473
|
+
}
|
|
3474
|
+
]
|
|
3475
|
+
},
|
|
3476
|
+
"preprocessor-functions": {
|
|
3477
|
+
"begin": "\\s*([Dd][Ee][Ff][Ii][Nn][Ee][Dd])\\b",
|
|
3307
3478
|
"beginCaptures": {
|
|
3308
3479
|
"1": {
|
|
3309
|
-
"name": "
|
|
3310
|
-
},
|
|
3311
|
-
"2": {
|
|
3312
|
-
"name": "entity.name.function.preprocessor.abl"
|
|
3480
|
+
"name": "storage.type.function.abl"
|
|
3313
3481
|
}
|
|
3314
3482
|
},
|
|
3315
|
-
"end": "(?=//|/\\*)|$",
|
|
3316
|
-
"name": "meta.preprocessor.define.abl",
|
|
3317
3483
|
"patterns": [
|
|
3318
3484
|
{
|
|
3319
|
-
"include": "#
|
|
3485
|
+
"include": "#parens"
|
|
3486
|
+
},
|
|
3487
|
+
{
|
|
3488
|
+
"include": "#comment"
|
|
3489
|
+
},
|
|
3490
|
+
{
|
|
3491
|
+
"match": "([a-zA-Z0-9_\\-#$%]+)",
|
|
3492
|
+
"captures": {
|
|
3493
|
+
"1": {
|
|
3494
|
+
"name": "entity.name.function.preprocessor.abl"
|
|
3495
|
+
}
|
|
3496
|
+
}
|
|
3320
3497
|
}
|
|
3321
|
-
]
|
|
3498
|
+
],
|
|
3499
|
+
"end": "(\\))",
|
|
3500
|
+
"endCaptures": {
|
|
3501
|
+
"1": {
|
|
3502
|
+
"name": "meta.brace.round.js"
|
|
3503
|
+
}
|
|
3504
|
+
}
|
|
3322
3505
|
},
|
|
3323
3506
|
"if-then": {
|
|
3324
|
-
"begin": "
|
|
3507
|
+
"begin": "\\b([Ii][Ff])\\b",
|
|
3325
3508
|
"beginCaptures": {
|
|
3326
3509
|
"1": {
|
|
3327
3510
|
"name": "keyword.other.abl"
|
|
@@ -3329,7 +3512,15 @@
|
|
|
3329
3512
|
},
|
|
3330
3513
|
"patterns": [
|
|
3331
3514
|
{
|
|
3332
|
-
"
|
|
3515
|
+
"include": "#logical-expression"
|
|
3516
|
+
}
|
|
3517
|
+
],
|
|
3518
|
+
"end": "\\b(?=[Tt][Hh][Ee][Nn])\\b"
|
|
3519
|
+
},
|
|
3520
|
+
"logical-expression": {
|
|
3521
|
+
"patterns": [
|
|
3522
|
+
{
|
|
3523
|
+
"match": "\\b([Aa][Nn][Dd]|[Oo][Rr])\\b",
|
|
3333
3524
|
"captures": {
|
|
3334
3525
|
"1": {
|
|
3335
3526
|
"name": "keyword.other.abl"
|
|
@@ -3343,10 +3534,7 @@
|
|
|
3343
3534
|
"include": "#function-arguments"
|
|
3344
3535
|
},
|
|
3345
3536
|
{
|
|
3346
|
-
"include": "#
|
|
3347
|
-
},
|
|
3348
|
-
{
|
|
3349
|
-
"include": "#static-object-property-call"
|
|
3537
|
+
"include": "#type-member-call"
|
|
3350
3538
|
},
|
|
3351
3539
|
{
|
|
3352
3540
|
"include": "#db-dot-table-dot-field"
|
|
@@ -3366,14 +3554,19 @@
|
|
|
3366
3554
|
{
|
|
3367
3555
|
"include": "#preprocessors"
|
|
3368
3556
|
},
|
|
3557
|
+
{
|
|
3558
|
+
"include": "#language-functions"
|
|
3559
|
+
},
|
|
3560
|
+
{
|
|
3561
|
+
"include": "#abl-functions"
|
|
3562
|
+
},
|
|
3369
3563
|
{
|
|
3370
3564
|
"include": "#abl-system-handles"
|
|
3371
3565
|
},
|
|
3372
3566
|
{
|
|
3373
3567
|
"include": "#keywords"
|
|
3374
3568
|
}
|
|
3375
|
-
]
|
|
3376
|
-
"end": "(?i)\\b(?=then)\\b"
|
|
3569
|
+
]
|
|
3377
3570
|
},
|
|
3378
3571
|
"function-arguments": {
|
|
3379
3572
|
"name": "meta.function.arguments.abl",
|
|
@@ -3672,6 +3865,9 @@
|
|
|
3672
3865
|
{
|
|
3673
3866
|
"include": "#string"
|
|
3674
3867
|
},
|
|
3868
|
+
{
|
|
3869
|
+
"include": "#preprocessor-reference"
|
|
3870
|
+
},
|
|
3675
3871
|
{
|
|
3676
3872
|
"include": "#argument-reference"
|
|
3677
3873
|
},
|
|
@@ -3712,6 +3908,9 @@
|
|
|
3712
3908
|
}
|
|
3713
3909
|
},
|
|
3714
3910
|
"patterns": [
|
|
3911
|
+
{
|
|
3912
|
+
"include": "#preprocessor-reference"
|
|
3913
|
+
},
|
|
3715
3914
|
{
|
|
3716
3915
|
"include": "#argument-reference"
|
|
3717
3916
|
},
|
|
@@ -3749,6 +3948,9 @@
|
|
|
3749
3948
|
}
|
|
3750
3949
|
}
|
|
3751
3950
|
},
|
|
3951
|
+
{
|
|
3952
|
+
"include": "#preprocessor-reference"
|
|
3953
|
+
},
|
|
3752
3954
|
{
|
|
3753
3955
|
"comment": "Argument references can be passed into includes as arguments",
|
|
3754
3956
|
"include": "#argument-reference"
|
|
@@ -3759,11 +3961,20 @@
|
|
|
3759
3961
|
]
|
|
3760
3962
|
},
|
|
3761
3963
|
"argument-reference": {
|
|
3762
|
-
"comment": "https://docs.progress.com/bundle/abl-reference/page/Argument-reference.html",
|
|
3763
|
-
"match": "\\s*((
|
|
3964
|
+
"comment": "ONly unnamed arguments are captured here. Names arguments are treated as preprocessors, since its impossible to tell them apart https://docs.progress.com/bundle/abl-reference/page/Argument-reference.html",
|
|
3965
|
+
"match": "\\s*(({)([0-9]+|\\*\\s*)(}))\\s*",
|
|
3764
3966
|
"captures": {
|
|
3765
3967
|
"1": {
|
|
3968
|
+
"name": "meta.argument.abl"
|
|
3969
|
+
},
|
|
3970
|
+
"2": {
|
|
3971
|
+
"name": "punctuation.section.abl"
|
|
3972
|
+
},
|
|
3973
|
+
"3": {
|
|
3766
3974
|
"name": "support.other.argument.abl"
|
|
3975
|
+
},
|
|
3976
|
+
"4": {
|
|
3977
|
+
"name": "punctuation.section.abl"
|
|
3767
3978
|
}
|
|
3768
3979
|
}
|
|
3769
3980
|
},
|
|
@@ -3823,7 +4034,7 @@
|
|
|
3823
4034
|
"name": "support.other.abl"
|
|
3824
4035
|
}
|
|
3825
4036
|
},
|
|
3826
|
-
"name": "string.single.
|
|
4037
|
+
"name": "string.quoted.single.abl",
|
|
3827
4038
|
"patterns": [
|
|
3828
4039
|
{
|
|
3829
4040
|
"include": "#escape-char"
|
|
@@ -3846,7 +4057,7 @@
|
|
|
3846
4057
|
"name": "support.other.abl"
|
|
3847
4058
|
}
|
|
3848
4059
|
},
|
|
3849
|
-
"name": "string.double.
|
|
4060
|
+
"name": "string.quoted.double.abl",
|
|
3850
4061
|
"patterns": [
|
|
3851
4062
|
{
|
|
3852
4063
|
"include": "#escape-char"
|
|
@@ -3863,7 +4074,7 @@
|
|
|
3863
4074
|
"comment": "https://docs.progress.com/bundle/abl-reference/page/Data-types.html"
|
|
3864
4075
|
},
|
|
3865
4076
|
"primitive-type": {
|
|
3866
|
-
"match": "(?i)(?<=^|\\s)(blob|(
|
|
4077
|
+
"match": "(?i)(?<=^|\\s)(blob|(ch(?:aracter|aracte|aract|arac|ara|ar|a)?)|c|clob|com-handle|(da(?:tetime-tz|tetime|te|t)?)|(de(?:cimal|cima|cim|ci|c)?)|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_\\-#$%\\-])",
|
|
3867
4078
|
"captures": {
|
|
3868
4079
|
"1": {
|
|
3869
4080
|
"name": "storage.type.abl"
|
|
@@ -3872,7 +4083,7 @@
|
|
|
3872
4083
|
"comment": "https://docs.progress.com/bundle/abl-reference/page/Data-types.html"
|
|
3873
4084
|
},
|
|
3874
4085
|
"numeric": {
|
|
3875
|
-
"match": "(?<![a-zA-Z0-9_\\-#$%-])(0[xX]\\h+)|(
|
|
4086
|
+
"match": "(?<![a-zA-Z0-9_\\-#$%-])(0[xX]\\h+)|([+\\-]?\\.?(0|[1-9][0-9]*)(\\.[0-9]+)?([eE][+\\-]?[0-9]+)?)",
|
|
3876
4087
|
"name": "constant.numeric.source.abl"
|
|
3877
4088
|
},
|
|
3878
4089
|
"abl-system-handles": {
|
|
@@ -5826,4 +6037,4 @@
|
|
|
5826
6037
|
},
|
|
5827
6038
|
"scopeName": "source.abl",
|
|
5828
6039
|
"uuid": "075bb86e-03ea-4fea-bac0-e11b9dc73e03"
|
|
5829
|
-
}
|
|
6040
|
+
}
|