abl-tmlanguage 1.3.1 → 1.3.3

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.
@@ -19,3 +19,48 @@ describe('', () => {
19
19
  ];
20
20
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
21
21
  })
22
+
23
+ describe('', () => {
24
+ let statement = `define dataset dsAgentSession for ttAgent, ttAgentSession
25
+ data-relation AgentID for ttAgent, ttAgentSession relation-fields(agentID,agentID) nested.`;
26
+ let expectedTokens = [
27
+ [
28
+ { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'define'
29
+ { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
30
+ { "startIndex": 7, "endIndex": 14, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'dataset'
31
+ { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
32
+ { "startIndex": 15, "endIndex": 29, "scopes": ["source.abl", "meta.define.abl", "storage.data.dataset.abl"] }, // 'dsAgentSession'
33
+ { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
34
+ { "startIndex": 30, "endIndex": 33, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'for'
35
+ { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
36
+ { "startIndex": 34, "endIndex": 41, "scopes": ["source.abl", "meta.define.abl", "storage.data.table.abl"] }, // 'ttAgent'
37
+ { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "meta.define.abl", "punctuation.separator.comma.abl"] }, // ','
38
+ { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
39
+ { "startIndex": 43, "endIndex": 57, "scopes": ["source.abl", "meta.define.abl", "storage.data.table.abl"] } // 'ttAgentSession'
40
+ ],
41
+ [
42
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
43
+ { "startIndex": 4, "endIndex": 17, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'data-relation'
44
+ { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
45
+ { "startIndex": 18, "endIndex": 25, "scopes": ["source.abl", "meta.define.abl", "storage.data.dataset.abl"] }, // 'AgentID'
46
+ { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
47
+ { "startIndex": 26, "endIndex": 29, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'for'
48
+ { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
49
+ { "startIndex": 30, "endIndex": 37, "scopes": ["source.abl", "meta.define.abl", "storage.data.table.abl"] }, // 'ttAgent'
50
+ { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "meta.define.abl", "punctuation.separator.comma.abl"] }, // ','
51
+ { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
52
+ { "startIndex": 39, "endIndex": 53, "scopes": ["source.abl", "meta.define.abl", "storage.data.table.abl"] }, // 'ttAgentSession'
53
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
54
+ { "startIndex": 54, "endIndex": 69, "scopes": ["source.abl", "meta.define.abl", "support.function.abl"] }, // 'relation-fields'
55
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.define.abl", "meta.brace.round.js"] }, // '('
56
+ { "startIndex": 70, "endIndex": 77, "scopes": ["source.abl", "meta.define.abl", "storage.data.table.abl"] }, // 'agentID'
57
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.define.abl", "punctuation.separator.comma.abl"] }, // ','
58
+ { "startIndex": 78, "endIndex": 85, "scopes": ["source.abl", "meta.define.abl", "storage.data.table.abl"] }, // 'agentID'
59
+ { "startIndex": 85, "endIndex": 86, "scopes": ["source.abl", "meta.define.abl", "meta.brace.round.js"] }, // ')'
60
+ { "startIndex": 86, "endIndex": 87, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
61
+ { "startIndex": 87, "endIndex": 93, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'nested'
62
+ { "startIndex": 93, "endIndex": 94, "scopes": ["source.abl", "meta.define.abl", "punctuation.terminator.abl"] } // '.'
63
+ ]
64
+ ];
65
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
66
+ })
@@ -67,7 +67,7 @@ END.`;
67
67
  { "startIndex": 33, "endIndex": 37, "scopes": ["source.abl", "keyword.other.abl"] }, // 'then'
68
68
  { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
69
69
  { "startIndex": 38, "endIndex": 40, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'do'
70
- { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
70
+ { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl"] }, // ' '
71
71
  { "startIndex": 41, "endIndex": 43, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "keyword.other.abl"] }, // 'on'
72
72
  { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl"] }, // ' '
73
73
  { "startIndex": 44, "endIndex": 49, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "keyword.other.abl"] }, // 'error'
@@ -137,29 +137,32 @@ end.`;
137
137
  { "startIndex": 66, "endIndex": 88, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "entity.name.type.abl"] } // 'StopConditionException'
138
138
  ],
139
139
  [
140
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "meta.block.abl"] }, // ' ('
141
- { "startIndex": 3, "endIndex": 13, "scopes": ["source.abl", "meta.block.abl", "entity.name.function.abl"] }, // 'substitute'
142
- { "startIndex": 13, "endIndex": 15, "scopes": ["source.abl", "meta.block.abl"] }, // '( '
143
- { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "meta.block.abl", "string.double.complex.abl", "punctuation.definition.string.begin.abl"] }, // '"'
144
- { "startIndex": 16, "endIndex": 70, "scopes": ["source.abl", "meta.block.abl", "string.double.complex.abl"] }, // 'A stop condition raised while waiting for the backend.'
145
- { "startIndex": 70, "endIndex": 72, "scopes": ["source.abl", "meta.block.abl", "string.double.complex.abl", "constant.character.escape.abl"] }, // '~n'
146
- { "startIndex": 72, "endIndex": 80, "scopes": ["source.abl", "meta.block.abl", "string.double.complex.abl"] }, // 'Comp: &1'
147
- { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.block.abl", "string.double.complex.abl", "punctuation.definition.string.end.abl"] }, // '"'
148
- { "startIndex": 81, "endIndex": 88, "scopes": ["source.abl", "meta.block.abl", "storage.type.function.abl"] }, // '{&TRAN}'
149
- { "startIndex": 88, "endIndex": 89, "scopes": ["source.abl", "meta.block.abl", "punctuation.separator.comma.abl"] } // ','
140
+ { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl"] }, // ' '
141
+ { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
142
+ { "startIndex": 3, "endIndex": 13, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "support.function.abl"] }, // 'substitute'
143
+ { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
144
+ { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl"] }, // ' '
145
+ { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl", "string.double.complex.abl", "punctuation.definition.string.begin.abl"] }, // '"'
146
+ { "startIndex": 16, "endIndex": 70, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl", "string.double.complex.abl"] }, // 'A stop condition raised while waiting for the backend.'
147
+ { "startIndex": 70, "endIndex": 72, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl", "string.double.complex.abl", "constant.character.escape.abl"] }, // '~n'
148
+ { "startIndex": 72, "endIndex": 80, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl", "string.double.complex.abl"] }, // 'Comp: &1'
149
+ { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl", "string.double.complex.abl", "punctuation.definition.string.end.abl"] }, // '"'
150
+ { "startIndex": 81, "endIndex": 88, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl", "storage.type.function.abl"] }, // '{&TRAN}'
151
+ { "startIndex": 88, "endIndex": 89, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
150
152
  ],
151
153
  [
152
- { "startIndex": 0, "endIndex": 14, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
153
- { "startIndex": 14, "endIndex": 26, "scopes": ["source.abl", "meta.block.abl", "variable.other.abl"] }, // 'pcEntityName'
154
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.block.abl"] }, // ')'
155
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.block.abl", "punctuation.separator.comma.abl"] } // ','
154
+ { "startIndex": 0, "endIndex": 14, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl"] }, // ' '
155
+ { "startIndex": 14, "endIndex": 26, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'pcEntityName'
156
+ { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
157
+ { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
156
158
  ],
157
159
  [
158
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
159
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.block.abl", "constant.numeric.source.abl"] }, // '0'
160
- { "startIndex": 5, "endIndex": 7, "scopes": ["source.abl", "meta.block.abl"] }, // ') '
161
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.block.abl", "storage.type.function.abl"] }, // '&endif'
162
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
160
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl"] }, // ' '
161
+ { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.function.arguments.abl", "constant.numeric.source.abl"] }, // '0'
162
+ { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "meta.brace.round.js"] }, // ')'
163
+ { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl"] }, // ' '
164
+ { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl", "storage.type.function.abl"] }, // '&endif'
165
+ { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.block.abl", "meta.block.branch.abl"] }, // ' '
163
166
  { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
164
167
  ],
165
168
  [
@@ -169,7 +172,7 @@ end.`;
169
172
  { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
170
173
  { "startIndex": 3, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
171
174
  { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
172
- { "startIndex": 7, "endIndex": 12, "scopes": ["source.abl", "meta.other.procedure.abl"] }, // 'goo.p'
175
+ { "startIndex": 7, "endIndex": 12, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'goo.p'
173
176
  { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
174
177
  ],
175
178
  [
@@ -178,4 +181,72 @@ end.`;
178
181
  ]
179
182
  ];
180
183
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
184
+ })
185
+
186
+ describe('', () => {
187
+ let statement = `do vI = 1 to num-entries(vList):
188
+ end.`;
189
+ let expectedTokens = [
190
+ [
191
+ { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'do'
192
+ { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
193
+ { "startIndex": 3, "endIndex": 5, "scopes": ["source.abl", "meta.block.abl", "variable.other.abl"] }, // 'vI'
194
+ { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
195
+ { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.block.abl", "keyword.operator.source.abl"] }, // '='
196
+ { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
197
+ { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.block.abl", "constant.numeric.source.abl"] }, // '1'
198
+ { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
199
+ { "startIndex": 10, "endIndex": 12, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'to'
200
+ { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
201
+ { "startIndex": 13, "endIndex": 24, "scopes": ["source.abl", "meta.block.abl", "meta.function-call.abl", "support.function.abl"] }, // 'num-entries'
202
+ { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "meta.block.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
203
+ { "startIndex": 25, "endIndex": 30, "scopes": ["source.abl", "meta.block.abl", "meta.function-call.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'vList'
204
+ { "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "meta.block.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
205
+ { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
206
+ ],
207
+ [
208
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
209
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
210
+ ]
211
+ ];
212
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
213
+ })
214
+
215
+ describe('', () => {
216
+ let statement = `do vI = 1 to objRef:MethodCalledNumEntries(vList):
217
+ run ip_thing.
218
+ end.`;
219
+ let expectedTokens = [
220
+ [
221
+ { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'do'
222
+ { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
223
+ { "startIndex": 3, "endIndex": 5, "scopes": ["source.abl", "meta.block.abl", "variable.other.abl"] }, // 'vI'
224
+ { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
225
+ { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.block.abl", "keyword.operator.source.abl"] }, // '='
226
+ { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
227
+ { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.block.abl", "constant.numeric.source.abl"] }, // '1'
228
+ { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
229
+ { "startIndex": 10, "endIndex": 12, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'to'
230
+ { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
231
+ { "startIndex": 13, "endIndex": 19, "scopes": ["source.abl", "meta.block.abl", "variable.other.abl"] }, // 'objRef'
232
+ { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
233
+ { "startIndex": 20, "endIndex": 42, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'MethodCalledNumEntries'
234
+ { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
235
+ { "startIndex": 43, "endIndex": 48, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'vList'
236
+ { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
237
+ { "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
238
+ ],
239
+ [
240
+ { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
241
+ { "startIndex": 2, "endIndex": 5, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
242
+ { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl"] }, // ' '
243
+ { "startIndex": 6, "endIndex": 14, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'ip_thing'
244
+ { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
245
+ ],
246
+ [
247
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
248
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
249
+ ]
250
+ ];
251
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
181
252
  })
@@ -24,7 +24,7 @@ describe('', () => {
24
24
  { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
25
25
  { "startIndex": 12, "endIndex": 19, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'dataset'
26
26
  { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
27
- { "startIndex": 20, "endIndex": 26, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.table.abl"] }, // 'dsData'
27
+ { "startIndex": 20, "endIndex": 26, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.dataset.abl"] }, // 'dsData'
28
28
  { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
29
29
  { "startIndex": 27, "endIndex": 39, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'by-reference'
30
30
  { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
@@ -33,3 +33,84 @@ describe('', () => {
33
33
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
34
34
  })
35
35
 
36
+ describe('', () => {
37
+ let statement = `run Foo(input (dataset dsCustomer:handle)).`;
38
+ let expectedTokens = [
39
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
40
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
41
+ { "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'Foo'
42
+ { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
43
+ { "startIndex": 8, "endIndex": 13, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
44
+ { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
45
+ { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
46
+ { "startIndex": 15, "endIndex": 22, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'dataset'
47
+ { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
48
+ { "startIndex": 23, "endIndex": 33, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.dataset.abl"] }, // 'dsCustomer'
49
+ { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
50
+ { "startIndex": 34, "endIndex": 40, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'handle'
51
+ { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
52
+ { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
53
+ { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
54
+ ];
55
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
56
+ })
57
+
58
+ describe('', () => {
59
+ let statement = `buffer ttCustomer:buffer-copy(buffer Customer:handle).`;
60
+ let expectedTokens = [
61
+ { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'buffer'
62
+ { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
63
+ { "startIndex": 7, "endIndex": 17, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'ttCustomer'
64
+ { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
65
+ { "startIndex": 18, "endIndex": 29, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'buffer-copy'
66
+ { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
67
+ { "startIndex": 30, "endIndex": 36, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'buffer'
68
+ { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
69
+ { "startIndex": 37, "endIndex": 45, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.table.abl"] }, // 'Customer'
70
+ { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
71
+ { "startIndex": 46, "endIndex": 52, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'handle'
72
+ { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
73
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
74
+ ];
75
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
76
+ })
77
+
78
+ describe('', () => {
79
+ let statement = `run Foo(input buffer Customer:handle).`;
80
+ let expectedTokens = [
81
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
82
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
83
+ { "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'Foo'
84
+ { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
85
+ { "startIndex": 8, "endIndex": 13, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
86
+ { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
87
+ { "startIndex": 14, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'buffer'
88
+ { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
89
+ { "startIndex": 21, "endIndex": 29, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.table.abl"] }, // 'Customer'
90
+ { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
91
+ { "startIndex": 30, "endIndex": 36, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'handle'
92
+ { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
93
+ { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
94
+ ];
95
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
96
+ })
97
+
98
+ describe('', () => {
99
+ let statement = `run Foo(input temp-table ttCustomer:handle).`;
100
+ let expectedTokens = [
101
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
102
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
103
+ { "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'Foo'
104
+ { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
105
+ { "startIndex": 8, "endIndex": 13, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
106
+ { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
107
+ { "startIndex": 14, "endIndex": 24, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'temp-table'
108
+ { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
109
+ { "startIndex": 25, "endIndex": 35, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.table.abl"] }, // 'ttCustomer'
110
+ { "startIndex": 35, "endIndex": 36, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
111
+ { "startIndex": 36, "endIndex": 42, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'handle'
112
+ { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
113
+ { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
114
+ ];
115
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
116
+ })
@@ -7,7 +7,7 @@ describe('', () => {
7
7
 
8
8
  let expectedTokens = [
9
9
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
10
- { "startIndex": 1, "endIndex": 9, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] }, // 'assigned'
10
+ { "startIndex": 1, "endIndex": 9, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] }, // 'assigned'
11
11
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
12
12
  { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.include.abl", "string.double.complex.abl", "punctuation.definition.string.begin.abl"] }, // '"'
13
13
  { "startIndex": 11, "endIndex": 18, "scopes": ["source.abl", "meta.include.abl", "string.double.complex.abl"] }, // 'mExtVar'
@@ -27,7 +27,7 @@ describe('', () => {
27
27
 
28
28
  let expectedTokens = [
29
29
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
30
- { "startIndex": 1, "endIndex": 9, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] }, // 'assigned'
30
+ { "startIndex": 1, "endIndex": 9, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] }, // 'assigned'
31
31
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
32
32
  { "startIndex": 10, "endIndex": 17, "scopes": ["source.abl", "meta.include.abl", "meta.include.argument.abl", "support.other.argument.abl"] }, // '&ExtVar'
33
33
  { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '}'
@@ -8,7 +8,7 @@ describe('', () => {
8
8
  let expectedTokens = [
9
9
  [
10
10
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
11
- { "startIndex": 1, "endIndex": 29, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] }, // 'Consultingwerk/linqGeneric.i'
11
+ { "startIndex": 1, "endIndex": 29, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] }, // 'Consultingwerk/linqGeneric.i'
12
12
  { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
13
13
  { "startIndex": 30, "endIndex": 52, "scopes": ["source.abl", "meta.include.abl", "support.other.argument.abl"] }, // 'SerializableAnnotation'
14
14
  { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
@@ -8,7 +8,7 @@ describe('', () => {
8
8
  let expectedTokens = [
9
9
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
10
10
  { "startIndex": 1, "endIndex": 2, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
11
- { "startIndex": 2, "endIndex": 8, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] }, // 'test.i'
11
+ { "startIndex": 2, "endIndex": 8, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] }, // 'test.i'
12
12
  { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
13
13
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.include.abl", "string.double.complex.abl", "punctuation.definition.string.begin.abl"] }, // '"'
14
14
  { "startIndex": 10, "endIndex": 17, "scopes": ["source.abl", "meta.include.abl", "string.double.complex.abl"] }, // '{&Test}'
@@ -7,7 +7,7 @@ describe('', () => {
7
7
 
8
8
  let expectedTokens = [
9
9
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
10
- { "startIndex": 1, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] }, // 'rec/zetin.ooi'
10
+ { "startIndex": 1, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] }, // 'rec/zetin.ooi'
11
11
  { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
12
12
  { "startIndex": 15, "endIndex": 21, "scopes": ["source.abl", "meta.include.abl", "meta.include.argument.abl", "support.other.argument.abl"] }, // '&where'
13
13
  { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "meta.include.abl", "meta.include.argument.abl", "keyword.operator.source.abl"] }, // '='
@@ -28,7 +28,7 @@ describe('', () => {
28
28
  let expectedTokens = [
29
29
  [
30
30
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
31
- { "startIndex": 1, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] } // 'rec/zetin.ooi'
31
+ { "startIndex": 1, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] } // 'rec/zetin.ooi'
32
32
  ],
33
33
  [
34
34
  { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
@@ -54,7 +54,7 @@ describe('', () => {
54
54
  let expectedTokens = [
55
55
  [
56
56
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
57
- { "startIndex": 1, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] }, // 'rec/zetin.ooi'
57
+ { "startIndex": 1, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] }, // 'rec/zetin.ooi'
58
58
  { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
59
59
  { "startIndex": 15, "endIndex": 21, "scopes": ["source.abl", "meta.include.abl", "meta.include.argument.abl", "support.other.argument.abl"] }, // '&where'
60
60
  { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "meta.include.abl", "meta.include.argument.abl", "keyword.operator.source.abl"] }, // '='
@@ -78,7 +78,7 @@ describe('', () => {
78
78
 
79
79
  let expectedTokens = [
80
80
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
81
- { "startIndex": 1, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] }, // 'rec/zetin.ooi'
81
+ { "startIndex": 1, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] }, // 'rec/zetin.ooi'
82
82
  { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
83
83
  { "startIndex": 15, "endIndex": 21, "scopes": ["source.abl", "meta.include.abl", "meta.include.argument.abl", "support.other.argument.abl"] }, // '&where'
84
84
  { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "meta.include.abl", "meta.include.argument.abl", "keyword.operator.source.abl"] }, // '='
@@ -104,7 +104,7 @@ describe('', () => {
104
104
  let expectedTokens = [
105
105
  [
106
106
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
107
- { "startIndex": 1, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] } // 'rec/zetin.ooi'
107
+ { "startIndex": 1, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] } // 'rec/zetin.ooi'
108
108
  ],
109
109
  [
110
110
  { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
@@ -5,7 +5,7 @@ describe('', () => {
5
5
  let expectedTokens = [
6
6
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
7
7
  { "startIndex": 1, "endIndex": 2, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
8
- { "startIndex": 2, "endIndex": 8, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] }, // 'test.i'
8
+ { "startIndex": 2, "endIndex": 8, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] }, // 'test.i'
9
9
  { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
10
10
  { "startIndex": 9, "endIndex": 16, "scopes": ["source.abl", "meta.include.abl", "support.other.argument.abl"] }, // '{&Test}'
11
11
  { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
@@ -19,7 +19,7 @@ describe('', () => {
19
19
  let expectedTokens = [
20
20
  { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.include.abl", "punctuation.section.abl"] }, // '{'
21
21
  { "startIndex": 1, "endIndex": 2, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
22
- { "startIndex": 2, "endIndex": 8, "scopes": ["source.abl", "meta.include.abl", "meta.other.include.abl"] }, // 'test.i'
22
+ { "startIndex": 2, "endIndex": 8, "scopes": ["source.abl", "meta.include.abl", "entity.name.include.abl"] }, // 'test.i'
23
23
  { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.include.abl"] }, // ' '
24
24
  { "startIndex": 9, "endIndex": 13, "scopes": ["source.abl", "meta.include.abl", "meta.include.argument.abl", "support.other.argument.abl"] }, // '&abc'
25
25
  { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.include.abl", "meta.include.argument.abl"] }, // ' '
@@ -134,7 +134,7 @@ end constructor.`;
134
134
  { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
135
135
  { "startIndex": 65, "endIndex": 72, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'dataset'
136
136
  { "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
137
- { "startIndex": 73, "endIndex": 79, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.table.abl"] }, // 'dsData'
137
+ { "startIndex": 73, "endIndex": 79, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.dataset.abl"] }, // 'dsData'
138
138
  { "startIndex": 79, "endIndex": 80, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
139
139
  { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
140
140
  ],
@@ -145,7 +145,7 @@ end method.`;
145
145
  { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
146
146
  { "startIndex": 65, "endIndex": 72, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'dataset'
147
147
  { "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
148
- { "startIndex": 73, "endIndex": 79, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.table.abl"] }, // 'dsData'
148
+ { "startIndex": 73, "endIndex": 79, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.dataset.abl"] }, // 'dsData'
149
149
  { "startIndex": 79, "endIndex": 80, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
150
150
  { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
151
151
  ],