abl-tmlanguage 1.3.6 → 1.3.7
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/abl.tmLanguage.json +70 -35
- package/index.js +51 -48
- package/package.json +1 -1
- package/spec/blocks/on-quit.spec.js +32 -32
- package/spec/comments/comment-in-block-statement.spec.js +18 -18
- package/spec/define-frame/issue#173.spec.js +48 -0
- package/spec/do/do-blocks.spec.js +52 -52
- package/spec/misc-statements/class-in-var-name.spec.js +205 -0
- package/spec/misc-statements/export-delimiter.spec.js +37 -0
- package/spec/misc-statements/if-then.spec.js +8 -8
- package/spec/misc-statements/issue#173.spec.js +100 -0
- package/spec/misc-statements/skip-statement-and-fuction.spec.js +36 -0
package/abl.tmLanguage.json
CHANGED
|
@@ -883,7 +883,7 @@
|
|
|
883
883
|
},
|
|
884
884
|
"define-class": {
|
|
885
885
|
"name": "meta.define.class.abl",
|
|
886
|
-
"begin": "(?i)\\b(class)\\b",
|
|
886
|
+
"begin": "(?i)\\b(?<![\\#\\$\\-\\_\\%\\&])(class)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
887
887
|
"beginCaptures": {
|
|
888
888
|
"1": {
|
|
889
889
|
"name": "keyword.other.abl"
|
|
@@ -1051,7 +1051,8 @@
|
|
|
1051
1051
|
"name": "meta.brace.round.js"
|
|
1052
1052
|
},
|
|
1053
1053
|
"new-class": {
|
|
1054
|
-
"
|
|
1054
|
+
"comment": "A dash/minus is not a word boundary, so we need to make sure we don't capture constructs like new-variable",
|
|
1055
|
+
"begin": "(?i)\\b(new)\\b(?!\\-)",
|
|
1055
1056
|
"beginCaptures": {
|
|
1056
1057
|
"1": {
|
|
1057
1058
|
"name": "keyword.other.abl"
|
|
@@ -1464,6 +1465,9 @@
|
|
|
1464
1465
|
{
|
|
1465
1466
|
"include": "#break-group"
|
|
1466
1467
|
},
|
|
1468
|
+
{
|
|
1469
|
+
"include": "#block-undo-leave-next-retry"
|
|
1470
|
+
},
|
|
1467
1471
|
{
|
|
1468
1472
|
"include": "#operator"
|
|
1469
1473
|
},
|
|
@@ -2709,7 +2713,6 @@
|
|
|
2709
2713
|
}
|
|
2710
2714
|
},
|
|
2711
2715
|
"on-error-endkey-stop": {
|
|
2712
|
-
"name": "meta.block.branch.abl",
|
|
2713
2716
|
"match": "(?i)\\s*(on)\\s+(endkey|error|stop|quit)\\s+(undo)\\s*(?!leave|next|retry|return|throw)([a-z0-9\\-\\_\\$]*)?\\s*",
|
|
2714
2717
|
"captures": {
|
|
2715
2718
|
"1": {
|
|
@@ -2726,8 +2729,19 @@
|
|
|
2726
2729
|
}
|
|
2727
2730
|
}
|
|
2728
2731
|
},
|
|
2732
|
+
"block-undo-leave-next-retry": {
|
|
2733
|
+
"comment": "Covers NEXT, LEAVE, RETRY and UNDO with block labels that are not preceded by UNDO, ",
|
|
2734
|
+
"match": "(?i)\\s*(?<!,)\\s*(leave|next|retry|undo)\\s*(?!on)([a-z0-9\\-\\_\\$]*)?\\s*",
|
|
2735
|
+
"captures": {
|
|
2736
|
+
"1": {
|
|
2737
|
+
"name": "keyword.other.abl"
|
|
2738
|
+
},
|
|
2739
|
+
"2": {
|
|
2740
|
+
"name": "meta.block.label.abl"
|
|
2741
|
+
}
|
|
2742
|
+
}
|
|
2743
|
+
},
|
|
2729
2744
|
"branch-leave-next-retry-throw": {
|
|
2730
|
-
"name": "meta.block.branch.abl",
|
|
2731
2745
|
"match": "(?i)\\s*(?<=,)\\s*(leave|next|retry|throw)\\s*(?!on)([a-z0-9\\-\\_\\$]*)?\\s*",
|
|
2732
2746
|
"captures": {
|
|
2733
2747
|
"1": {
|
|
@@ -2770,7 +2784,6 @@
|
|
|
2770
2784
|
"name": "constant.character.escape.abl"
|
|
2771
2785
|
},
|
|
2772
2786
|
"branch-return-value-double": {
|
|
2773
|
-
"name": "meta.block.branch.abl",
|
|
2774
2787
|
"comment": "RETURN \"return-value\"",
|
|
2775
2788
|
"begin": "(?i)\\s*(return)(\\s+(error))?\\s+(\")",
|
|
2776
2789
|
"beginCaptures": {
|
|
@@ -2797,7 +2810,6 @@
|
|
|
2797
2810
|
]
|
|
2798
2811
|
},
|
|
2799
2812
|
"branch-return-no-apply": {
|
|
2800
|
-
"name": "meta.block.branch.abl",
|
|
2801
2813
|
"comment": "RETURN NO-APPLY",
|
|
2802
2814
|
"match": "(?i)\\s*(return)\\s+(no-apply)\\s*",
|
|
2803
2815
|
"captures": {
|
|
@@ -2810,7 +2822,6 @@
|
|
|
2810
2822
|
}
|
|
2811
2823
|
},
|
|
2812
2824
|
"branch-return-error-expression": {
|
|
2813
|
-
"name": "meta.block.branch.abl",
|
|
2814
2825
|
"begin": "(?i)\\s*(return)\\s+(error)\\s*",
|
|
2815
2826
|
"beginCaptures": {
|
|
2816
2827
|
"1": {
|
|
@@ -2897,7 +2908,6 @@
|
|
|
2897
2908
|
]
|
|
2898
2909
|
},
|
|
2899
2910
|
"branch-options": {
|
|
2900
|
-
"name": "meta.block.branch.abl",
|
|
2901
2911
|
"patterns": [
|
|
2902
2912
|
{
|
|
2903
2913
|
"include": "#on-error-endkey-stop"
|
|
@@ -3169,7 +3179,7 @@
|
|
|
3169
3179
|
},
|
|
3170
3180
|
"variable-name": {
|
|
3171
3181
|
"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)",
|
|
3172
|
-
"match": "(?<=^|\\s|\\[|\\()([a-zA-Z][a-zA-Z0-9\\#\\$\\-\\_\\%\\&]*)",
|
|
3182
|
+
"match": "(?<=^|\\s|\\[|\\(|,)([a-zA-Z][a-zA-Z0-9\\#\\$\\-\\_\\%\\&]*)(?=\\.\\s|\\.$|,|:|\\s|\\)|\\]|\\[|$)",
|
|
3173
3183
|
"name": "variable.other.abl"
|
|
3174
3184
|
},
|
|
3175
3185
|
"extent": {
|
|
@@ -3665,7 +3675,8 @@
|
|
|
3665
3675
|
]
|
|
3666
3676
|
},
|
|
3667
3677
|
"keywords-A": {
|
|
3668
|
-
"
|
|
3678
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3679
|
+
"match": "(?i)\\b(avg|average|averag|avera|aver|ave|available|automatic|auto-endkey|authorization|audit-policy|audit-control|attribute-type|attachment|attach|at|assign|assembly|ask-overwrite|ascending|ascendin|ascendi|ascend|ascen|asce|asc|as-cursor|as|array-message|array-messag|array-messa|array-mess|array-mes|array-me|array-m|apply|application|append-line|append|anywhere|any-printable|any-key|any|ansi-only|and|ambiguous|alternate-key|alter|allow-replication|all|alert-box|aggregate|advise|add|active-window|active-form|across|accumulate|accumulat|accumula|accumul|accumu|accum|abstract|abort)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3669
3680
|
"captures": {
|
|
3670
3681
|
"1": {
|
|
3671
3682
|
"name": "keyword.other.abl"
|
|
@@ -3673,7 +3684,8 @@
|
|
|
3673
3684
|
}
|
|
3674
3685
|
},
|
|
3675
3686
|
"keywords-B": {
|
|
3676
|
-
"
|
|
3687
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3688
|
+
"match": "(?i)\\b(byte|by-variant-pointer|by-variant-pointe|by-variant-point|by-value|by-reference|by-pointer|by|buttons|button|buffer-copy|buffer-compare|buffer|btos|browse-header|browse-column-labels|browse-column-formats|browse-column-data-types|browse|break-line|break|bottom-column|bottom|both|border-top|border-to|border-t|border-right|border-righ|border-rig|border-ri|border-r|border-left|border-lef|border-le|border-l|border-bottom|border-botto|border-bott|border-bot|border-bo|border-b|block-level|block-leve|block-lev|block|blob|bind-where|bind|binary|big-endian|between|bell|begins|before-hide|before-hid|before-hi|before-h|batch|base64|base-key|backwards|backward|backspace|back-tab)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3677
3689
|
"captures": {
|
|
3678
3690
|
"1": {
|
|
3679
3691
|
"name": "keyword.other.abl"
|
|
@@ -3681,7 +3693,8 @@
|
|
|
3681
3693
|
}
|
|
3682
3694
|
},
|
|
3683
3695
|
"keywords-C": {
|
|
3684
|
-
"
|
|
3696
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3697
|
+
"match": "(?i)\\b(cut|cursor-up|cursor-right|cursor-left|cursor-down|cursor|curso|curs|current_date|current-value|current-language|current|ctos|create-test-file|create-on-add|create|count|copy-lob|copy|convert|control-frame|control-fram|control-container|control-containe|control-contain|control-contai|control-conta|control-cont|control|context-popup|context-popu|context-pop|context|contents|contains|container-event|constructor|constrained|connect|component-self|component-handle|compiler|compile|compares|compare|command|combo-box|com-self|columns|column-of|column-label-height-pixels|column-label-height-pixel|column-label-height-pixe|column-label-height-pix|column-label-height-pi|column-label-height-p|column-label-height-chars|column-label-height-char|column-label-height-cha|column-label-height-ch|column-label-height-c|column-label-font|column-label-fgcolor|column-label-fgcolo|column-label-fgcol|column-label-fgco|column-label-fgc|column-label-dcolor|column-label-bgcolor|column-label-bgcolo|column-label-bgcol|column-label-bgco|column-label-bgc|column-codepage|column|color-table|color|colon-aligned|colon-aligne|colon-align|colon|collate|col-of|col|codebase-locator|close|clob|clipboard|client-principal|clear|class|choose|choices|check-mem-stomp|check|character_length|character|characte|charact|charac|chara|char|chained|centered|cdecl|catch|case|cancel-pick|call|cache-size|cache)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3685
3698
|
"captures": {
|
|
3686
3699
|
"1": {
|
|
3687
3700
|
"name": "keyword.other.abl"
|
|
@@ -3689,7 +3702,8 @@
|
|
|
3689
3702
|
}
|
|
3690
3703
|
},
|
|
3691
3704
|
"keywords-D": {
|
|
3692
|
-
"
|
|
3705
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3706
|
+
"match": "(?i)\\b(dynamic-property|dynamic-new|dynamic-current-value|dump|dslog-manager|drop-file-notify|drop-down-list|drop-down|drop|down|double|dotnet-clr-loaded|dos-end|dos|do|dll-call-type|distinct|display|displa|displ|disp|dismiss-menu|disconnect|disabled|disable|dir|dictionary|dictionar|dictiona|diction|dictio|dicti|dict|dialog-help|dialog-box|detach|destructor|deselection-extend|deselection|deselect-extend|deselect|descending|descendin|descendi|descend|descen|desce|desc|delimiter|delete-word|delete-field|delete-end-line|delete-column|delete-character|delete|delegate|del|define-user-event-manager|define|defin|defi|defer-lob-fetch|default-window|default-untranslatable|default-pop-up|default-extension|default-extensio|default-extensi|default-extens|default-exten|default-exte|default-ext|default-ex|default-action|def|declare|debugger|debug-set-tenant|debug-list|dde-notify|dde|dataset-handle|dataset|database|data-source|data-relation|data-relatio|data-relati|data-relat|data-rela|data-rel|data-refresh-page|data-refresh-line|data-bind|data-bin|data-bi|data-b)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3693
3707
|
"captures": {
|
|
3694
3708
|
"1": {
|
|
3695
3709
|
"name": "keyword.other.abl"
|
|
@@ -3697,7 +3711,8 @@
|
|
|
3697
3711
|
}
|
|
3698
3712
|
},
|
|
3699
3713
|
"keywords-E": {
|
|
3700
|
-
"
|
|
3714
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3715
|
+
"match": "(?i)\\b(extract|external|extent|extended|export|explicit|expire|exit|exists|execute|exclusive-web-user|exclusive-web-use|exclusive-web-us|exclusive-web-u|exclusive-web-|exclusive-web|exclusive-lock|exclusive-loc|exclusive-lo|exclusive-l|exclusive|except|events|event-handler-context|event|escape|error-status|error-statu|error-stat|error|eq|enum|entry|enter-menubar|endkey|end-search|end-row-resize|end-resize|end-move|end-key|end-error|end-box-selection|end|enable|empty-selection|empty|else|editor-tab|editor-backtab|editor|editing|edge|echo|each)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3701
3716
|
"captures": {
|
|
3702
3717
|
"1": {
|
|
3703
3718
|
"name": "keyword.other.abl"
|
|
@@ -3705,7 +3720,8 @@
|
|
|
3705
3720
|
}
|
|
3706
3721
|
},
|
|
3707
3722
|
"keywords-F": {
|
|
3708
|
-
"
|
|
3723
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3724
|
+
"match": "(?i)\\b(function-call-type|function|full-height|fromnoreorder|from-pixels|from-pixel|from-pixe|from-pix|from-pi|from-p|from-current|from-curren|from-curre|from-curr|from-cur|from-chars|from-char|from-cha|from-ch|from-c|from|frame-value|frame|forwards|forward|format|form|force-file|for|font-table|font|focus-in|focus|float|flags|fixed-only|fix-codepage|first|firehose-cursor|finder|find-wrap-around|find-select|find-previous|find-prev-occurrence|find-next-occurrence|find-next|find-global|find-case-sensitive|find|finally|final|filters|fill-in|filename|file-information|file-informatio|file-informati|file-informat|file-informa|file-inform|file-infor|file-info|file-access-time|file-access-tim|file-access-ti|file-access-t|file-access-date|file-access-dat|file-access-da|file-access-d|file|fields|field|fetch|false-leaks|false)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3709
3725
|
"captures": {
|
|
3710
3726
|
"1": {
|
|
3711
3727
|
"name": "keyword.other.abl"
|
|
@@ -3713,7 +3729,8 @@
|
|
|
3713
3729
|
}
|
|
3714
3730
|
},
|
|
3715
3731
|
"keywords-G": {
|
|
3716
|
-
"
|
|
3732
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3733
|
+
"match": "(?i)\\b(gt|group|grid-unit-width|grid-unit-height|grid-set|grayed|grant-archive|grant|goto|go-on|go|global|getbyte|get-text-width|get-text-height|get-key-value|get-key-valu|get-key-val|get-file|get-dir|get-attr-call-type|get|generate-md5|ge)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3717
3734
|
"captures": {
|
|
3718
3735
|
"1": {
|
|
3719
3736
|
"name": "keyword.other.abl"
|
|
@@ -3721,7 +3738,8 @@
|
|
|
3721
3738
|
}
|
|
3722
3739
|
},
|
|
3723
3740
|
"keywords-H": {
|
|
3724
|
-
"
|
|
3741
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3742
|
+
"match": "(?i)\\b(host-byte-order|horiz-scroll-drag|horiz-home|horiz-end|home|hint|hide|helpfile-name|helpfile-nam|helpfile-na|helpfile-n|help-topic|help-context|help-contex|help-conte|help-cont|help-con|height|header|having)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3725
3743
|
"captures": {
|
|
3726
3744
|
"1": {
|
|
3727
3745
|
"name": "keyword.other.abl"
|
|
@@ -3729,7 +3747,8 @@
|
|
|
3729
3747
|
}
|
|
3730
3748
|
},
|
|
3731
3749
|
"keywords-I": {
|
|
3732
|
-
"
|
|
3750
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3751
|
+
"match": "(?i)\\b(iteration-changed|item|is|into|interface|insert-mode|insert-field-label|insert-field-data|insert-field|insert-column|insert|input-output|input-outpu|input-outp|input-out|input-ou|input-o|input|inner|initiate|initial-filter|initial-dir|initial|init|inherits|inherit-color-mode|information|informatio|informati|informat|informa|inform|infor|info|indicator|indexed-reposition|index-hint|in|import|implements|image-size-pixels|image-size-pixel|image-size-pixe|image-size-pix|image-size-pi|image-size-p|image-size-chars|image-size-char|image-size-cha|image-size-ch|image-size-c|image-size|image|if)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3733
3752
|
"captures": {
|
|
3734
3753
|
"1": {
|
|
3735
3754
|
"name": "keyword.other.abl"
|
|
@@ -3737,7 +3756,8 @@
|
|
|
3737
3756
|
}
|
|
3738
3757
|
},
|
|
3739
3758
|
"keywords-J": {
|
|
3740
|
-
"
|
|
3759
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3760
|
+
"match": "(?i)\\b(join-on-select|join-by-sqldb|join)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3741
3761
|
"captures": {
|
|
3742
3762
|
"1": {
|
|
3743
3763
|
"name": "keyword.other.abl"
|
|
@@ -3745,7 +3765,8 @@
|
|
|
3745
3765
|
}
|
|
3746
3766
|
},
|
|
3747
3767
|
"keywords-K": {
|
|
3748
|
-
"
|
|
3768
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3769
|
+
"match": "(?i)\\b(keycache-join|key-label|key-function|key-functio|key-functi|key-funct|key-func|key-code|keep-tab-order|keep-messages)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3749
3770
|
"captures": {
|
|
3750
3771
|
"1": {
|
|
3751
3772
|
"name": "keyword.other.abl"
|
|
@@ -3753,7 +3774,8 @@
|
|
|
3753
3774
|
}
|
|
3754
3775
|
},
|
|
3755
3776
|
"keywords-L": {
|
|
3756
|
-
"
|
|
3777
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3778
|
+
"match": "(?i)\\b(lt|lower|lookahead|longchar|longcha|longch|long|log-manager|log-id|locked|lob-dir|load-result-into|load-picture|load-from|load|little-endian|listing|listin|listi|line-up|line-right|line-left|line-down|like-sequential|like|length|left-end|left-aligned|left-aligne|left-align|left|leave|leak-detection|leading|le|last-key|last-event|last-even|landscape|label-pfcolor|label-pfcolo|label-pfcol|label-pfco|label-pfc|label)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3757
3779
|
"captures": {
|
|
3758
3780
|
"1": {
|
|
3759
3781
|
"name": "keyword.other.abl"
|
|
@@ -3761,7 +3783,8 @@
|
|
|
3761
3783
|
}
|
|
3762
3784
|
},
|
|
3763
3785
|
"keywords-M": {
|
|
3764
|
-
"
|
|
3786
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3787
|
+
"match": "(?i)\\b(must-exist|multiple-key|mpe|move|mouse|modulo|mod|min-width|min-size|min-schema-marshall|min-schema-marshal|min-height|method|message-line|message-area-msg|message|menubar|menu-item|menu-drop|menu|memptr|md5-value|maximize|max-width|max-size|max-rows|max-height|max|matches|margin-width-pixels|margin-width-pixel|margin-width-pixe|margin-width-pix|margin-width-pi|margin-width-p|margin-width-chars|margin-width-char|margin-width-cha|margin-width-ch|margin-width-c|margin-width|margin-height-pixels|margin-height-pixel|margin-height-pixe|margin-height-pix|margin-height-pi|margin-height-p|margin-height-chars|margin-height-char|margin-height-cha|margin-height-ch|margin-height-c|margin-height|margin-extra|map|main-menu|machine-class)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3765
3788
|
"captures": {
|
|
3766
3789
|
"1": {
|
|
3767
3790
|
"name": "keyword.other.abl"
|
|
@@ -3769,7 +3792,8 @@
|
|
|
3769
3792
|
}
|
|
3770
3793
|
},
|
|
3771
3794
|
"keywords-N": {
|
|
3772
|
-
"
|
|
3795
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3796
|
+
"match": "(?i)\\b(numeric|num-selected|num-copies|null|not-active|not|none|non-serializable|node-type|no-word-wrap|no-wait|no-undo|no-underline|no-underlin|no-underli|no-underl|no-under|no-unde|no-und|no-tab-stop|no-tab-sto|no-tab-st|no-tab-s|no-tab-|no-tab|no-separators|no-separate-connection|no-scrolling|no-scrollbar-vertical|no-scrollbar-vertica|no-scrollbar-vertic|no-scrollbar-verti|no-scrollbar-vert|no-scrollbar-ver|no-scrollbar-ve|no-scrollbar-v|no-schema-marshall|no-schema-marshal|no-row-markers|no-return-value|no-return-valu|no-return-val|no-query-unique-added|no-query-unique-adde|no-query-unique-add|no-query-unique-ad|no-query-unique-a|no-query-unique-|no-query-unique|no-query-uniqu|no-query-uniq|no-query-uni|no-query-un|no-query-u|no-query-order-added|no-query-order-adde|no-query-order-add|no-query-order-ad|no-query-order-a|no-query-order-|no-query-order|no-query-orde|no-query-ord|no-query-or|no-query-o|no-prefetch|no-prefetc|no-prefet|no-prefe|no-pause|no-message|no-messag|no-messa|no-mess|no-mes|no-map|no-lookahead|no-lock|no-lobs|no-labels|no-label|no-keycache-join|no-join-by-sqldb|no-inherit-fgcolor|no-inherit-fgcolo|no-inherit-fgcol|no-inherit-fgco|no-inherit-fgc|no-inherit-bgcolor|no-inherit-bgcolo|no-inherit-bgcol|no-inherit-bgco|no-inherit-bgc|no-index-hint|no-hide|no-help|no-firehose-cursor|no-fill|no-fil|no-fi|no-f|no-error|no-echo|no-drag|no-debug|no-convert-3d-colors|no-convert-3d-color|no-convert-3d-colo|no-convert-3d-col|no-convert-3d-co|no-convert-3d-c|no-convert-3d-|no-convert-3d|no-convert|no-console|no-column-scrolling|no-column-scrollin|no-column-scrolli|no-column-scroll|no-column-scrol|no-column-scro|no-column-scr|no-column-sc|no-box|no-bind-where|no-auto-validate|no-auto-trim|no-auto-tri|no-attr-space|no-attr-spac|no-attr-spa|no-attr-sp|no-attr-s|no-attr-list|no-attr-lis|no-attr-li|no-attr-l|no-attr|no-assign|no-array-message|no-array-messag|no-array-messa|no-array-mess|no-array-mes|no-array-me|no-array-m|no-apply|no|next-word|next-prompt|next-frame|next-error|next|new-line|new-instance|new|nested|ne|native|namespace-uri|namespace-prefix)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3773
3797
|
"captures": {
|
|
3774
3798
|
"1": {
|
|
3775
3799
|
"name": "keyword.other.abl"
|
|
@@ -3777,7 +3801,8 @@
|
|
|
3777
3801
|
}
|
|
3778
3802
|
},
|
|
3779
3803
|
"keywords-O": {
|
|
3780
|
-
"
|
|
3804
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3805
|
+
"match": "(?i)\\b(override|overlay|output|outer-join|outer|out-of-data|otherwise|os400|os2|os-rename|os-dir|os-delete|os-create-dir|os-copy|os-command|os-append|orientation|ordered-join|or|options-file|option|open-line-above|open|on|ole-names-locale|ole-names-local|ole-names-loca|ole-invoke-locale|ole-invoke-local|ole-invoke-loca|old|ok-cancel|ok|off-home|off-end|off|of|octet_length|object)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3781
3806
|
"captures": {
|
|
3782
3807
|
"1": {
|
|
3783
3808
|
"name": "keyword.other.abl"
|
|
@@ -3785,7 +3810,8 @@
|
|
|
3785
3810
|
}
|
|
3786
3811
|
},
|
|
3787
3812
|
"keywords-P": {
|
|
3788
|
-
"
|
|
3813
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3814
|
+
"match": "(?i)\\b(putbyte|put-unsigned-short|put-unsigned-long|put-string|put-short|put-long|put-key-value|put-key-valu|put-key-val|put-int64|put-float|put-double|put-bytes|put-byte|put-bits|put|publish|public|protected|property|propath|promsgs|prompt-for|prompt-fo|prompt-f|prompt|profiler|profile-file|process|procedure-complete|procedure-call-type|procedure|procedur|procedu|proced|proce|privileges|private|printer-setup|printer|prev-word|prev-frame|prev|preselect|preselec|presele|presel|preprocess|preproces|preproce|preproc|precision|portrait|pixels|pick-both|pick-area|pick|performance|performanc|performan|performa|perform|perfor|perfo|perf|pause|paste|pascal|partial-key|parent-window-close|parent-id-field|parameter|paged|page-width|page-widt|page-wid|page-up|page-right-text|page-right|page-left|page-down|page|package-protected|package-private)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3789
3815
|
"captures": {
|
|
3790
3816
|
"1": {
|
|
3791
3817
|
"name": "keyword.other.abl"
|
|
@@ -3793,7 +3819,8 @@
|
|
|
3793
3819
|
}
|
|
3794
3820
|
},
|
|
3795
3821
|
"keywords-Q": {
|
|
3796
|
-
"
|
|
3822
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3823
|
+
"match": "(?i)\\b(quit|question|query-tuning|query)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3797
3824
|
"captures": {
|
|
3798
3825
|
"1": {
|
|
3799
3826
|
"name": "keyword.other.abl"
|
|
@@ -3801,7 +3828,8 @@
|
|
|
3801
3828
|
}
|
|
3802
3829
|
},
|
|
3803
3830
|
"keywords-R": {
|
|
3804
|
-
"
|
|
3831
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3832
|
+
"match": "(?i)\\b(run-procedure|run-procedur|run-procedu|run-proced|run-proce|run-proc|run|rule-y|rule-row|rule|row-unmodified|row-of|row-modified|row-leave|row-height|row-entry|row-display|row-deleted|row-created|row|routine-level|right-end|right-aligned|right-aligne|right-align|right|revoke|revert|reverse-from|returns|return-value|return-to-start-dir|return-to-start-di|return|retry-cancel|retain|resume-display|result|request|reposition-parent-relation|reposition-parent-relatio|reposition-parent-relati|reposition-parent-relat|reposition-parent-rela|reposition-parent-rel|reposition-forwards|reposition-forward|reposition-forwar|reposition-forwa|reposition-forw|reposition-backwards|reposition-backward|reposition-backwar|reposition-backwa|reposition-backw|reposition-back|reposition|reports|replication-write|replication-delete|replication-create|repeat|release|reinstate|reference-only|rectangle|rectangl|rectang|rectan|recta|rect|recall|real|readkey|read-response|read-exact-num|read-available|rcode-information|rcode-informatio|rcode-informati|rcode-informat|rcode-informa|rcode-inform|rcode-infor|rcode-info|raw-transfer|raw|radio-set)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3805
3833
|
"captures": {
|
|
3806
3834
|
"1": {
|
|
3807
3835
|
"name": "keyword.other.abl"
|
|
@@ -3809,7 +3837,8 @@
|
|
|
3809
3837
|
}
|
|
3810
3838
|
},
|
|
3811
3839
|
"keywords-S": {
|
|
3812
|
-
"
|
|
3840
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3841
|
+
"match": "(?i)\\b(system-help|system-dialog|suspend|super|summary|sum|substring|subscribe|sub-total|sub-minimum|sub-minimu|sub-minim|sub-mini|sub-min|sub-menu-help|sub-menu|sub-maximum|sub-maximu|sub-maxim|sub-maxi|sub-max|sub-count|sub-average|sub-averag|sub-avera|sub-aver|sub-ave|string-xref|stream-io|stream-handle|stream|stored-procedure|stored-procedur|stored-procedu|stored-proced|stored-proce|stored-proc|stop-mem-check|stop-display|stop-after|stop|stomp-frequency|stomp-detection|stdcall|status-area-msg|status|static|starting|start-search|start-row-resize|start-resize|start-move|start-mem-check|start-extend-box-selection|start-box-selection|start|sql|space|source-procedure|source|some|socket|soap-header-entryref|soap-header|soap-fault|smallint|slider|skip-schema-check|skip-group-duplicates|skip|size-pixels|size-pixel|size-pixe|size-pix|size-pi|size-p|size-chars|size-char|size-cha|size-ch|size-c|size|single-run|single-character|single|simple|silent|signature|side-label|side-labe|side-lab|show-stats|show-stat|short|shared|share-lock|share-loc|share-lo|share-l|share-|share|settings|set-state|set-pointer-value|set-pointer-valu|set-pointer-val|set-option|set-event-manager-option|set-db-logging|set-contents|set-cell-focus|set-byte-order|set-attr-call-type|set|session|server-socket|server|serialize-name|serializable|separate-connection|send|self|selection-list|selection-extend|selection|selected-items|select-repositioned-row|select-on-join|select-extend|select|seek|security-policy|section|search-target|search-self|scrolling|scrolled-row-position|scrolled-row-positio|scrolled-row-positi|scrolled-row-posit|scrolled-row-posi|scrolled-row-pos|scrollbar-drag|scroll-vertical|scroll-right|scroll-notify|scroll-mode|scroll-left|scroll-horizontal|scroll|screen-io|screen|schema|sax-xml|sax-writer|sax-write-tag|sax-write-idle|sax-write-error|sax-write-element|sax-write-content|sax-write-complete|sax-write-begin|sax-uninitialized|sax-running|sax-reader|sax-parser-error|sax-complete|sax-complet|sax-comple|sax-attributes|save-as|save)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3813
3842
|
"captures": {
|
|
3814
3843
|
"1": {
|
|
3815
3844
|
"name": "keyword.other.abl"
|
|
@@ -3817,7 +3846,8 @@
|
|
|
3817
3846
|
}
|
|
3818
3847
|
},
|
|
3819
3848
|
"keywords-T": {
|
|
3820
|
-
"
|
|
3849
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3850
|
+
"match": "(?i)\\b(ttcodepage|true|triggers|trigger|transaction-mode|transaction|trans|trailing|total|topic|top-column|top|to|thru|throw|through|this-procedure|this-object|then|text-seg-growth|text-seg-growt|text-seg-grow|text-seg-gro|text-seg-gr|text-seg-g|text-seg-|text-seg|text-cursor|text|terminate|terminal|term|tenant-where|tenant|temp-table|target-procedure|target|table-scan|tab)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3821
3851
|
"captures": {
|
|
3822
3852
|
"1": {
|
|
3823
3853
|
"name": "keyword.other.abl"
|
|
@@ -3825,7 +3855,8 @@
|
|
|
3825
3855
|
}
|
|
3826
3856
|
},
|
|
3827
3857
|
"keywords-U": {
|
|
3828
|
-
"
|
|
3858
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3859
|
+
"match": "(?i)\\b(utc-offset|using|user|use-widget-pool|use-underline|use-text|use-revvideo|use-index|use-filename|use-dict-exps|use-dict-exp|use-dict-ex|use-dict-e|use-dict-|use-dict|use-dic|use|upper|update|up|unsubscribe|unsigned-short|unsigned-long|unsigned-integer|unsigned-int64|unsigned-byte|unload|unless-hidden|unix-end|unix|unique|union|unformatted|unformatte|unformatt|unformat|unforma|unform|undo|underline|underlin|underli|underl|unbuffered|unbuffere|unbuffer|unbuffe|unbuff)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3829
3860
|
"captures": {
|
|
3830
3861
|
"1": {
|
|
3831
3862
|
"name": "keyword.other.abl"
|
|
@@ -3833,7 +3864,8 @@
|
|
|
3833
3864
|
}
|
|
3834
3865
|
},
|
|
3835
3866
|
"keywords-V": {
|
|
3836
|
-
"
|
|
3867
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3868
|
+
"match": "(?i)\\b(void|vms|virtual-width|virtual-height|view-as|view|vertical|vertica|vertic|verti|vert|verbose|verbos|verbo|verb|variable|variabl|variab|varia|vari|var|values|value-changed|validate|v6frame)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3837
3869
|
"captures": {
|
|
3838
3870
|
"1": {
|
|
3839
3871
|
"name": "keyword.other.abl"
|
|
@@ -3841,7 +3873,8 @@
|
|
|
3841
3873
|
}
|
|
3842
3874
|
},
|
|
3843
3875
|
"keywords-W": {
|
|
3844
|
-
"
|
|
3876
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3877
|
+
"match": "(?i)\\b(workfile|work-table|work-tabl|work-tab|word-index|with|window-restored|window-resized|window-normal|window-name|window-minimized|window-minimize|window-minimiz|window-minimi|window-minim|window-maximized|window-maximize|window-maximiz|window-maximi|window-maxim|window-delayed-minimize|window-delayed-minimiz|window-delayed-minimi|window-delayed-minim|window-delayed-mini|window-delayed-min|window-close|width|widget-pool|widget|while|where|when|web-notify|web-context|web-contex|web-conte|web-cont|web-con|wait-for|wait)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3845
3878
|
"captures": {
|
|
3846
3879
|
"1": {
|
|
3847
3880
|
"name": "keyword.other.abl"
|
|
@@ -3849,7 +3882,8 @@
|
|
|
3849
3882
|
}
|
|
3850
3883
|
},
|
|
3851
3884
|
"keywords-X": {
|
|
3852
|
-
"
|
|
3885
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3886
|
+
"match": "(?i)\\b(xref-xml|xref|xor|xml-node-name|xcode|x-of|x-noderef|x-document)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3853
3887
|
"captures": {
|
|
3854
3888
|
"1": {
|
|
3855
3889
|
"name": "keyword.other.abl"
|
|
@@ -3857,7 +3891,8 @@
|
|
|
3857
3891
|
}
|
|
3858
3892
|
},
|
|
3859
3893
|
"keywords-Y": {
|
|
3860
|
-
"
|
|
3894
|
+
"comment": "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
3895
|
+
"match": "(?i)\\b(yes-no-cancel|yes-no|yes|year-offset|year|y-of)\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
3861
3896
|
"captures": {
|
|
3862
3897
|
"1": {
|
|
3863
3898
|
"name": "keyword.other.abl"
|
|
@@ -5073,7 +5108,7 @@
|
|
|
5073
5108
|
},
|
|
5074
5109
|
"abl-functions-S": {
|
|
5075
5110
|
"name": "meta.function-call.abl",
|
|
5076
|
-
"begin": "(?i)\\s*(super|substring|substrin|substri|substr|substitute|substitut|substitu|substit|substi|subst|string|ssl-server-name|sqrt|sha1-digest|setuserid|setuseri|setuser|set-size|set-effective-tenant|set-db-client|seek|search|sdbname|screen-lines)\\s*(?=\\()",
|
|
5111
|
+
"begin": "(?i)\\s*(super|substring|substrin|substri|substr|substitute|substitut|substitu|substit|substi|subst|string|ssl-server-name|sqrt|skip|sha1-digest|setuserid|setuseri|setuser|set-size|set-effective-tenant|set-db-client|seek|search|sdbname|screen-lines)\\s*(?=\\()",
|
|
5077
5112
|
"beginCaptures": {
|
|
5078
5113
|
"1": {
|
|
5079
5114
|
"name": "support.function.abl"
|
package/index.js
CHANGED
|
@@ -42,6 +42,7 @@ alsoStatements.push('ambiguous');
|
|
|
42
42
|
alsoStatements.push('available');
|
|
43
43
|
alsoStatements.push('centered');
|
|
44
44
|
alsoStatements.push('delete');
|
|
45
|
+
alsoStatements.push('delimiter');
|
|
45
46
|
alsoStatements.push('first');
|
|
46
47
|
alsoStatements.push('format');
|
|
47
48
|
alsoStatements.push('initial');
|
|
@@ -55,6 +56,7 @@ alsoStatements.push('row');
|
|
|
55
56
|
alsoStatements.push('serialize-name');
|
|
56
57
|
alsoStatements.push('single-run');
|
|
57
58
|
alsoStatements.push('transaction');
|
|
59
|
+
alsoStatements.push('view-as');
|
|
58
60
|
alsoStatements.push('xml-node-name');
|
|
59
61
|
|
|
60
62
|
let functionsNotStatements = [];
|
|
@@ -64,6 +66,7 @@ let alsoFunctions = [];
|
|
|
64
66
|
alsoFunctions.push('lower');
|
|
65
67
|
alsoFunctions.push('relation-fields');
|
|
66
68
|
alsoFunctions.push('return');
|
|
69
|
+
alsoFunctions.push('skip');
|
|
67
70
|
alsoFunctions.push('substitute');
|
|
68
71
|
alsoFunctions.push('this-object');
|
|
69
72
|
alsoFunctions.push('value');
|
|
@@ -72,28 +75,30 @@ lineReaderMethods.on('line', line => {
|
|
|
72
75
|
let results;
|
|
73
76
|
line = line.toLowerCase();
|
|
74
77
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
if (!line.startsWith("#")) {
|
|
79
|
+
let kw = line.split(' ');
|
|
80
|
+
let charIdx = kw[0].charCodeAt(0) - 97;
|
|
81
|
+
let keyWord = kw[0].split('(')[0];
|
|
78
82
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
if (kw.includes('attribute')) {
|
|
84
|
+
if (!attributeBlocks[charIdx].includes(keyWord)) {
|
|
85
|
+
attributeBlocks[charIdx].push(keyWord);
|
|
86
|
+
}
|
|
87
|
+
} else if (kw.includes('method')) {
|
|
88
|
+
if (!methodBlocks[charIdx].includes(keyWord)) {
|
|
89
|
+
methodBlocks[charIdx].push(keyWord);
|
|
90
|
+
}
|
|
86
91
|
}
|
|
87
|
-
}
|
|
88
92
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
93
|
+
if (alsoStatements.includes(keyWord)) {
|
|
94
|
+
if (!keywordBlocks[charIdx].includes(keyWord)) {
|
|
95
|
+
keywordBlocks[charIdx].push(keyWord);
|
|
96
|
+
}
|
|
92
97
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
if (alsoFunctions.includes(keyWord)) {
|
|
99
|
+
if (!functionBlocks[charIdx].includes(keyWord)) {
|
|
100
|
+
functionBlocks[charIdx].push(keyWord);
|
|
101
|
+
}
|
|
97
102
|
}
|
|
98
103
|
}
|
|
99
104
|
});
|
|
@@ -102,7 +107,7 @@ lineReaderFunctions.on('line', line => {
|
|
|
102
107
|
let results;
|
|
103
108
|
line = line.toLowerCase();
|
|
104
109
|
|
|
105
|
-
|
|
110
|
+
if (!line.startsWith("#")) {
|
|
106
111
|
|
|
107
112
|
let kw = line.split(' ');
|
|
108
113
|
let kwName = '';
|
|
@@ -115,10 +120,6 @@ lineReaderFunctions.on('line', line => {
|
|
|
115
120
|
} else {
|
|
116
121
|
kwName = kw.slice(0, kw.indexOf('function')).join(' ');
|
|
117
122
|
}
|
|
118
|
-
}
|
|
119
|
-
} else if (kw.includes('statement')) {
|
|
120
|
-
for (const keyWord of kw) {
|
|
121
|
-
let charIdx = keyWord.charCodeAt(0) - 97;
|
|
122
123
|
|
|
123
124
|
// CAPS letter alphabet
|
|
124
125
|
let charIdx = kwName.charCodeAt(0) - 97;
|
|
@@ -157,39 +158,34 @@ lineReaderFunctions.on('line', line => {
|
|
|
157
158
|
lineReaderKeywords.on('line', line => {
|
|
158
159
|
let results;
|
|
159
160
|
line = line.toLowerCase();
|
|
161
|
+
if (!line.startsWith("#")) {
|
|
162
|
+
while ((results = re.exec(line)) !== null) {
|
|
163
|
+
let kw = results[0];
|
|
164
|
+
// CAPS letter alphabet
|
|
165
|
+
let charIdx = kw.charCodeAt(0) - 97;
|
|
160
166
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
let charIdx = kw.charCodeAt(0) - 97;
|
|
165
|
-
|
|
166
|
-
if (kw.indexOf('(') !== -1) {
|
|
167
|
-
let kwParts = kw.split('(');
|
|
168
|
-
let fullKw = kwParts[0] + kwParts[1];
|
|
167
|
+
if (kw.indexOf('(') !== -1) {
|
|
168
|
+
let kwParts = kw.split('(');
|
|
169
|
+
let fullKw = kwParts[0] + kwParts[1];
|
|
169
170
|
|
|
170
|
-
|
|
171
|
-
|
|
171
|
+
kw = kwParts[0];
|
|
172
|
+
addToBlock(charIdx, fullKw, kw);
|
|
172
173
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
174
|
+
let kwComplete = kwParts[1];
|
|
175
|
+
for (const element of kwComplete) {
|
|
176
|
+
kw += element;
|
|
176
177
|
|
|
177
|
-
|
|
178
|
+
addToBlock(charIdx, fullKw, kw);
|
|
179
|
+
}
|
|
180
|
+
} else {
|
|
181
|
+
addToBlock(charIdx, kw, kw);
|
|
178
182
|
}
|
|
179
|
-
} else {
|
|
180
|
-
addToBlock(charIdx, kw, kw);
|
|
181
183
|
}
|
|
182
184
|
}
|
|
183
185
|
});
|
|
184
186
|
|
|
185
187
|
function addToBlock(charIdx, fullKw, addKw) {
|
|
186
188
|
|
|
187
|
-
if (alsoFunctions.includes(fullKw)) {
|
|
188
|
-
if (!functionBlocks[charIdx].includes(addKw)) {
|
|
189
|
-
functionBlocks[charIdx].push(addKw);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
189
|
if (attributeBlocks[charIdx].includes(fullKw)) {
|
|
194
190
|
if (!attributeBlocks[charIdx].includes(addKw)) {
|
|
195
191
|
attributeBlocks[charIdx].push(addKw);
|
|
@@ -207,6 +203,13 @@ function addToBlock(charIdx, fullKw, addKw) {
|
|
|
207
203
|
keywordBlocks[charIdx].push(addKw);
|
|
208
204
|
}
|
|
209
205
|
}
|
|
206
|
+
|
|
207
|
+
if (alsoFunctions.includes(fullKw)) {
|
|
208
|
+
if (!functionBlocks[charIdx].includes(addKw)) {
|
|
209
|
+
functionBlocks[charIdx].push(addKw);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
210
213
|
}
|
|
211
214
|
|
|
212
215
|
lineReaderKeywords.on('close', () => {
|
|
@@ -220,8 +223,8 @@ lineReaderKeywords.on('close', () => {
|
|
|
220
223
|
|
|
221
224
|
result['keywords-' + String.fromCharCode(97 + zz).toUpperCase()] =
|
|
222
225
|
{
|
|
223
|
-
|
|
224
|
-
match: "(?i)\\b(" + keywordBlocks[zz].sort(reverseSort).join('|') + ")\\b",
|
|
226
|
+
comment: "The keyword must not have a trailing variable character (one of #$-_%&)",
|
|
227
|
+
match: "(?i)\\b(" + keywordBlocks[zz].sort(reverseSort).join('|') + ")\\b(?![\\#\\$\\-\\_\\%\\&])",
|
|
225
228
|
captures: {
|
|
226
229
|
1: {
|
|
227
230
|
name: "keyword.other.abl"
|
|
@@ -331,4 +334,4 @@ function reverseSort(a, b) {
|
|
|
331
334
|
|
|
332
335
|
// names are equal
|
|
333
336
|
return 0;
|
|
334
|
-
}
|
|
337
|
+
}
|