abl-tmlanguage 1.3.28 → 1.3.29

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.
Files changed (140) hide show
  1. package/package.json +5 -2
  2. package/.github/workflows/ci.yml +0 -36
  3. package/CHANGELOG.md +0 -139
  4. package/abl-functions.txt +0 -548
  5. package/abl-keywords.txt +0 -416
  6. package/abl-methods.txt +0 -1053
  7. package/index.mjs +0 -508
  8. package/spec/analyze-suspend-resume/analyze-suspend-resume.spec.js +0 -17
  9. package/spec/annotations/annotation.spec.js +0 -366
  10. package/spec/array-extent/issue#5.spec.js +0 -26
  11. package/spec/blocks/block-labels.spec.js +0 -201
  12. package/spec/blocks/block-options.spec.js +0 -174
  13. package/spec/blocks/finally-blocks.spec.js +0 -90
  14. package/spec/blocks/on-quit.spec.js +0 -59
  15. package/spec/comments/comment-in-block-statement.spec.js +0 -153
  16. package/spec/comments/comment-in-for-each.spec.js +0 -105
  17. package/spec/comments/comment-in-function-args.spec.js +0 -88
  18. package/spec/comments/spacious-comment.spec.js +0 -73
  19. package/spec/comments/vscode-abl-issue#127.spec.js +0 -165
  20. package/spec/create-widgets/create-window.spec.js +0 -224
  21. package/spec/db-table-and-field/buffer-copy.spec.js +0 -246
  22. package/spec/db-table-and-field/create-alias.spec.js +0 -131
  23. package/spec/db-table-and-field/create-record.spec.js +0 -75
  24. package/spec/db-table-and-field/double-colon-access.spec.js +0 -154
  25. package/spec/db-table-and-field/field-in-function.spec.js +0 -58
  26. package/spec/db-table-and-field/fields-except.spec.js +0 -68
  27. package/spec/db-table-and-field/find-record.spec.js +0 -158
  28. package/spec/db-table-and-field/foreach.spec.js +0 -588
  29. package/spec/db-table-and-field/issue#88.spec.js +0 -121
  30. package/spec/db-table-and-field/new-record.spec.js +0 -250
  31. package/spec/db-table-and-field/query-get.spec.js +0 -137
  32. package/spec/define/define-browse.spec.js +0 -454
  33. package/spec/define/define-button.spec.js +0 -233
  34. package/spec/define/define-query.spec.js +0 -144
  35. package/spec/define/define-rectangle.spec.js +0 -47
  36. package/spec/define-buffer/create-buffer.spec.js +0 -212
  37. package/spec/define-buffer/simple-single-line.spec.js +0 -155
  38. package/spec/define-enum/type-name.spec.js +0 -200
  39. package/spec/define-event/simple-single-line.spec.js +0 -61
  40. package/spec/define-frame/issue#173.spec.js +0 -580
  41. package/spec/define-parameter/simple-single-line.spec.js +0 -228
  42. package/spec/define-property/property-getter.spec.js +0 -70
  43. package/spec/define-stream/simple-single-line.spec.js +0 -42
  44. package/spec/define-temp-table/define-dataset.spec.js +0 -217
  45. package/spec/define-temp-table/define-temp-table.spec.js +0 -605
  46. package/spec/define-variable/define-like.spec.js +0 -78
  47. package/spec/define-variable/extent.spec.js +0 -778
  48. package/spec/define-variable/initial.spec.js +0 -126
  49. package/spec/define-variable/issue#6.spec.js +0 -280
  50. package/spec/define-variable/issue#9.spec.js +0 -45
  51. package/spec/define-variable/simple-single-line.spec.js +0 -181
  52. package/spec/define-variable/single-line-with-a-comment-at-the-end.spec.js +0 -62
  53. package/spec/define-variable/single-line-with-a-space-and-a-comment-at-the-end.spec.js +0 -65
  54. package/spec/define-variable/tm-issue#2.spec.js +0 -25
  55. package/spec/define-variable/var-statement.spec.js +0 -467
  56. package/spec/do/do-blocks.spec.js +0 -289
  57. package/spec/do/issue#3.spec.js +0 -83
  58. package/spec/do/stop-after.spec.js +0 -79
  59. package/spec/for-each/for-each.spec.js +0 -111
  60. package/spec/for-each/issue#321.spec.js +0 -116
  61. package/spec/for-each/vscode-abl.issue#166.spec.js +0 -83
  62. package/spec/function-call/can-find.spec.js +0 -239
  63. package/spec/function-call/include-in-argument.spec.js +0 -120
  64. package/spec/function-call/misc-abl-functions.spec.js +0 -59
  65. package/spec/function-call/nested-functions.spec.js +0 -245
  66. package/spec/function-call/pass-table.spec.js +0 -116
  67. package/spec/function-call/set-size.spec.js +0 -56
  68. package/spec/function-call/udf-calls.spec.js +0 -50
  69. package/spec/function-call/vscode-abl-issue#19.spec.js +0 -129
  70. package/spec/function-definition/vscode-abl-issue#166.spec.js +0 -446
  71. package/spec/global-scoped-define/global-define.spec.js +0 -64
  72. package/spec/global-scoped-define/scoped-define-with-procedure-keyword.spec.js +0 -70
  73. package/spec/global-scoped-define/undefine.spec.js +0 -44
  74. package/spec/include/abl-tmlanguage-issues#5.spec.js +0 -40
  75. package/spec/include/include-file-name.spec.js +0 -267
  76. package/spec/include/unnamed-arguments.spec.js +0 -38
  77. package/spec/include/vscode-abl-issue#45.spec.js +0 -20
  78. package/spec/include/vscode-abl-issue#77.spec.js +0 -128
  79. package/spec/include/vscode-abl-issue#80.spec.js +0 -50
  80. package/spec/input-output/input-from.spec.js +0 -504
  81. package/spec/input-output/output-to.spec.js +0 -456
  82. package/spec/method-attribute-property-call/abl-method-attribute-call.spec.js +0 -98
  83. package/spec/method-attribute-property-call/connected-method.spec.js +0 -29
  84. package/spec/method-attribute-property-call/datset-table-attribute-method-call.spec.js +0 -53
  85. package/spec/method-attribute-property-call/get-set-method-name.spec.js +0 -140
  86. package/spec/method-attribute-property-call/method-call.spec.js +0 -268
  87. package/spec/method-attribute-property-call/nested-property-call.spec.js +0 -18
  88. package/spec/method-attribute-property-call/unqualified-method-call.spec.js +0 -41
  89. package/spec/method-definition/constructor.spec.js +0 -174
  90. package/spec/method-definition/method.spec.js +0 -541
  91. package/spec/misc-statements/array-for.spec.js +0 -21
  92. package/spec/misc-statements/case-statement.spec.js +0 -96
  93. package/spec/misc-statements/class-in-var-name.spec.js +0 -204
  94. package/spec/misc-statements/copy-lob.spec.js +0 -144
  95. package/spec/misc-statements/def-in-name.spec.js +0 -20
  96. package/spec/misc-statements/delete-objects.spec.js +0 -65
  97. package/spec/misc-statements/do-in-name.spec.js +0 -259
  98. package/spec/misc-statements/event-subscribe.spec.js +0 -308
  99. package/spec/misc-statements/export-delimiter.spec.js +0 -37
  100. package/spec/misc-statements/guid.spec.js +0 -97
  101. package/spec/misc-statements/if-then.spec.js +0 -454
  102. package/spec/misc-statements/issue#173.spec.js +0 -99
  103. package/spec/misc-statements/message-statement.spec.js +0 -21
  104. package/spec/misc-statements/record-buffer-functions.spec.js +0 -73
  105. package/spec/misc-statements/release.spec.js +0 -41
  106. package/spec/misc-statements/return-statement.spec.js +0 -64
  107. package/spec/misc-statements/skip-statement-and-fuction.spec.js +0 -35
  108. package/spec/misc-statements/system-handles.spec.js +0 -122
  109. package/spec/numbers/scientific-notation.spec.js +0 -212
  110. package/spec/operators/operators.spec.js +0 -149
  111. package/spec/operators/safe-navigation-operator.spec.js +0 -246
  112. package/spec/preprocesors/issue166.spec.js +0 -91
  113. package/spec/preprocesors/preprocessor-functions.spec.js +0 -77
  114. package/spec/preprocesors/proparse-preprocessor.spec.js +0 -90
  115. package/spec/procedure-definition/empty-proc.spec.js +0 -134
  116. package/spec/procedure-definition/trigger-procedure.spec.js +0 -132
  117. package/spec/procedure-definition/vscode-abl-issue#22.spec.js +0 -46
  118. package/spec/procedure-definition/vscode-abl-issue#26.spec.js +0 -31
  119. package/spec/procedure-definition/vscode-abl-issue#325.spec.js +0 -88
  120. package/spec/procedure-definition/vscode-abl-issue#62.spec.js +0 -39
  121. package/spec/run-statement/run-statement.spec.js +0 -868
  122. package/spec/shared.js +0 -104
  123. package/spec/strings/translation-attribute.spec.js +0 -52
  124. package/spec/strings/vscode-abl-issue#11.spec.js +0 -56
  125. package/spec/strings/vscode-abl-issue#28.spec.js +0 -31
  126. package/spec/type-name/argument.spec.js +0 -206
  127. package/spec/type-name/cast.spec.js +0 -163
  128. package/spec/type-name/define-class.spec.js +0 -555
  129. package/spec/type-name/define-enum.spec.js +0 -44
  130. package/spec/type-name/define-interface.spec.js +0 -159
  131. package/spec/type-name/define-property.spec.js +0 -301
  132. package/spec/type-name/define-temp-table.spec.js +0 -434
  133. package/spec/type-name/define-type-spec.js +0 -435
  134. package/spec/type-name/define-variable-property.spec.js +0 -264
  135. package/spec/type-name/define-variable.spec.js +0 -386
  136. package/spec/type-name/get-class.spec.js +0 -91
  137. package/spec/type-name/new.spec.js +0 -185
  138. package/spec/type-name/parameter-as.spec.js +0 -978
  139. package/spec/type-name/type-name.spec.js +0 -880
  140. package/spec/type-name/using.spec.js +0 -160
