abl-tmlanguage 1.3.11 → 1.3.13

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.
@@ -360,4 +360,95 @@ describe('', () => {
360
360
  ]
361
361
  ];
362
362
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
363
+ })
364
+
365
+ describe('', () => {
366
+ let statement = `IF (NOT PlanWeight AND StockSearchToSearchQtySKU <= StockSearchBrokenUpQtySKU) OR
367
+ ( PlanWeight AND StockSearchToSearchWeightNet <= StockSearchBrokenUpWeightNet ) THEN
368
+ Do:
369
+ IF ApplicationContext:DebugMessages THEN
370
+ MESSAGE " LOOP LEAVE --> HU to SKU conversion: enough broken-up".
371
+
372
+ ASSIGN oplLeave = TRUE.
373
+ END.`;
374
+ let expectedTokens = [
375
+ [
376
+ { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "keyword.other.abl"] }, // 'IF'
377
+ { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
378
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "meta.brace.round.js"] }, // '('
379
+ { "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // 'NOT'
380
+ { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
381
+ { "startIndex": 8, "endIndex": 18, "scopes": ["source.abl", "variable.other.abl"] }, // 'PlanWeight'
382
+ { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl"] }, // ' '
383
+ { "startIndex": 19, "endIndex": 22, "scopes": ["source.abl", "keyword.other.abl"] }, // 'AND'
384
+ { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl"] }, // ' '
385
+ { "startIndex": 23, "endIndex": 48, "scopes": ["source.abl", "variable.other.abl"] }, // 'StockSearchToSearchQtySKU'
386
+ { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl"] }, // ' '
387
+ { "startIndex": 49, "endIndex": 51, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '<='
388
+ { "startIndex": 51, "endIndex": 52, "scopes": ["source.abl"] }, // ' '
389
+ { "startIndex": 52, "endIndex": 77, "scopes": ["source.abl", "variable.other.abl"] }, // 'StockSearchBrokenUpQtySKU'
390
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
391
+ { "startIndex": 78, "endIndex": 79, "scopes": ["source.abl"] }, // ' '
392
+ { "startIndex": 79, "endIndex": 81, "scopes": ["source.abl", "keyword.other.abl"] } // 'OR'
393
+ ],
394
+ [
395
+ { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl", "meta.brace.round.js"] }, // '('
396
+ { "startIndex": 1, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
397
+ { "startIndex": 2, "endIndex": 12, "scopes": ["source.abl", "variable.other.abl"] }, // 'PlanWeight'
398
+ { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl"] }, // ' '
399
+ { "startIndex": 13, "endIndex": 16, "scopes": ["source.abl", "keyword.other.abl"] }, // 'AND'
400
+ { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl"] }, // ' '
401
+ { "startIndex": 17, "endIndex": 45, "scopes": ["source.abl", "variable.other.abl"] }, // 'StockSearchToSearchWeightNet'
402
+ { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl"] }, // ' '
403
+ { "startIndex": 46, "endIndex": 48, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '<='
404
+ { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl"] }, // ' '
405
+ { "startIndex": 49, "endIndex": 77, "scopes": ["source.abl", "variable.other.abl"] }, // 'StockSearchBrokenUpWeightNet'
406
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl"] }, // ' '
407
+ { "startIndex": 78, "endIndex": 79, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
408
+ { "startIndex": 79, "endIndex": 80, "scopes": ["source.abl"] }, // ' '
409
+ { "startIndex": 80, "endIndex": 84, "scopes": ["source.abl", "keyword.other.abl"] } // 'THEN'
410
+ ],
411
+ [
412
+ { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'Do'
413
+ { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
414
+ ],
415
+ [
416
+ { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
417
+ { "startIndex": 2, "endIndex": 4, "scopes": ["source.abl", "keyword.other.abl"] }, // 'IF'
418
+ { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl"] }, // ' '
419
+ { "startIndex": 5, "endIndex": 23, "scopes": ["source.abl", "variable.other.abl"] }, // 'ApplicationContext'
420
+ { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
421
+ { "startIndex": 24, "endIndex": 37, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'DebugMessages'
422
+ { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl"] }, // ' '
423
+ { "startIndex": 38, "endIndex": 42, "scopes": ["source.abl", "keyword.other.abl"] } // 'THEN'
424
+ ],
425
+ [
426
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
427
+ { "startIndex": 4, "endIndex": 11, "scopes": ["source.abl", "keyword.other.abl"] }, // 'MESSAGE'
428
+ { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl"] }, // ' '
429
+ { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "string.double.complex.abl", "punctuation.definition.string.begin.abl"] }, // '"'
430
+ { "startIndex": 13, "endIndex": 67, "scopes": ["source.abl", "string.double.complex.abl"] }, // ' LOOP LEAVE --> HU to SKU conversion: enough broken-up'
431
+ { "startIndex": 67, "endIndex": 68, "scopes": ["source.abl", "string.double.complex.abl", "punctuation.definition.string.end.abl"] }, // '"'
432
+ { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
433
+ ],
434
+ [
435
+ { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl"] } // ''
436
+ ],
437
+ [
438
+ { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
439
+ { "startIndex": 2, "endIndex": 8, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ASSIGN'
440
+ { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl"] }, // ' '
441
+ { "startIndex": 9, "endIndex": 17, "scopes": ["source.abl", "variable.other.abl"] }, // 'oplLeave'
442
+ { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl"] }, // ' '
443
+ { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
444
+ { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl"] }, // ' '
445
+ { "startIndex": 20, "endIndex": 24, "scopes": ["source.abl", "constant.language.abl"] }, // 'TRUE'
446
+ { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
447
+ ],
448
+ [
449
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'END'
450
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
451
+ ]
452
+ ];
453
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
363
454
  })
@@ -10,7 +10,7 @@ else if ambiguous bCustomer then .`;
10
10
  { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
11
11
  { "startIndex": 3, "endIndex": 12, "scopes": ["source.abl", "support.function.abl"] }, // 'available'
12
12
  { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl"] }, // ' '
13
- { "startIndex": 13, "endIndex": 22, "scopes": ["source.abl", "support.data.table.abl"] }, // 'bCustomer'
13
+ { "startIndex": 13, "endIndex": 22, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'bCustomer'
14
14
  { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl"] }, // ' '
15
15
  { "startIndex": 23, "endIndex": 27, "scopes": ["source.abl", "keyword.other.abl"] }, // 'then'
16
16
  { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl"] }, // ' '
@@ -23,7 +23,7 @@ else if ambiguous bCustomer then .`;
23
23
  { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
24
24
  { "startIndex": 8, "endIndex": 17, "scopes": ["source.abl", "support.function.abl"] }, // 'ambiguous'
25
25
  { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl"] }, // ' '
26
- { "startIndex": 18, "endIndex": 27, "scopes": ["source.abl", "support.data.table.abl"] }, // 'bCustomer'
26
+ { "startIndex": 18, "endIndex": 27, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'bCustomer'
27
27
  { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl"] }, // ' '
28
28
  { "startIndex": 28, "endIndex": 32, "scopes": ["source.abl", "keyword.other.abl"] }, // 'then'
29
29
  { "startIndex": 32, "endIndex": 33, "scopes": ["source.abl"] }, // ' '
@@ -43,7 +43,7 @@ describe('', () => {
43
43
  { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl"] }, // ' '
44
44
  { "startIndex": 6, "endIndex": 15, "scopes": ["source.abl", "support.function.abl"] }, // 'available'
45
45
  { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl"] }, // ' '
46
- { "startIndex": 16, "endIndex": 32, "scopes": ["source.abl", "support.data.table.abl"] }, // 'sports.bCustomer'
46
+ { "startIndex": 16, "endIndex": 32, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'sports.bCustomer'
47
47
  { "startIndex": 32, "endIndex": 33, "scopes": ["source.abl"] }, // ' '
48
48
  { "startIndex": 33, "endIndex": 37, "scopes": ["source.abl", "keyword.other.abl"] }, // 'then'
49
49
  { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl"] }, // ' '
@@ -11,7 +11,7 @@ end procedure.`;
11
11
  [
12
12
  { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'procedure'
13
13
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
14
- { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.function.abl"] }, // 'procName'
14
+ { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.procedure.abl"] }, // 'procName'
15
15
  { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
16
16
  ],
17
17
  [
@@ -37,7 +37,7 @@ end procedure.`;
37
37
  [
38
38
  { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'procedure'
39
39
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
40
- { "startIndex": 10, "endIndex": 26, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.function.abl"] }, // 'initProTopServer'
40
+ { "startIndex": 10, "endIndex": 26, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.procedure.abl"] }, // 'initProTopServer'
41
41
  { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
42
42
  ],
43
43
  [
@@ -77,7 +77,7 @@ end procedure.`;
77
77
  [
78
78
  { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'procedure'
79
79
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
80
- { "startIndex": 10, "endIndex": 31, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.function.abl"] }, // 'pascalStyleFormatting'
80
+ { "startIndex": 10, "endIndex": 31, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.procedure.abl"] }, // 'pascalStyleFormatting'
81
81
  { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
82
82
  ],
83
83
  [
@@ -117,7 +117,7 @@ end procedure.`;
117
117
  [
118
118
  { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'procedure'
119
119
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
120
- { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.function.abl"] }, // 'procName'
120
+ { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.procedure.abl"] }, // 'procName'
121
121
  { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
122
122
  ],
123
123
  [
@@ -11,7 +11,7 @@ END PROCEDURE.`;
11
11
  [
12
12
  { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'PROCEDURE'
13
13
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
14
- { "startIndex": 10, "endIndex": 29, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.function.abl"] }, // 'GetCurrentProcessId'
14
+ { "startIndex": 10, "endIndex": 29, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.procedure.abl"] }, // 'GetCurrentProcessId'
15
15
  { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
16
16
  { "startIndex": 30, "endIndex": 38, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'EXTERNAL'
17
17
  { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
@@ -0,0 +1,64 @@
1
+ const { assert, expect } = require('chai');
2
+ const shared = require('../shared.js');
3
+
4
+ describe('', () => {
5
+ let statement = `run tax.CalculateIncomeTax(input "").`;
6
+
7
+ let expectedTokens = [
8
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
9
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
10
+ { "startIndex": 4, "endIndex": 26, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'tax.CalculateIncomeTax'
11
+ { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
12
+ { "startIndex": 27, "endIndex": 32, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
13
+ { "startIndex": 32, "endIndex": 33, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
14
+ { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.function.arguments.abl", "string.double.complex.abl", "punctuation.definition.string.begin.abl"] }, // '"'
15
+ { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.function.arguments.abl", "string.double.complex.abl", "punctuation.definition.string.end.abl"] }, // '"'
16
+ { "startIndex": 35, "endIndex": 36, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
17
+ { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
18
+ ];
19
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
20
+ })
21
+
22
+ describe('', () => {
23
+ let statement = `procedure tax.CalculateTax:
24
+ end procedure.`;
25
+
26
+ let expectedTokens = [
27
+ [
28
+ { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'procedure'
29
+ { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
30
+ { "startIndex": 10, "endIndex": 26, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.procedure.abl"] }, // 'tax.CalculateTax'
31
+ { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
32
+ ],
33
+ [
34
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
35
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
36
+ { "startIndex": 4, "endIndex": 13, "scopes": ["source.abl", "keyword.other.abl"] }, // 'procedure'
37
+ { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
38
+ ]
39
+ ];
40
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
41
+ })
42
+
43
+ describe('', () => {
44
+ let statement = `procedure UsingFoo private:
45
+ end procedure.`;
46
+
47
+ let expectedTokens = [
48
+ [
49
+ { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'procedure'
50
+ { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
51
+ { "startIndex": 10, "endIndex": 18, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.procedure.abl"] }, // 'UsingFoo'
52
+ { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
53
+ { "startIndex": 19, "endIndex": 26, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'private'
54
+ { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
55
+ ],
56
+ [
57
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
58
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
59
+ { "startIndex": 4, "endIndex": 13, "scopes": ["source.abl", "keyword.other.abl"] }, // 'procedure'
60
+ { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
61
+ ]
62
+ ];
63
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
64
+ })
@@ -11,7 +11,7 @@ end procedure.`;
11
11
  [
12
12
  { "startIndex": 0, "endIndex": 9, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'PROCEDURE'
13
13
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
14
- { "startIndex": 10, "endIndex": 22, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.function.abl"] }, // 'EnumPrinters'
14
+ { "startIndex": 10, "endIndex": 22, "scopes": ["source.abl", "meta.procedure.abl", "entity.name.procedure.abl"] }, // 'EnumPrinters'
15
15
  { "startIndex": 22, "endIndex": 26, "scopes": ["source.abl", "meta.procedure.abl", "support.other.argument.abl"] }, // '{&A}'
16
16
  { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.procedure.abl"] }, // ' '
17
17
  { "startIndex": 27, "endIndex": 35, "scopes": ["source.abl", "meta.procedure.abl", "keyword.other.abl"] }, // 'EXTERNAL'
@@ -241,3 +241,61 @@ set. `;
241
241
  ];
242
242
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
243
243
  })
244
+
245
+ describe('', () => {
246
+ let statement = `DEFINE PUBLIC PROPERTY ATHING AS IHTTPCLIENT NO-UNDO
247
+ GET .`;
248
+
249
+ let expectedTokens = [
250
+ [
251
+ { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'define'
252
+ { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
253
+ { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'public'
254
+ { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
255
+ { "startIndex": 14, "endIndex": 22, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'property'
256
+ { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
257
+ { "startIndex": 23, "endIndex": 29, "scopes": ["source.abl", "meta.define.abl", "entity.name.function.abl"] }, // 'AThing'
258
+ { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
259
+ { "startIndex": 30, "endIndex": 32, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'as'
260
+ { "startIndex": 32, "endIndex": 33, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
261
+ { "startIndex": 33, "endIndex": 44, "scopes": ["source.abl", "meta.define.abl", "entity.name.type.abl"] }, // 'IHttpClient'
262
+ { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
263
+ { "startIndex": 45, "endIndex": 52, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] } // 'no-undo'
264
+ ],
265
+ [
266
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'get'
267
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
268
+ { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.define.abl", "punctuation.terminator.abl"] } // '.'
269
+ ]
270
+ ];
271
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
272
+ })
273
+
274
+ describe('', () => {
275
+ let statement = `defINE PUBLIC PROPErty AThing as IHttpClient no-undo
276
+ SEt. `;
277
+
278
+ let expectedTokens = [
279
+ [
280
+ { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'define'
281
+ { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
282
+ { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'public'
283
+ { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
284
+ { "startIndex": 14, "endIndex": 22, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'property'
285
+ { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
286
+ { "startIndex": 23, "endIndex": 29, "scopes": ["source.abl", "meta.define.abl", "entity.name.function.abl"] }, // 'AThing'
287
+ { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
288
+ { "startIndex": 30, "endIndex": 32, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'as'
289
+ { "startIndex": 32, "endIndex": 33, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
290
+ { "startIndex": 33, "endIndex": 44, "scopes": ["source.abl", "meta.define.abl", "entity.name.type.abl"] }, // 'IHttpClient'
291
+ { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
292
+ { "startIndex": 45, "endIndex": 52, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] } // 'no-undo'
293
+ ],
294
+ [
295
+ { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'set'
296
+ { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "meta.define.abl", "punctuation.terminator.abl"] }, // '.'
297
+ { "startIndex": 4, "endIndex": 6, "scopes": ["source.abl"] } // ' '
298
+ ]
299
+ ];
300
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
301
+ })