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,880 +0,0 @@
1
- const { assert, expect } = require('chai');
2
- const shared = require('../shared.js');
3
-
4
- describe('', () => {
5
- let statement = `GET-CLASS(foo.bar.baz) `;
6
-
7
- let expectedTokens = [
8
- { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'GET-CLASS'
9
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // '('
10
- { "startIndex": 10, "endIndex": 21, "scopes": ["source.abl", "meta.function-call.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
11
- { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
12
- { "startIndex": 22, "endIndex": 24, "scopes": ["source.abl"] } // ' '
13
- ];
14
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
15
- })
16
-
17
- describe('', () => {
18
- let statement = `GET-CLASS ( foo.bar.baz ) `;
19
-
20
- let expectedTokens = [
21
- { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'GET-CLASS'
22
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
23
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // '('
24
- { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
25
- { "startIndex": 12, "endIndex": 23, "scopes": ["source.abl", "meta.function-call.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
26
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
27
- { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
28
- { "startIndex": 25, "endIndex": 27, "scopes": ["source.abl"] } // ' '
29
- ];
30
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
31
- })
32
-
33
- describe('', () => {
34
- let statement = `CLASS foo.bar.baz :`;
35
-
36
- let expectedTokens = [
37
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
38
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
39
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
40
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
41
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
42
- ];
43
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
44
- })
45
-
46
- describe('', () => {
47
- let statement = `CLASS foo.bar.baz ABSTRACT:`;
48
-
49
- let expectedTokens = [
50
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
51
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
52
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
53
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
54
- { "startIndex": 18, "endIndex": 26, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'ABSTRACT'
55
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
56
- ];
57
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
58
- })
59
-
60
- describe('', () => {
61
- let statement = `CLASS foo.bar.baz :`;
62
-
63
- let expectedTokens = [
64
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
65
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
66
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
67
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
68
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
69
- ];
70
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
71
- })
72
-
73
- describe('', () => {
74
- let statement = `ASSIGN x = NEW foo.bar.baz()`;
75
-
76
- let expectedTokens = [
77
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ASSIGN'
78
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
79
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "variable.other.abl"] }, // 'x'
80
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl"] }, // ' '
81
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
82
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl"] }, // ' '
83
- { "startIndex": 11, "endIndex": 14, "scopes": ["source.abl", "support.function.abl"] }, // 'NEW'
84
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl"] }, // ' '
85
- { "startIndex": 15, "endIndex": 26, "scopes": ["source.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
86
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
87
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.brace.round.js"] } // ')'
88
- ];
89
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
90
- })
91
-
92
- describe('', () => {
93
- let statement = `ASSIGN x = NEW foo.bar.baz(true, ?)`;
94
-
95
- let expectedTokens = [
96
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ASSIGN'
97
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
98
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "variable.other.abl"] }, // 'x'
99
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl"] }, // ' '
100
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
101
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl"] }, // ' '
102
- { "startIndex": 11, "endIndex": 14, "scopes": ["source.abl", "support.function.abl"] }, // 'NEW'
103
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl"] }, // ' '
104
- { "startIndex": 15, "endIndex": 26, "scopes": ["source.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
105
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
106
- { "startIndex": 27, "endIndex": 31, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.language.abl"] }, // 'true'
107
- { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] }, // ','
108
- { "startIndex": 32, "endIndex": 33, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
109
- { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.language.abl"] }, // '?'
110
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.brace.round.js"] } // ')'
111
- ];
112
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
113
- })
114
-
115
- describe('', () => {
116
- let statement = `ASSIGN x = NEW "foo.bar.baz" (true, ?)`;
117
-
118
- let expectedTokens = [
119
- { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ASSIGN'
120
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
121
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "variable.other.abl"] }, // 'x'
122
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl"] }, // ' '
123
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
124
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl"] }, // ' '
125
- { "startIndex": 11, "endIndex": 14, "scopes": ["source.abl", "support.function.abl"] }, // 'NEW'
126
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl"] }, // ' '
127
- { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
128
- { "startIndex": 16, "endIndex": 27, "scopes": ["source.abl", "string.quoted.double.abl"] }, // 'foo.bar.baz'
129
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
130
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl"] }, // ' '
131
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
132
- { "startIndex": 30, "endIndex": 34, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.language.abl"] }, // 'true'
133
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] }, // ','
134
- { "startIndex": 35, "endIndex": 36, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
135
- { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.language.abl"] }, // '?'
136
- { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "meta.brace.round.js"] } // ')'
137
- ];
138
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
139
- })
140
-
141
-
142
- describe('', () => {
143
- let statement = `ENUM package.type :`;
144
-
145
- let expectedTokens = [
146
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.enum.abl", "keyword.other.abl"] }, // 'ENUM'
147
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.define.enum.abl"] }, // ' '
148
- { "startIndex": 5, "endIndex": 17, "scopes": ["source.abl", "meta.define.enum.abl", "entity.name.type.abl"] }, // 'package.type'
149
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.enum.abl"] }, // ' '
150
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.enum.abl", "punctuation.terminator.abl"] } // ':'
151
- ];
152
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
153
- })
154
-
155
- describe('', () => {
156
- let statement = `ENUM package.type flags :`;
157
-
158
- let expectedTokens = [
159
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.enum.abl", "keyword.other.abl"] }, // 'ENUM'
160
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.define.enum.abl"] }, // ' '
161
- { "startIndex": 5, "endIndex": 17, "scopes": ["source.abl", "meta.define.enum.abl", "entity.name.type.abl"] }, // 'package.type'
162
- { "startIndex": 17, "endIndex": 20, "scopes": ["source.abl", "meta.define.enum.abl"] }, // ' '
163
- { "startIndex": 20, "endIndex": 25, "scopes": ["source.abl", "meta.define.enum.abl", "keyword.other.abl"] }, // 'flags'
164
- { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl", "meta.define.enum.abl"] }, // ' '
165
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.enum.abl", "punctuation.terminator.abl"] } // ':'
166
- ];
167
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
168
- })
169
-
170
- describe('', () => {
171
- let statement = `ENUM package.flagsenum flags:`;
172
-
173
- let expectedTokens = [
174
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.enum.abl", "keyword.other.abl"] }, // 'ENUM'
175
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.define.enum.abl"] }, // ' '
176
- { "startIndex": 5, "endIndex": 22, "scopes": ["source.abl", "meta.define.enum.abl", "entity.name.type.abl"] }, // 'package.flagsenum'
177
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.enum.abl"] }, // ' '
178
- { "startIndex": 23, "endIndex": 28, "scopes": ["source.abl", "meta.define.enum.abl", "keyword.other.abl"] }, // 'flags'
179
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.enum.abl", "punctuation.terminator.abl"] } // ':'
180
- ];
181
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
182
- })
183
-
184
- describe('', () => {
185
- let statement = `using foo.bar.baz.`;
186
-
187
- let expectedTokens = [
188
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.using.abl", "keyword.other.abl"] }, // 'using'
189
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.using.abl"] }, // ' '
190
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.using.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
191
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.using.abl", "punctuation.terminator.abl"] } // '.'
192
- ];
193
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
194
- })
195
-
196
- describe('', () => {
197
- let statement = `using foo.bar.baz from propath.`;
198
-
199
- let expectedTokens = [
200
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.using.abl", "keyword.other.abl"] }, // 'using'
201
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.using.abl"] }, // ' '
202
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.using.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
203
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.using.abl"] }, // ' '
204
- { "startIndex": 18, "endIndex": 22, "scopes": ["source.abl", "meta.using.abl", "keyword.other.abl"] }, // 'from'
205
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.using.abl"] }, // ' '
206
- { "startIndex": 23, "endIndex": 30, "scopes": ["source.abl", "meta.using.abl", "keyword.other.abl"] }, // 'propath'
207
- { "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "meta.using.abl", "punctuation.terminator.abl"] } // '.'
208
- ];
209
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
210
- })
211
-
212
- describe('', () => {
213
- let statement = `using foo.bar.* from propath.`;
214
-
215
- let expectedTokens = [
216
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.using.abl", "keyword.other.abl"] }, // 'using'
217
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.using.abl"] }, // ' '
218
- { "startIndex": 6, "endIndex": 13, "scopes": ["source.abl", "meta.using.abl", "entity.name.package.abl"] }, // 'foo.bar'
219
- { "startIndex": 13, "endIndex": 16, "scopes": ["source.abl", "meta.using.abl"] }, // '.* '
220
- { "startIndex": 16, "endIndex": 20, "scopes": ["source.abl", "meta.using.abl", "keyword.other.abl"] }, // 'from'
221
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.using.abl"] }, // ' '
222
- { "startIndex": 21, "endIndex": 28, "scopes": ["source.abl", "meta.using.abl", "keyword.other.abl"] }, // 'propath'
223
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.using.abl", "punctuation.terminator.abl"] } // '.'
224
- ];
225
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
226
- })
227
-
228
- describe('', () => {
229
- let statement = `using foo.bar.* .`;
230
-
231
- let expectedTokens = [
232
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.using.abl", "keyword.other.abl"] }, // 'using'
233
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.using.abl"] }, // ' '
234
- { "startIndex": 6, "endIndex": 13, "scopes": ["source.abl", "meta.using.abl", "entity.name.package.abl"] }, // 'foo.bar'
235
- { "startIndex": 13, "endIndex": 16, "scopes": ["source.abl", "meta.using.abl"] }, // '.* '
236
- { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl", "meta.using.abl", "punctuation.terminator.abl"] } // '.'
237
- ];
238
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
239
- })
240
-
241
- describe('', () => {
242
- let statement = `interface foo.IBar:`;
243
-
244
- let expectedTokens = [
245
- { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'interface'
246
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
247
- { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'foo.IBar'
248
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.terminator.abl"] } // ':'
249
- ];
250
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
251
- })
252
-
253
- describe('', () => {
254
- let statement = `interface foo.IBar inherits bar.IFoo:`;
255
-
256
- let expectedTokens = [
257
- { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'interface'
258
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
259
- { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'foo.IBar'
260
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
261
- { "startIndex": 19, "endIndex": 27, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'inherits'
262
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
263
- { "startIndex": 28, "endIndex": 36, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'bar.IFoo'
264
- { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.terminator.abl"] } // ':'
265
- ];
266
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
267
- })
268
-
269
- describe('', () => {
270
- let statement = `interface foo.IBar inherits bar.IFoo,baz,IBaz:`;
271
-
272
- let expectedTokens = [
273
- { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'interface'
274
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
275
- { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'foo.IBar'
276
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
277
- { "startIndex": 19, "endIndex": 27, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'inherits'
278
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
279
- { "startIndex": 28, "endIndex": 36, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'bar.IFoo'
280
- { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] }, // ','
281
- { "startIndex": 37, "endIndex": 40, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'baz'
282
- { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] }, // ','
283
- { "startIndex": 41, "endIndex": 45, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'IBaz'
284
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.terminator.abl"] } // ':'
285
- ];
286
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
287
- })
288
-
289
- describe('', () => {
290
- let statement = `INTERFACE foo.IBar INHERITS bar.IFoo,baz,IBaz:`;
291
-
292
- let expectedTokens = [
293
- { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'INTERFACE'
294
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
295
- { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'foo.IBar'
296
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
297
- { "startIndex": 19, "endIndex": 27, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'INHERITS'
298
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
299
- { "startIndex": 28, "endIndex": 36, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'bar.IFoo'
300
- { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] }, // ','
301
- { "startIndex": 37, "endIndex": 40, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'baz'
302
- { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] }, // ','
303
- { "startIndex": 41, "endIndex": 45, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'IBaz'
304
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.terminator.abl"] } // ':'
305
- ];
306
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
307
- })
308
-
309
- describe('', () => {
310
- let statement = `interface foo.IBar
311
- inherits bar.IFoo,
312
- baz,
313
- IBaz`;
314
-
315
- let expectedTokens = [
316
- [
317
- { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'interface'
318
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
319
- { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] } // 'foo.IBar'
320
- ],
321
- [
322
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
323
- { "startIndex": 4, "endIndex": 12, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'inherits'
324
- { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
325
- { "startIndex": 13, "endIndex": 21, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'bar.IFoo'
326
- { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] } // ','
327
- ],
328
- [
329
- { "startIndex": 0, "endIndex": 13, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
330
- { "startIndex": 13, "endIndex": 16, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'baz'
331
- { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] } // ','
332
- ],
333
- [
334
- { "startIndex": 0, "endIndex": 13, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
335
- { "startIndex": 13, "endIndex": 17, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] } // 'IBaz'
336
- ]
337
- ];
338
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
339
- })
340
-
341
-
342
- describe('', () => {
343
- let statement = `interface foo.IBar
344
- inherits bar.IFoo,
345
- baz,another.ISpa,thing
346
- IBaz,
347
- IYes, Inow
348
- :`
349
-
350
- let expectedTokens = [
351
- [
352
- { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'interface'
353
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
354
- { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] } // 'foo.IBar'
355
- ],
356
- [
357
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
358
- { "startIndex": 4, "endIndex": 12, "scopes": ["source.abl", "meta.define.interface.abl", "keyword.other.abl"] }, // 'inherits'
359
- { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
360
- { "startIndex": 13, "endIndex": 21, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'bar.IFoo'
361
- { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] } // ','
362
- ],
363
- [
364
- { "startIndex": 0, "endIndex": 13, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
365
- { "startIndex": 13, "endIndex": 16, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'baz'
366
- { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] }, // ','
367
- { "startIndex": 17, "endIndex": 29, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'another.ISpa'
368
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] }, // ','
369
- { "startIndex": 30, "endIndex": 35, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] } // 'thing'
370
- ],
371
- [
372
- { "startIndex": 0, "endIndex": 13, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
373
- { "startIndex": 13, "endIndex": 17, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'IBaz'
374
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] } // ','
375
- ],
376
- [
377
- { "startIndex": 0, "endIndex": 13, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
378
- { "startIndex": 13, "endIndex": 17, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] }, // 'IYes'
379
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.separator.comma.abl"] }, // ','
380
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
381
- { "startIndex": 19, "endIndex": 23, "scopes": ["source.abl", "meta.define.interface.abl", "entity.name.type.abl"] } // 'Inow'
382
- ],
383
- [
384
- { "startIndex": 0, "endIndex": 13, "scopes": ["source.abl", "meta.define.interface.abl"] }, // ' '
385
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.interface.abl", "punctuation.terminator.abl"] } // ':'
386
- ]
387
- ];
388
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
389
- })
390
-
391
- describe('', () => {
392
- let statement = `CLASS foo.bar.baz ABSTRACT
393
-
394
- inherits parent.class
395
- implements one.interface,
396
- another.iface
397
-
398
- :`;
399
-
400
- let expectedTokens = [
401
- [
402
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
403
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
404
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
405
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
406
- { "startIndex": 18, "endIndex": 26, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] } // 'ABSTRACT'
407
- ],
408
- [
409
- { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.define.class.abl"] } // ''
410
- ],
411
- [
412
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
413
- { "startIndex": 4, "endIndex": 12, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'inherits'
414
- { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
415
- { "startIndex": 13, "endIndex": 25, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'parent.class'
416
- ],
417
- [
418
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
419
- { "startIndex": 4, "endIndex": 14, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'implements'
420
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
421
- { "startIndex": 15, "endIndex": 28, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'one.interface'
422
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.separator.comma.abl"] } // ','
423
- ],
424
- [
425
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
426
- { "startIndex": 4, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'another.iface'
427
- ],
428
- [
429
- { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.define.class.abl"] } // ''
430
- ],
431
- [
432
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
433
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
434
- ]
435
- ];
436
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
437
- })
438
-
439
- describe('', () => {
440
- let statement = `CLASS foo.bar.baz inherits parent.class
441
- implements one.interface,
442
- another.iface
443
- abstract
444
- use-widget-pool:`;
445
-
446
- let expectedTokens = [
447
- [
448
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
449
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
450
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
451
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
452
- { "startIndex": 18, "endIndex": 26, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'inherits'
453
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
454
- { "startIndex": 27, "endIndex": 39, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'parent.class'
455
- ],
456
- [
457
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
458
- { "startIndex": 4, "endIndex": 14, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'implements'
459
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
460
- { "startIndex": 15, "endIndex": 28, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'one.interface'
461
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.separator.comma.abl"] } // ','
462
- ],
463
- [
464
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
465
- { "startIndex": 4, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'another.iface'
466
- ],
467
- [
468
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
469
- { "startIndex": 4, "endIndex": 12, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] } // 'abstract'
470
- ],
471
- [
472
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
473
- { "startIndex": 4, "endIndex": 19, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'use-widget-pool'
474
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
475
- ]
476
- ];
477
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
478
- })
479
-
480
- describe('', () => {
481
- let statement = `CLASS foo.bar.baz serializable inherits parent.class implements one.interface,another.iface abstract use-widget-pool:`;
482
-
483
- let expectedTokens = [
484
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
485
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
486
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
487
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
488
- { "startIndex": 18, "endIndex": 30, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'serializable'
489
- { "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
490
- { "startIndex": 31, "endIndex": 39, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'inherits'
491
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
492
- { "startIndex": 40, "endIndex": 52, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'parent.class'
493
- { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
494
- { "startIndex": 53, "endIndex": 63, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'implements'
495
- { "startIndex": 63, "endIndex": 64, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
496
- { "startIndex": 64, "endIndex": 77, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'one.interface'
497
- { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.separator.comma.abl"] }, // ','
498
- { "startIndex": 78, "endIndex": 91, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'another.iface'
499
- { "startIndex": 91, "endIndex": 92, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
500
- { "startIndex": 92, "endIndex": 100, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'abstract'
501
- { "startIndex": 100, "endIndex": 101, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
502
- { "startIndex": 101, "endIndex": 116, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'use-widget-pool'
503
- { "startIndex": 116, "endIndex": 117, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
504
- ];
505
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
506
- })
507
-
508
- describe('', () => {
509
- let statement = `CLASS foo.bar.baz inherits parent.class
510
- implements one.interface,
511
- another.iface
512
- abstract
513
- use-widget-pool serializable
514
- :`;
515
-
516
- let expectedTokens = [
517
- [
518
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
519
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
520
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
521
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
522
- { "startIndex": 18, "endIndex": 26, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'inherits'
523
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
524
- { "startIndex": 27, "endIndex": 39, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'parent.class'
525
- ],
526
- [
527
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
528
- { "startIndex": 4, "endIndex": 14, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'implements'
529
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
530
- { "startIndex": 15, "endIndex": 28, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'one.interface'
531
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.separator.comma.abl"] } // ','
532
- ],
533
- [
534
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
535
- { "startIndex": 4, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'another.iface'
536
- ],
537
- [
538
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
539
- { "startIndex": 4, "endIndex": 12, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] } // 'abstract'
540
- ],
541
- [
542
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
543
- { "startIndex": 4, "endIndex": 19, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'use-widget-pool'
544
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
545
- { "startIndex": 20, "endIndex": 32, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] } // 'serializable'
546
- ],
547
- [
548
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
549
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
550
- ]
551
- ];
552
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
553
- })
554
-
555
- describe('', () => {
556
- let statement = `CLASS foo.bar.baz use-widget-pool:`;
557
-
558
- let expectedTokens = [
559
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
560
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
561
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
562
- { "startIndex": 17, "endIndex": 19, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
563
- { "startIndex": 19, "endIndex": 34, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'use-widget-pool'
564
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
565
- ];
566
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
567
- })
568
-
569
- describe('', () => {
570
- let statement = `CLASS foo.bar.baz
571
- use-widget-pool:`;
572
-
573
- let expectedTokens = [
574
- [
575
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
576
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
577
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'foo.bar.baz'
578
- ],
579
- [
580
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
581
- { "startIndex": 5, "endIndex": 20, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'use-widget-pool'
582
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
583
- ]];
584
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
585
- })
586
-
587
- describe('', () => {
588
- let statement = `CLASS foo.bar.baz inherits boo.scoo
589
- use-widget-pool:`;
590
-
591
- let expectedTokens = [
592
- [
593
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
594
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
595
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
596
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
597
- { "startIndex": 18, "endIndex": 26, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'inherits'
598
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
599
- { "startIndex": 27, "endIndex": 35, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'boo.scoo'
600
- ],
601
- [
602
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
603
- { "startIndex": 5, "endIndex": 20, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'use-widget-pool'
604
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
605
- ]
606
- ];
607
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
608
- })
609
-
610
- describe('', () => {
611
- let statement = `CLASS foo.bar.baz
612
- INheriTS boo.scoo
613
- use-widget-POOL
614
- :`;
615
-
616
- let expectedTokens = [
617
- [
618
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
619
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
620
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'foo.bar.baz'
621
- ],
622
- [
623
- { "startIndex": 0, "endIndex": 12, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
624
- { "startIndex": 12, "endIndex": 20, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'INheriTS'
625
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
626
- { "startIndex": 21, "endIndex": 29, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'boo.scoo'
627
- ],
628
- [
629
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
630
- { "startIndex": 5, "endIndex": 20, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] } // 'use-widget-POOL'
631
- ],
632
- [
633
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
634
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
635
- ]
636
- ];
637
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
638
- })
639
-
640
- describe('', () => {
641
- let statement = `CLASS foo.bar.baz
642
- INheriTS
643
- boo.scoo
644
-
645
- :`;
646
-
647
- let expectedTokens = [
648
- [
649
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
650
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
651
- { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'foo.bar.baz'
652
- ],
653
- [
654
- { "startIndex": 0, "endIndex": 8, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
655
- { "startIndex": 8, "endIndex": 16, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] } // 'INheriTS'
656
- ],
657
- [
658
- { "startIndex": 0, "endIndex": 12, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
659
- { "startIndex": 12, "endIndex": 20, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'boo.scoo'
660
- ],
661
- [
662
- { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.define.class.abl"] } // ''
663
- ],
664
- [
665
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
666
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
667
- ]
668
- ];
669
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
670
- })
671
-
672
-
673
- describe('', () => {
674
- let statement = `x = cast(y, foo.bar.baz) `;
675
-
676
- let expectedTokens = [
677
- { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "variable.other.abl"] }, // 'x'
678
- { "startIndex": 1, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
679
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
680
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
681
- { "startIndex": 4, "endIndex": 8, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'cast'
682
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // '('
683
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl", "variable.other.abl"] }, // 'y'
684
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl", "punctuation.separator.comma.abl"] }, // ','
685
- { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
686
- { "startIndex": 12, "endIndex": 23, "scopes": ["source.abl", "meta.function-call.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
687
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
688
- { "startIndex": 24, "endIndex": 26, "scopes": ["source.abl"] } // ' '
689
- ];
690
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
691
- })
692
-
693
- describe('', () => {
694
- let statement = `x = cast(y
695
- ,foo.bar.baz) `;
696
-
697
- let expectedTokens = [
698
- [
699
- { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "variable.other.abl"] }, // 'x'
700
- { "startIndex": 1, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
701
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
702
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
703
- { "startIndex": 4, "endIndex": 8, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'cast'
704
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // '('
705
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl", "variable.other.abl"] } // 'y'
706
- ],
707
- [
708
- { "startIndex": 0, "endIndex": 8, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
709
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl", "punctuation.separator.comma.abl"] }, // ','
710
- { "startIndex": 9, "endIndex": 20, "scopes": ["source.abl", "meta.function-call.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
711
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
712
- { "startIndex": 21, "endIndex": 23, "scopes": ["source.abl"] } // ' '
713
- ]];
714
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
715
- })
716
-
717
- describe('', () => {
718
- let statement = `x = cast(y,
719
- foo.bar.baz) `;
720
-
721
- let expectedTokens = [
722
- [
723
- { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "variable.other.abl"] }, // 'x'
724
- { "startIndex": 1, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
725
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
726
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
727
- { "startIndex": 4, "endIndex": 8, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'cast'
728
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // '('
729
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl", "variable.other.abl"] }, // 'y'
730
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl", "punctuation.separator.comma.abl"] } // ','
731
- ],
732
- [
733
- { "startIndex": 0, "endIndex": 30, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
734
- { "startIndex": 30, "endIndex": 41, "scopes": ["source.abl", "meta.function-call.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
735
- { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
736
- { "startIndex": 42, "endIndex": 44, "scopes": ["source.abl"] } // ' '
737
- ]
738
- ];
739
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
740
- })
741
-
742
-
743
- describe('', () => {
744
- let statement = `cast ( q, foo.bar.baz ) `;
745
-
746
- let expectedTokens = [
747
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'cast'
748
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
749
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // '('
750
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
751
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.function-call.abl", "variable.other.abl"] }, // 'q'
752
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl", "punctuation.separator.comma.abl"] }, // ','
753
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
754
- { "startIndex": 10, "endIndex": 21, "scopes": ["source.abl", "meta.function-call.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
755
- { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
756
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
757
- { "startIndex": 23, "endIndex": 25, "scopes": ["source.abl"] } // ' '
758
- ];
759
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
760
- })
761
-
762
- describe('', () => {
763
- let statement = `cast ( q, "foo.bar.baz" ) `;
764
-
765
- let expectedTokens = [
766
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'cast'
767
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
768
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // '('
769
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
770
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.function-call.abl", "variable.other.abl"] }, // 'q'
771
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl", "punctuation.separator.comma.abl"] }, // ','
772
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
773
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
774
- { "startIndex": 11, "endIndex": 22, "scopes": ["source.abl", "meta.function-call.abl", "string.quoted.double.abl"] }, // 'foo.bar.baz'
775
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.function-call.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
776
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
777
- { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
778
- { "startIndex": 25, "endIndex": 27, "scopes": ["source.abl"] } // ' '
779
- ];
780
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
781
- })
782
-
783
- describe('', () => {
784
- let statement = `SessionManager:ContestDataset:READ-XML("longchar":U,
785
- lcDataset,
786
- "EMPTY":U, ?, ?) . `;
787
-
788
- let expectedTokens = [
789
- [
790
- { "startIndex": 0, "endIndex": 14, "scopes": ["source.abl", "variable.other.abl"] }, // 'SessionManager'
791
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
792
- { "startIndex": 15, "endIndex": 29, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'ContestDataset'
793
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
794
- { "startIndex": 30, "endIndex": 38, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'READ-XML'
795
- { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
796
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
797
- { "startIndex": 40, "endIndex": 48, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl"] }, // 'longchar'
798
- { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
799
- { "startIndex": 49, "endIndex": 51, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "support.other.abl"] }, // ':U'
800
- { "startIndex": 51, "endIndex": 52, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
801
- ],
802
- [
803
- { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
804
- { "startIndex": 2, "endIndex": 11, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'lcDataset'
805
- { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
806
- ],
807
- [
808
- { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
809
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
810
- { "startIndex": 3, "endIndex": 8, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl"] }, // 'EMPTY'
811
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
812
- { "startIndex": 9, "endIndex": 11, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "support.other.abl"] }, // ':U'
813
- { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] }, // ','
814
- { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
815
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.language.abl"] }, // '?'
816
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] }, // ','
817
- { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
818
- { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.language.abl"] }, // '?'
819
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
820
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl"] }, // ' '
821
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "punctuation.terminator.abl"] }, // '.'
822
- { "startIndex": 20, "endIndex": 22, "scopes": ["source.abl"] } // ' '
823
- ]
824
- ];
825
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
826
- })
827
-
828
- describe('', () => {
829
- let statement = `if eBusinessEntity.GenerateBE AND CharacterType:IsNUllOrEmpty(eBusinessEntity.BEName) THEN
830
- undo, throw NEW ClassNameNotEntertedException("unable"{&TRAN}, 0, ClassNameNotEntertedEnum:BusinessEntity).`;
831
-
832
- let expectedTokens = [
833
- [
834
- { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "keyword.other.abl"] }, // 'if'
835
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
836
- { "startIndex": 3, "endIndex": 29, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'eBusinessEntity.GenerateBE'
837
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl"] }, // ' '
838
- { "startIndex": 30, "endIndex": 33, "scopes": ["source.abl", "keyword.other.abl"] }, // 'AND'
839
- { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl"] }, // ' '
840
- { "startIndex": 34, "endIndex": 47, "scopes": ["source.abl", "variable.other.abl"] }, // 'CharacterType'
841
- { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
842
- { "startIndex": 48, "endIndex": 61, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'IsNUllOrEmpty'
843
- { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.brace.round.js"] }, // '('
844
- { "startIndex": 62, "endIndex": 84, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'eBusinessEntity.BEName'
845
- { "startIndex": 84, "endIndex": 85, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
846
- { "startIndex": 85, "endIndex": 86, "scopes": ["source.abl"] }, // ' '
847
- { "startIndex": 86, "endIndex": 90, "scopes": ["source.abl", "keyword.other.abl"] } // 'THEN'
848
- ],
849
- [
850
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
851
- { "startIndex": 4, "endIndex": 8, "scopes": ["source.abl", "keyword.other.abl"] }, // 'undo'
852
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "punctuation.separator.comma.abl"] }, // ','
853
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl"] }, // ' '
854
- { "startIndex": 10, "endIndex": 15, "scopes": ["source.abl", "keyword.other.abl"] }, // 'throw'
855
- { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl"] }, // ' '
856
- { "startIndex": 16, "endIndex": 19, "scopes": ["source.abl", "support.function.abl"] }, // 'NEW'
857
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl"] }, // ' '
858
- { "startIndex": 20, "endIndex": 49, "scopes": ["source.abl", "entity.name.type.abl"] }, // 'ClassNameNotEntertedException'
859
- { "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "meta.brace.round.js"] }, // '('
860
- { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
861
- { "startIndex": 51, "endIndex": 57, "scopes": ["source.abl", "string.quoted.double.abl"] }, // 'unable'
862
- { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
863
- { "startIndex": 58, "endIndex": 59, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.section.abl"] }, // '{'
864
- { "startIndex": 59, "endIndex": 60, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.definition.preprocessor.abl"] }, // '&'
865
- { "startIndex": 60, "endIndex": 64, "scopes": ["source.abl", "meta.preprocessor.abl", "entity.name.function.preprocessor.abl"] }, // 'TRAN'
866
- { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.section.abl"] }, // '}'
867
- { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "punctuation.separator.comma.abl"] }, // ','
868
- { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl"] }, // ' '
869
- { "startIndex": 67, "endIndex": 68, "scopes": ["source.abl", "constant.numeric.source.abl"] }, // '0'
870
- { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "punctuation.separator.comma.abl"] }, // ','
871
- { "startIndex": 69, "endIndex": 71, "scopes": ["source.abl"] }, // ' '
872
- { "startIndex": 71, "endIndex": 95, "scopes": ["source.abl", "variable.other.abl"] }, // 'ClassNameNotEntertedEnum'
873
- { "startIndex": 95, "endIndex": 96, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
874
- { "startIndex": 96, "endIndex": 110, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'BusinessEntity'
875
- { "startIndex": 110, "endIndex": 111, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
876
- { "startIndex": 111, "endIndex": 112, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
877
- ]
878
- ];
879
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
880
- })