@@ -1,978 +0,0 @@
1
- const { assert, expect } = require('chai');
2
- const shared = require('../shared.js');
3
-
4
-
5
- describe('', () => {
6
- let statement = `method public void foo( po as foo.bar.baz):`;
7
-
8
- let expectedTokens = [
9
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
10
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
11
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
12
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
13
- { "startIndex": 14, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
14
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
15
- { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
16
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
17
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
18
- { "startIndex": 24, "endIndex": 26, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
19
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
20
- { "startIndex": 27, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
21
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
22
- { "startIndex": 30, "endIndex": 41, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
23
- { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
24
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
25
- ];
26
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
27
- })
28
-
29
- describe('', () => {
30
- let statement = `method public Progress.Lang.Object foo( po as foo.bar.baz):`;
31
-
32
- let expectedTokens = [
33
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
34
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
35
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
36
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
37
- { "startIndex": 14, "endIndex": 34, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'Progress.Lang.Object'
38
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
39
- { "startIndex": 35, "endIndex": 38, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
40
- { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
41
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
42
- { "startIndex": 40, "endIndex": 42, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
43
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
44
- { "startIndex": 43, "endIndex": 45, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
45
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
46
- { "startIndex": 46, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
47
- { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
48
- { "startIndex": 58, "endIndex": 59, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
49
- ];
50
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
51
- })
52
-
53
- describe('', () => {
54
- let statement = `method public Progress.Collections.List<String> Get_List( po as foo.bar.baz):`;
55
-
56
- let expectedTokens = [
57
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
58
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
59
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
60
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
61
- { "startIndex": 14, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'Progress.Collections.List'
62
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.definition.generic.begin.abl"] }, // '<'
63
- { "startIndex": 40, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'String'
64
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.definition.generic.end.abl"] }, // '>'
65
- { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
66
- { "startIndex": 48, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'Get_List'
67
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
68
- { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
69
- { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
70
- { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
71
- { "startIndex": 61, "endIndex": 63, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
72
- { "startIndex": 63, "endIndex": 64, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
73
- { "startIndex": 64, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
74
- { "startIndex": 75, "endIndex": 76, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
75
- { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
76
- ];
77
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
78
- })
79
-
80
- describe('', () => {
81
- let statement = `method public Progress.Collections.List<String> Get_List( po as List<foo.bar.baz>):`;
82
-
83
- let expectedTokens = [
84
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
85
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
86
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
87
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
88
- { "startIndex": 14, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'Progress.Collections.List'
89
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.definition.generic.begin.abl"] }, // '<'
90
- { "startIndex": 40, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'String'
91
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.definition.generic.end.abl"] }, // '>'
92
- { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
93
- { "startIndex": 48, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'Get_List'
94
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
95
- { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
96
- { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
97
- { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
98
- { "startIndex": 61, "endIndex": 63, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
99
- { "startIndex": 63, "endIndex": 64, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
100
- { "startIndex": 64, "endIndex": 68, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'List'
101
- { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.definition.generic.begin.abl"] }, // '<'
102
- { "startIndex": 69, "endIndex": 80, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
103
- { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.definition.generic.end.abl"] }, // '>'
104
- { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
105
- { "startIndex": 82, "endIndex": 83, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
106
- ];
107
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
108
- })
109
-
110
- describe('', () => {
111
- let statement = `method public Progress.Lang.Object foo( po as foo.bar.baz
112
- po2 as JsonObject,
113
- po3 as logical):`;
114
-
115
- let expectedTokens = [
116
- [
117
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
118
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
119
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
120
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
121
- { "startIndex": 14, "endIndex": 34, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'Progress.Lang.Object'
122
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
123
- { "startIndex": 35, "endIndex": 38, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
124
- { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
125
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
126
- { "startIndex": 40, "endIndex": 42, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
127
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
128
- { "startIndex": 43, "endIndex": 45, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
129
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
130
- { "startIndex": 46, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
131
- ],
132
- [
133
- { "startIndex": 0, "endIndex": 61, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
134
- { "startIndex": 61, "endIndex": 64, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po2'
135
- { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
136
- { "startIndex": 65, "endIndex": 67, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
137
- { "startIndex": 67, "endIndex": 68, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
138
- { "startIndex": 68, "endIndex": 78, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'JsonObject'
139
- { "startIndex": 78, "endIndex": 79, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] }, // ','
140
- ],
141
- [
142
- { "startIndex": 0, "endIndex": 61, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
143
- { "startIndex": 61, "endIndex": 64, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po3'
144
- { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
145
- { "startIndex": 65, "endIndex": 67, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
146
- { "startIndex": 67, "endIndex": 68, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
147
- { "startIndex": 68, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'logical'
148
- { "startIndex": 75, "endIndex": 76, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
149
- { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
150
- ]
151
- ];
152
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
153
- })
154
-
155
- describe('', () => {
156
- let statement = `method public Progress.Lang.Object foo( po as foo.bar.baz
157
- , po2 as JsonObject
158
- , po3 as logical):`;
159
-
160
- let expectedTokens = [
161
- [
162
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
163
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
164
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
165
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
166
- { "startIndex": 14, "endIndex": 34, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'Progress.Lang.Object'
167
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
168
- { "startIndex": 35, "endIndex": 38, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
169
- { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
170
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
171
- { "startIndex": 40, "endIndex": 42, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
172
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
173
- { "startIndex": 43, "endIndex": 45, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
174
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
175
- { "startIndex": 46, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] } // 'foo.bar.baz'
176
- ],
177
- [
178
- { "startIndex": 0, "endIndex": 61, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
179
- { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] }, // ','
180
- { "startIndex": 62, "endIndex": 63, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
181
- { "startIndex": 63, "endIndex": 66, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po2'
182
- { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
183
- { "startIndex": 67, "endIndex": 69, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
184
- { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
185
- { "startIndex": 70, "endIndex": 80, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] } // 'JsonObject'
186
- ],
187
- [
188
- { "startIndex": 0, "endIndex": 61, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
189
- { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] }, // ','
190
- { "startIndex": 62, "endIndex": 63, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
191
- { "startIndex": 63, "endIndex": 66, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po3'
192
- { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
193
- { "startIndex": 67, "endIndex": 69, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
194
- { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
195
- { "startIndex": 70, "endIndex": 77, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'logical'
196
- { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
197
- { "startIndex": 78, "endIndex": 79, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
198
- ]
199
- ];
200
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
201
- })
202
-
203
- describe('', () => {
204
- let statement = `method package-protected Progress.Lang.Object foo( po as foo.bar.baz):`;
205
-
206
- let expectedTokens = [
207
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
208
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
209
- { "startIndex": 7, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'package-protected'
210
- { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
211
- { "startIndex": 25, "endIndex": 45, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'Progress.Lang.Object'
212
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
213
- { "startIndex": 46, "endIndex": 49, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
214
- { "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
215
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
216
- { "startIndex": 51, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
217
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
218
- { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
219
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
220
- { "startIndex": 57, "endIndex": 68, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
221
- { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
222
- { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
223
- ];
224
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
225
- })
226
-
227
- describe('', () => {
228
- let statement = `method protected Progress.Lang.Object foo( po as foo.bar.baz):`;
229
-
230
- let expectedTokens = [
231
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
232
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
233
- { "startIndex": 7, "endIndex": 16, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'protected'
234
- { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
235
- { "startIndex": 17, "endIndex": 37, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'Progress.Lang.Object'
236
- { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
237
- { "startIndex": 38, "endIndex": 41, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
238
- { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
239
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
240
- { "startIndex": 43, "endIndex": 45, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
241
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
242
- { "startIndex": 46, "endIndex": 48, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
243
- { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
244
- { "startIndex": 49, "endIndex": 60, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
245
- { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
246
- { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
247
- ];
248
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
249
- })
250
-
251
- describe('', () => {
252
- let statement = `method private static Progress.Lang.Object foo( po as foo.bar.baz):`;
253
-
254
- let expectedTokens = [
255
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
256
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
257
- { "startIndex": 7, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'private'
258
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
259
- { "startIndex": 15, "endIndex": 21, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'static'
260
- { "startIndex": 21, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
261
- { "startIndex": 23, "endIndex": 43, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'Progress.Lang.Object'
262
- { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
263
- { "startIndex": 44, "endIndex": 47, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
264
- { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
265
- { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
266
- { "startIndex": 49, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
267
- { "startIndex": 51, "endIndex": 52, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
268
- { "startIndex": 52, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
269
- { "startIndex": 54, "endIndex": 55, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
270
- { "startIndex": 55, "endIndex": 66, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
271
- { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
272
- { "startIndex": 67, "endIndex": 68, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
273
- ];
274
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
275
- })
276
-
277
- describe('', () => {
278
- let statement = `method public void foo( pc as character, po as foo.bar.baz):`;
279
-
280
- let expectedTokens = [
281
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
282
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
283
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
284
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
285
- { "startIndex": 14, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
286
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
287
- { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
288
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
289
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
290
- { "startIndex": 24, "endIndex": 26, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
291
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
292
- { "startIndex": 27, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
293
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
294
- { "startIndex": 30, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
295
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] }, // ','
296
- { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
297
- { "startIndex": 41, "endIndex": 43, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
298
- { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
299
- { "startIndex": 44, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
300
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
301
- { "startIndex": 47, "endIndex": 58, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
302
- { "startIndex": 58, "endIndex": 59, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
303
- { "startIndex": 59, "endIndex": 60, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
304
- ];
305
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
306
- })
307
-
308
- describe('', () => {
309
- let statement = `method abstract public datetime-tz foo( pc as character, po as foo.bar.baz).`;
310
-
311
- let expectedTokens = [
312
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
313
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
314
- { "startIndex": 7, "endIndex": 15, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'abstract'
315
- { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
316
- { "startIndex": 16, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
317
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
318
- { "startIndex": 23, "endIndex": 34, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'datetime-tz'
319
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
320
- { "startIndex": 35, "endIndex": 38, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
321
- { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
322
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
323
- { "startIndex": 40, "endIndex": 42, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
324
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
325
- { "startIndex": 43, "endIndex": 45, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
326
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
327
- { "startIndex": 46, "endIndex": 55, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
328
- { "startIndex": 55, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] }, // ','
329
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
330
- { "startIndex": 57, "endIndex": 59, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
331
- { "startIndex": 59, "endIndex": 60, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
332
- { "startIndex": 60, "endIndex": 62, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
333
- { "startIndex": 62, "endIndex": 63, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
334
- { "startIndex": 63, "endIndex": 74, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
335
- { "startIndex": 74, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
336
- { "startIndex": 75, "endIndex": 76, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
337
- ];
338
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
339
- })
340
-
341
- describe('', () => {
342
- let statement = `method public void foo( pc as character,
343
- po as foo.bar.baz):`;
344
-
345
- let expectedTokens = [
346
- [
347
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
348
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
349
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
350
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
351
- { "startIndex": 14, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
352
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
353
- { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
354
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
355
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
356
- { "startIndex": 24, "endIndex": 26, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
357
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
358
- { "startIndex": 27, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
359
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
360
- { "startIndex": 30, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
361
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
362
- ],
363
- [
364
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
365
- { "startIndex": 44, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
366
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
367
- { "startIndex": 47, "endIndex": 49, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
368
- { "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
369
- { "startIndex": 50, "endIndex": 61, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
370
- { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
371
- { "startIndex": 62, "endIndex": 63, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
372
- ]
373
- ];
374
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
375
- })
376
-
377
-
378
- describe('', () => {
379
- let statement = `METHOD PUBLIC VOID foo( pc as character,
380
- po as class foo.bar.baz):`;
381
-
382
- let expectedTokens = [
383
- [
384
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'METHOD'
385
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
386
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'PUBLIC'
387
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
388
- { "startIndex": 14, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'VOID'
389
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
390
- { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
391
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
392
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
393
- { "startIndex": 24, "endIndex": 26, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
394
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
395
- { "startIndex": 27, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
396
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
397
- { "startIndex": 30, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
398
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
399
- ],
400
- [
401
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
402
- { "startIndex": 44, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
403
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
404
- { "startIndex": 47, "endIndex": 49, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
405
- { "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
406
- { "startIndex": 50, "endIndex": 55, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'class'
407
- { "startIndex": 55, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
408
- { "startIndex": 56, "endIndex": 67, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
409
- { "startIndex": 67, "endIndex": 68, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
410
- { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
411
- ]
412
- ];
413
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
414
- })
415
-
416
- describe('', () => {
417
- let statement = `METHOD PUBLIC 'System.Byte[]' foo( pc as character,
418
- po as "System.Byte[]"):`;
419
-
420
-
421
- let expectedTokens = [
422
- [
423
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'METHOD'
424
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
425
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'PUBLIC'
426
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
427
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.method.abl", "string.quoted.single.abl", "punctuation.definition.string.begin.abl"] }, // '''
428
- { "startIndex": 15, "endIndex": 28, "scopes": ["source.abl", "meta.define.method.abl", "string.quoted.single.abl"] }, // 'System.Byte[]'
429
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl", "string.quoted.single.abl", "punctuation.definition.string.end.abl"] }, // '''
430
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
431
- { "startIndex": 30, "endIndex": 33, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
432
- { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
433
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
434
- { "startIndex": 35, "endIndex": 37, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
435
- { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
436
- { "startIndex": 38, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
437
- { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
438
- { "startIndex": 41, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
439
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
440
- ],
441
- [
442
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
443
- { "startIndex": 44, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
444
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
445
- { "startIndex": 47, "endIndex": 49, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
446
- { "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
447
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
448
- { "startIndex": 51, "endIndex": 64, "scopes": ["source.abl", "meta.define.method.abl", "string.quoted.double.abl"] }, // 'System.Byte[]'
449
- { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.define.method.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
450
- { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
451
- { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
452
- ]
453
- ];
454
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
455
- })
456
-
457
- describe('', () => {
458
- let statement = `method public void foo( pc as character,
459
- po as baz):`;
460
-
461
- let expectedTokens = [
462
- [
463
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
464
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
465
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
466
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
467
- { "startIndex": 14, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
468
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
469
- { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
470
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
471
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
472
- { "startIndex": 24, "endIndex": 26, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
473
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
474
- { "startIndex": 27, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
475
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
476
- { "startIndex": 30, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
477
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
478
- ],
479
- [
480
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
481
- { "startIndex": 44, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
482
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
483
- { "startIndex": 47, "endIndex": 49, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
484
- { "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
485
- { "startIndex": 50, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'baz'
486
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
487
- { "startIndex": 54, "endIndex": 55, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
488
- ]
489
- ];
490
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
491
- })
492
-
493
- describe('', () => {
494
- let statement = `method public void foo( pc as character,
495
- po as baz)
496
- /* comment */
497
- :
498
- var int i.
499
- end method. `;
500
-
501
- let expectedTokens = [
502
- [
503
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
504
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
505
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
506
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
507
- { "startIndex": 14, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
508
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
509
- { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
510
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
511
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
512
- { "startIndex": 24, "endIndex": 26, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
513
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
514
- { "startIndex": 27, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
515
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
516
- { "startIndex": 30, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
517
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
518
- ],
519
- [
520
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
521
- { "startIndex": 44, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
522
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
523
- { "startIndex": 47, "endIndex": 49, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
524
- { "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
525
- { "startIndex": 50, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'baz'
526
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] } // ')'
527
- ],
528
- [
529
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
530
- { "startIndex": 44, "endIndex": 46, "scopes": ["source.abl", "meta.define.method.abl", "comment.block.source.abl"] }, // '/*'
531
- { "startIndex": 46, "endIndex": 55, "scopes": ["source.abl", "meta.define.method.abl", "comment.block.source.abl", "comment"] }, // ' comment '
532
- { "startIndex": 55, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl", "comment.block.source.abl"] } // '*/'
533
- ],
534
- [
535
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
536
- { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
537
- ],
538
- [
539
- { "startIndex": 0, "endIndex": 24, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
540
- { "startIndex": 24, "endIndex": 27, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'var'
541
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
542
- { "startIndex": 28, "endIndex": 31, "scopes": ["source.abl", "meta.define.abl", "storage.type.abl"] }, // 'int'
543
- { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
544
- { "startIndex": 32, "endIndex": 33, "scopes": ["source.abl", "meta.define.abl", "variable.other.abl"] }, // 'i'
545
- { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
546
- ],
547
- [
548
- { "startIndex": 0, "endIndex": 20, "scopes": ["source.abl"] }, // ' '
549
- { "startIndex": 20, "endIndex": 23, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
550
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl"] }, // ' '
551
- { "startIndex": 24, "endIndex": 30, "scopes": ["source.abl", "keyword.other.abl"] }, // 'method'
552
- { "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "punctuation.terminator.abl"] }, // '.'
553
- { "startIndex": 31, "endIndex": 36, "scopes": ["source.abl"] } // ' '
554
- ]
555
- ];
556
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
557
- })
558
-
559
- describe('', () => {
560
- let statement = `method /*public*/ void foo (
561
- pc as character,
562
- po as baz
563
- )
564
- // comment
565
- :`;
566
-
567
- let expectedTokens = [
568
- [
569
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
570
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
571
- { "startIndex": 7, "endIndex": 9, "scopes": ["source.abl", "meta.define.method.abl", "comment.block.source.abl"] }, // '/*'
572
- { "startIndex": 9, "endIndex": 15, "scopes": ["source.abl", "meta.define.method.abl", "comment.block.source.abl", "comment"] }, // 'public'
573
- { "startIndex": 15, "endIndex": 17, "scopes": ["source.abl", "meta.define.method.abl", "comment.block.source.abl"] }, // '*/'
574
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
575
- { "startIndex": 18, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
576
- { "startIndex": 22, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
577
- { "startIndex": 24, "endIndex": 27, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
578
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
579
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] } // '('
580
- ],
581
- [
582
- { "startIndex": 0, "endIndex": 12, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
583
- { "startIndex": 12, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
584
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
585
- { "startIndex": 15, "endIndex": 17, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
586
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
587
- { "startIndex": 18, "endIndex": 27, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
588
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
589
- ],
590
- [
591
- { "startIndex": 0, "endIndex": 12, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
592
- { "startIndex": 12, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
593
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
594
- { "startIndex": 15, "endIndex": 17, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
595
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
596
- { "startIndex": 18, "endIndex": 21, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] } // 'baz'
597
- ],
598
- [
599
- { "startIndex": 0, "endIndex": 12, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
600
- { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] } // ')'
601
- ],
602
- [
603
- { "startIndex": 0, "endIndex": 12, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
604
- { "startIndex": 12, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "comment.line.double-slash.abl"] } // '// comment '
605
- ],
606
- [
607
- { "startIndex": 0, "endIndex": 12, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
608
- { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
609
- ]
610
- ];
611
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
612
- })
613
-
614
- describe('', () => {
615
- let statement = `method public void foo(input pc as character,
616
- output po as foo.bar.baz,
617
- buffer pb for Table,
618
- input-output dataset-handle hh):`;
619
-
620
- let expectedTokens = [
621
- [
622
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
623
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
624
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
625
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
626
- { "startIndex": 14, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
627
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
628
- { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
629
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
630
- { "startIndex": 23, "endIndex": 28, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'input'
631
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
632
- { "startIndex": 29, "endIndex": 31, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
633
- { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
634
- { "startIndex": 32, "endIndex": 34, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
635
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
636
- { "startIndex": 35, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
637
- { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
638
- ],
639
- [
640
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
641
- { "startIndex": 44, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'output'
642
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
643
- { "startIndex": 51, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
644
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
645
- { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
646
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
647
- { "startIndex": 57, "endIndex": 68, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
648
- { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
649
- ],
650
- [
651
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
652
- { "startIndex": 44, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'buffer'
653
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
654
- { "startIndex": 51, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.table.abl"] }, // 'pb'
655
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
656
- { "startIndex": 54, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'for'
657
- { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
658
- { "startIndex": 58, "endIndex": 63, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.table.abl"] }, // 'Table'
659
- { "startIndex": 63, "endIndex": 64, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
660
- ],
661
- [
662
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
663
- { "startIndex": 44, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'input-output'
664
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
665
- { "startIndex": 57, "endIndex": 71, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'dataset-handle'
666
- { "startIndex": 71, "endIndex": 72, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
667
- { "startIndex": 72, "endIndex": 74, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'hh'
668
- { "startIndex": 74, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
669
- { "startIndex": 75, "endIndex": 76, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
670
- ]
671
- ];
672
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
673
- })
674
-
675
- describe('', () => {
676
- let statement = `method public void foo(input pc as character,
677
- output po as foo.bar.baz,
678
- buffer pb for Table preselect,
679
- input-output dataset-handle hh):`;
680
-
681
- let expectedTokens = [
682
- [
683
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
684
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
685
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
686
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
687
- { "startIndex": 14, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
688
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
689
- { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
690
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
691
- { "startIndex": 23, "endIndex": 28, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'input'
692
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
693
- { "startIndex": 29, "endIndex": 31, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
694
- { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
695
- { "startIndex": 32, "endIndex": 34, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
696
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
697
- { "startIndex": 35, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
698
- { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
699
- ],
700
- [
701
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
702
- { "startIndex": 44, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'output'
703
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
704
- { "startIndex": 51, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
705
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
706
- { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
707
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
708
- { "startIndex": 57, "endIndex": 68, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
709
- { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
710
- ],
711
- [
712
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
713
- { "startIndex": 44, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'buffer'
714
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
715
- { "startIndex": 51, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.table.abl"] }, // 'pb'
716
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
717
- { "startIndex": 54, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'for'
718
- { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
719
- { "startIndex": 58, "endIndex": 63, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.table.abl"] }, // 'Table'
720
- { "startIndex": 63, "endIndex": 66, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
721
- { "startIndex": 66, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'preselect'
722
- { "startIndex": 75, "endIndex": 76, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
723
- ],
724
- [
725
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
726
- { "startIndex": 44, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'input-output'
727
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
728
- { "startIndex": 57, "endIndex": 71, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'dataset-handle'
729
- { "startIndex": 71, "endIndex": 72, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
730
- { "startIndex": 72, "endIndex": 74, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'hh'
731
- { "startIndex": 74, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
732
- { "startIndex": 75, "endIndex": 76, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
733
- ]
734
- ];
735
-
736
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
737
- })
738
-
739
- describe('', () => {
740
- let statement = `method public void foo(input pc as character extent 99,
741
- output po as foo.bar.baz extent,
742
- buffer pb for Table,
743
- input-output dataset-handle hh):`;
744
-
745
- let expectedTokens = [
746
- [
747
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
748
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
749
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
750
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
751
- { "startIndex": 14, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
752
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
753
- { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
754
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
755
- { "startIndex": 23, "endIndex": 28, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'input'
756
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
757
- { "startIndex": 29, "endIndex": 31, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pc'
758
- { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
759
- { "startIndex": 32, "endIndex": 34, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
760
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
761
- { "startIndex": 35, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
762
- { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
763
- { "startIndex": 45, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'extent'
764
- { "startIndex": 51, "endIndex": 52, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
765
- { "startIndex": 52, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl", "constant.numeric.source.abl"] }, // '99'
766
- { "startIndex": 54, "endIndex": 55, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
767
- ],
768
- [
769
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
770
- { "startIndex": 44, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'output'
771
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
772
- { "startIndex": 51, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
773
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
774
- { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
775
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
776
- { "startIndex": 57, "endIndex": 68, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
777
- { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
778
- { "startIndex": 69, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'extent'
779
- { "startIndex": 75, "endIndex": 76, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
780
- ],
781
- [
782
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
783
- { "startIndex": 44, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'buffer'
784
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
785
- { "startIndex": 51, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.table.abl"] }, // 'pb'
786
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
787
- { "startIndex": 54, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'for'
788
- { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
789
- { "startIndex": 58, "endIndex": 63, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.table.abl"] }, // 'Table'
790
- { "startIndex": 63, "endIndex": 64, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
791
- ],
792
- [
793
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
794
- { "startIndex": 44, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'input-output'
795
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
796
- { "startIndex": 57, "endIndex": 71, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'dataset-handle'
797
- { "startIndex": 71, "endIndex": 72, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
798
- { "startIndex": 72, "endIndex": 74, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'hh'
799
- { "startIndex": 74, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
800
- { "startIndex": 75, "endIndex": 76, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
801
- ]
802
- ];
803
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
804
- })
805
-
806
- describe('', () => {
807
- let statement = `method public void foo(table ttItem,
808
- input-output dataset dsCustomer):`;
809
-
810
- let expectedTokens = [
811
- [
812
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
813
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
814
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
815
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
816
- { "startIndex": 14, "endIndex": 18, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
817
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
818
- { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'foo'
819
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
820
- { "startIndex": 23, "endIndex": 28, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'table'
821
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
822
- { "startIndex": 29, "endIndex": 35, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.table.abl"] }, // 'ttItem'
823
- { "startIndex": 35, "endIndex": 36, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
824
- ],
825
- [
826
- { "startIndex": 0, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
827
- { "startIndex": 44, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'input-output'
828
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
829
- { "startIndex": 57, "endIndex": 64, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'dataset'
830
- { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
831
- { "startIndex": 65, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.dataset.abl"] }, // 'dsCustomer'
832
- { "startIndex": 75, "endIndex": 76, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
833
- { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
834
- ]
835
- ];
836
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
837
- })
838
-
839
- describe('', () => {
840
- let statement = `method private void ExtractEntity(input poResponse as IHttpResponse,
841
- input poMessageBody as ByteBucket):
842
- end method.`;
843
-
844
- let expectedTokens = [
845
- [
846
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
847
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
848
- { "startIndex": 7, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'private'
849
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
850
- { "startIndex": 15, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'void'
851
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
852
- { "startIndex": 20, "endIndex": 33, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'ExtractEntity'
853
- { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
854
- { "startIndex": 34, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'input'
855
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
856
- { "startIndex": 40, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'poResponse'
857
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
858
- { "startIndex": 51, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
859
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
860
- { "startIndex": 54, "endIndex": 67, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'IHttpResponse'
861
- { "startIndex": 67, "endIndex": 68, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
862
- ],
863
- [
864
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
865
- { "startIndex": 4, "endIndex": 9, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'input'
866
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
867
- { "startIndex": 10, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'poMessageBody'
868
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
869
- { "startIndex": 24, "endIndex": 26, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
870
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
871
- { "startIndex": 27, "endIndex": 37, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'ByteBucket'
872
- { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
873
- { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
874
- ],
875
- [
876
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
877
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
878
- { "startIndex": 4, "endIndex": 10, "scopes": ["source.abl", "keyword.other.abl"] }, // 'method'
879
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
880
- ]
881
- ];
882
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
883
- })
884
-
885
- describe('', () => {
886
- let statement = `method public Tuple<foo, Map<bar,baz>> Get_Tuple( po as Tuple<foo, Map<bar,baz>>):`;
887
-
888
- let expectedTokens = [
889
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
890
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
891
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
892
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
893
- { "startIndex": 14, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'Tuple'
894
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.definition.generic.begin.abl"] }, // '<'
895
- { "startIndex": 20, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'foo'
896
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.separator.comma.abl"] }, // ','
897
- { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl"] }, // ' '
898
- { "startIndex": 25, "endIndex": 28, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'Map'
899
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "punctuation.definition.generic.begin.abl"] }, // '<'
900
- { "startIndex": 29, "endIndex": 32, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'bar'
901
- { "startIndex": 32, "endIndex": 33, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "punctuation.separator.comma.abl"] }, // ','
902
- { "startIndex": 33, "endIndex": 36, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'baz'
903
- { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "punctuation.definition.generic.end.abl"] }, // '>'
904
- { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.definition.generic.end.abl"] }, // '>'
905
- { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
906
- { "startIndex": 39, "endIndex": 48, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'Get_Tuple'
907
- { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
908
- { "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
909
- { "startIndex": 50, "endIndex": 52, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'po'
910
- { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
911
- { "startIndex": 53, "endIndex": 55, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
912
- { "startIndex": 55, "endIndex": 56, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
913
- { "startIndex": 56, "endIndex": 61, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'Tuple'
914
- { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.definition.generic.begin.abl"] }, // '<'
915
- { "startIndex": 62, "endIndex": 65, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'foo'
916
- { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.separator.comma.abl"] }, // ','
917
- { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl"] }, // ' '
918
- { "startIndex": 67, "endIndex": 70, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'Map'
919
- { "startIndex": 70, "endIndex": 71, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "punctuation.definition.generic.begin.abl"] }, // '<'
920
- { "startIndex": 71, "endIndex": 74, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'bar'
921
- { "startIndex": 74, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "punctuation.separator.comma.abl"] }, // ','
922
- { "startIndex": 75, "endIndex": 78, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "entity.name.type.abl"] }, // 'baz'
923
- { "startIndex": 78, "endIndex": 79, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "meta.generic.abl", "punctuation.definition.generic.end.abl"] }, // '>'
924
- { "startIndex": 79, "endIndex": 80, "scopes": ["source.abl", "meta.define.method.abl", "meta.generic.abl", "punctuation.definition.generic.end.abl"] }, // '>'
925
- { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
926
- { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
927
- ];
928
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
929
- })
930
-
931
- describe('', () => {
932
- let statement = `method public character GetStaticQueryNames (pcTempTableName as character,
933
- pcIndexName as character,
934
- output poParameterType as ClassName ):`;
935
-
936
- let expectedTokens = [
937
- [
938
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'method'
939
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
940
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'public'
941
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
942
- { "startIndex": 14, "endIndex": 23, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
943
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
944
- { "startIndex": 24, "endIndex": 43, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.function.abl"] }, // 'GetStaticQueryNames'
945
- { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
946
- { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // '('
947
- { "startIndex": 45, "endIndex": 60, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pcTempTableName'
948
- { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
949
- { "startIndex": 61, "endIndex": 63, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
950
- { "startIndex": 63, "endIndex": 64, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
951
- { "startIndex": 64, "endIndex": 73, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
952
- { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
953
- ],
954
- [
955
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
956
- { "startIndex": 5, "endIndex": 16, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'pcIndexName'
957
- { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
958
- { "startIndex": 17, "endIndex": 19, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
959
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
960
- { "startIndex": 20, "endIndex": 29, "scopes": ["source.abl", "meta.define.method.abl", "storage.type.abl"] }, // 'character'
961
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.method.abl", "punctuation.separator.comma.abl"] } // ','
962
- ],
963
- [
964
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
965
- { "startIndex": 5, "endIndex": 11, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'output'
966
- { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
967
- { "startIndex": 12, "endIndex": 27, "scopes": ["source.abl", "meta.define.method.abl", "variable.parameter.abl"] }, // 'poParameterType'
968
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
969
- { "startIndex": 28, "endIndex": 30, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'as'
970
- { "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
971
- { "startIndex": 31, "endIndex": 40, "scopes": ["source.abl", "meta.define.method.abl", "entity.name.type.abl"] }, // 'ClassName'
972
- { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
973
- { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
974
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
975
- ]
976
- ];
977
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
978
- })