abl-tmlanguage 1.3.10 → 1.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ 1.3.11
2
+ ======
3
+
4
+ - Fix CREATE ALIAS highlight (#53)
5
+ - Fix IF in variable name (#52)
6
+ - Fix scope of ROWID function args
7
+ - Allow word breaks (eg commas) before constants
8
+
1
9
  1.3.10
2
10
  ======
3
11
  - Too many changes to be listed here...
@@ -433,6 +433,9 @@
433
433
  {
434
434
  "include": "#comment"
435
435
  },
436
+ {
437
+ "include": "#rowid-function"
438
+ },
436
439
  {
437
440
  "include": "#var-statement"
438
441
  },
@@ -2125,7 +2128,7 @@
2125
2128
  "name": "keyword.other.abl"
2126
2129
  }
2127
2130
  },
2128
- "end": "(=\\.)",
2131
+ "end": "(?=\\.)",
2129
2132
  "patterns": [
2130
2133
  {
2131
2134
  "include": "#keywords"
@@ -3203,7 +3206,7 @@
3203
3206
  ]
3204
3207
  },
3205
3208
  "if-then": {
3206
- "begin": "(?i)\\s*(if)\\s*",
3209
+ "begin": "(?i)\\b(if)\\b",
3207
3210
  "beginCaptures": {
3208
3211
  "1": {
3209
3212
  "name": "keyword.other.abl"
@@ -3769,7 +3772,7 @@
3769
3772
  "name": "constant.language.abl"
3770
3773
  },
3771
3774
  "constant": {
3772
- "match": "(?i)(?<=^|\\s|\\()(true|false|yes|no|\\?)(?![a-zA-Z0-9_\\-#$%])",
3775
+ "match": "(?i)(?<=^|\\b|\\s|\\()(true|false|yes|no|\\?)(?![a-zA-Z0-9_\\-#$%])",
3773
3776
  "name": "constant.language.abl"
3774
3777
  },
3775
3778
  "punctuation-colon": {
@@ -3863,6 +3866,23 @@
3863
3866
  }
3864
3867
  }
3865
3868
  },
3869
+ "rowid-function": {
3870
+ "match": "(?i)\\s*(rowid)\\s*(\\()\\s*([a-zA-Z_][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*(\\))",
3871
+ "captures": {
3872
+ "1": {
3873
+ "name": "support.function.abl"
3874
+ },
3875
+ "2": {
3876
+ "name": "meta.brace.round.js"
3877
+ },
3878
+ "3": {
3879
+ "name": "storage.data.table.abl"
3880
+ },
3881
+ "5": {
3882
+ "name": "meta.brace.round.js"
3883
+ }
3884
+ }
3885
+ },
3866
3886
  "new-record": {
3867
3887
  "comment": "This scope MUST be called after before type-reference (especially new-class) to avoid types being captured as tables",
3868
3888
  "patterns": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abl-tmlanguage",
3
- "version": "1.3.10",
3
+ "version": "1.3.11",
4
4
  "description": "TextMate grammar for Progress OpenEdge ABL Language",
5
5
  "main": "",
6
6
  "repository": {
@@ -62,7 +62,7 @@ end finally.`;
62
62
  [
63
63
  { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
64
64
  { "startIndex": 2, "endIndex": 4, "scopes": ["source.abl", "keyword.other.abl"] }, // 'if'
65
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl"] }, // ' '
65
+ { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
66
66
  { "startIndex": 5, "endIndex": 17, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'valid-object'
67
67
  { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
68
68
  { "startIndex": 18, "endIndex": 23, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'oMenu'
@@ -15,7 +15,7 @@ describe('', () => {
15
15
  { "startIndex": 32, "endIndex": 40, "scopes": ["source.abl", "keyword.other.abl"] }, // 'DATABASE'
16
16
  { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl"] }, // ' '
17
17
  { "startIndex": 41, "endIndex": 60, "scopes": ["source.abl", "storage.data.database.abl"] }, // 'logical-name-string'
18
- { "startIndex": 60, "endIndex": 62, "scopes": ["source.abl"] } // '.'
18
+ { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
19
19
  ];
20
20
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
21
21
  })
@@ -46,7 +46,7 @@ describe('', () => {
46
46
  { "startIndex": 55, "endIndex": 65, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'expression'
47
47
  { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl"] }, // ' '
48
48
  { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
49
- { "startIndex": 67, "endIndex": 69, "scopes": ["source.abl"] } // '.'
49
+ { "startIndex": 67, "endIndex": 68, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
50
50
  ];
51
51
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
52
52
  })
@@ -71,7 +71,7 @@ describe('', () => {
71
71
  { "startIndex": 47, "endIndex": 54, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "storage.data.table.abl"] }, // 'tt.fld1'
72
72
  { "startIndex": 54, "endIndex": 55, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl"] }, // ' '
73
73
  { "startIndex": 55, "endIndex": 56, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
74
- { "startIndex": 56, "endIndex": 58, "scopes": ["source.abl"] } // '.'
74
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
75
75
  ];
76
76
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
77
77
  })
@@ -95,7 +95,36 @@ describe('', () => {
95
95
  { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
96
96
  { "startIndex": 42, "endIndex": 53, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'user_dbname'
97
97
  { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
98
- { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl"] } // '.'
98
+ { "startIndex": 54, "endIndex": 55, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
99
+ ];
100
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
101
+ })
102
+
103
+ describe('', () => {
104
+ let statement = `// Valid comment
105
+ CREATE ALIAS xx1 FOR DATABASE xx2.
106
+ // Not correctly highlighted`;
107
+ let expectedTokens = [
108
+ [
109
+ { "startIndex": 0, "endIndex": 16, "scopes": ["source.abl", "comment.line.double-slash.abl"] } // '// Valid comment'
110
+ ],
111
+ [
112
+ { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'CREATE'
113
+ { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
114
+ { "startIndex": 7, "endIndex": 12, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ALIAS'
115
+ { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl"] }, // ' '
116
+ { "startIndex": 13, "endIndex": 16, "scopes": ["source.abl", "storage.data.database.abl"] }, // 'xx1'
117
+ { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl"] }, // ' '
118
+ { "startIndex": 17, "endIndex": 20, "scopes": ["source.abl", "keyword.other.abl"] }, // 'FOR'
119
+ { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl"] }, // ' '
120
+ { "startIndex": 21, "endIndex": 29, "scopes": ["source.abl", "keyword.other.abl"] }, // 'DATABASE'
121
+ { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl"] }, // ' '
122
+ { "startIndex": 30, "endIndex": 33, "scopes": ["source.abl", "storage.data.database.abl"] }, // 'xx2'
123
+ { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
124
+ ],
125
+ [
126
+ { "startIndex": 0, "endIndex": 28, "scopes": ["source.abl", "comment.line.double-slash.abl"] } // '// Not correctly highlighted'
127
+ ]
99
128
  ];
100
129
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
101
130
  })
@@ -188,6 +188,7 @@ describe('', () => {
188
188
  ];
189
189
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
190
190
  })
191
+
191
192
  describe('', () => {
192
193
  let statement = `def var someArray as chara extent 3 no-undo initial ["p", "q", ?].`;
193
194
  let expectedTokens = [
@@ -225,4 +226,498 @@ describe('', () => {
225
226
  { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "meta.define.abl", "punctuation.terminator.abl"] } // '.'
226
227
  ];
227
228
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
229
+ })
230
+
231
+ describe('', () => {
232
+ let statement = ` // Default = unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
233
+ var private logical[128] mFlags_Default = [ // NUL SOH STX ETX EOT ENQ ACK BEL
234
+ yes,yes,yes,yes,yes,yes,yes,yes,
235
+ // BS HT LF VT FF CR SO SI
236
+ yes,yes,yes,yes,yes,yes,yes,yes,
237
+ // DLE DC1 DC2 DC3 DC4 NAK SYN ETB
238
+ yes,yes,yes,yes,yes,yes,yes,yes,
239
+ // CAN EM SUB ESC FS GS RS US
240
+ yes,yes,yes,yes,yes,yes,yes,yes,
241
+ // ! " # $ % & '
242
+ yes,yes,yes,yes,yes,yes,yes,yes,
243
+ // ( ) * + , - . /
244
+ yes,yes,yes,yes,yes,no ,no ,yes,
245
+ // 0 1 2 3 4 5 6 7
246
+ no ,no ,no ,no ,no ,no ,no ,no ,
247
+ // 8 9 : ; < = > ?
248
+ no ,no ,yes,yes,yes,yes,yes,yes,
249
+ // @ A B C D E F G
250
+ yes,no ,no ,no ,no ,no ,no ,no ,
251
+ // H I J K L M N O
252
+ no ,no ,no ,no ,no ,no ,no ,no ,
253
+ // P Q R S T U V W
254
+ no ,no ,no ,no ,no ,no ,no ,no ,
255
+ // X Y Z [ \ ] ^ _
256
+ no ,no ,no ,yes,yes,yes,yes,no ,
257
+ // \` a b c d e f g
258
+ yes,no ,no ,no ,no ,no ,no ,no ,
259
+ // h i j k l m n o
260
+ no ,no ,no ,no ,no ,no ,no ,no ,
261
+ // p q r s t u v w
262
+ no ,no ,no ,no ,no ,no ,no ,no ,
263
+ // x y z { | } ~ DEL
264
+ no ,no ,no ,yes,yes,yes,no ,yes ].`;
265
+ let expectedTokens = [
266
+ [
267
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
268
+ { "startIndex": 4, "endIndex": 70, "scopes": ["source.abl", "comment.line.double-slash.abl"] } // '// Default = unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"'
269
+ ],
270
+ [
271
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
272
+ { "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'var'
273
+ { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
274
+ { "startIndex": 8, "endIndex": 15, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'private'
275
+ { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
276
+ { "startIndex": 16, "endIndex": 23, "scopes": ["source.abl", "meta.define.abl", "storage.type.abl"] }, // 'logical'
277
+ { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.abl", "meta.array.literal.abl", "punctuation.definition.bracket.square.begin.abl"] }, // '['
278
+ { "startIndex": 24, "endIndex": 27, "scopes": ["source.abl", "meta.define.abl", "meta.array.literal.abl", "constant.numeric.source.abl"] }, // '128'
279
+ { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.define.abl", "meta.array.literal.abl", "punctuation.definition.bracket.square.end.abl"] }, // ']'
280
+ { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
281
+ { "startIndex": 29, "endIndex": 43, "scopes": ["source.abl", "meta.define.abl", "variable.other.abl"] }, // 'mFlags_Default'
282
+ { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl"] }, // ' '
283
+ { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
284
+ { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl"] }, // ' '
285
+ { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.definition.bracket.square.begin.abl"] }, // '['
286
+ { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
287
+ { "startIndex": 48, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// NUL SOH STX ETX EOT ENQ ACK BEL'
288
+ ],
289
+ [
290
+ { "startIndex": 0, "endIndex": 51, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
291
+ { "startIndex": 51, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
292
+ { "startIndex": 54, "endIndex": 55, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
293
+ { "startIndex": 55, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
294
+ { "startIndex": 58, "endIndex": 59, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
295
+ { "startIndex": 59, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
296
+ { "startIndex": 62, "endIndex": 63, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
297
+ { "startIndex": 63, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
298
+ { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
299
+ { "startIndex": 67, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
300
+ { "startIndex": 70, "endIndex": 71, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
301
+ { "startIndex": 71, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
302
+ { "startIndex": 74, "endIndex": 75, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
303
+ { "startIndex": 75, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
304
+ { "startIndex": 78, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
305
+ { "startIndex": 79, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
306
+ { "startIndex": 82, "endIndex": 83, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
307
+ ],
308
+ [
309
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
310
+ { "startIndex": 47, "endIndex": 80, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// BS HT LF VT FF CR SO SI'
311
+ ],
312
+ [
313
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
314
+ { "startIndex": 50, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
315
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
316
+ { "startIndex": 54, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
317
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
318
+ { "startIndex": 58, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
319
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
320
+ { "startIndex": 62, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
321
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
322
+ { "startIndex": 66, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
323
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
324
+ { "startIndex": 70, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
325
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
326
+ { "startIndex": 74, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
327
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
328
+ { "startIndex": 78, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
329
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
330
+ ],
331
+ [
332
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
333
+ { "startIndex": 47, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// DLE DC1 DC2 DC3 DC4 NAK SYN ETB'
334
+ ],
335
+ [
336
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
337
+ { "startIndex": 50, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
338
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
339
+ { "startIndex": 54, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
340
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
341
+ { "startIndex": 58, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
342
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
343
+ { "startIndex": 62, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
344
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
345
+ { "startIndex": 66, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
346
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
347
+ { "startIndex": 70, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
348
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
349
+ { "startIndex": 74, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
350
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
351
+ { "startIndex": 78, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
352
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
353
+ ],
354
+ [
355
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
356
+ { "startIndex": 47, "endIndex": 80, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// CAN EM SUB ESC FS GS RS US'
357
+ ],
358
+ [
359
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
360
+ { "startIndex": 50, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
361
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
362
+ { "startIndex": 54, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
363
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
364
+ { "startIndex": 58, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
365
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
366
+ { "startIndex": 62, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
367
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
368
+ { "startIndex": 66, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
369
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
370
+ { "startIndex": 70, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
371
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
372
+ { "startIndex": 74, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
373
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
374
+ { "startIndex": 78, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
375
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
376
+ ],
377
+ [
378
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
379
+ { "startIndex": 47, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// ! " # $ % & ''
380
+ ],
381
+ [
382
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
383
+ { "startIndex": 50, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
384
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
385
+ { "startIndex": 54, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
386
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
387
+ { "startIndex": 58, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
388
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
389
+ { "startIndex": 62, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
390
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
391
+ { "startIndex": 66, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
392
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
393
+ { "startIndex": 70, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
394
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
395
+ { "startIndex": 74, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
396
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
397
+ { "startIndex": 78, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
398
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
399
+ ],
400
+ [
401
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
402
+ { "startIndex": 47, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// ( ) * + , - . /'
403
+ ],
404
+ [
405
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
406
+ { "startIndex": 50, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
407
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
408
+ { "startIndex": 54, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
409
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
410
+ { "startIndex": 58, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
411
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
412
+ { "startIndex": 62, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
413
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
414
+ { "startIndex": 66, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
415
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
416
+ { "startIndex": 70, "endIndex": 72, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
417
+ { "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
418
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
419
+ { "startIndex": 74, "endIndex": 76, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
420
+ { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
421
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
422
+ { "startIndex": 78, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
423
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
424
+ ],
425
+ [
426
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
427
+ { "startIndex": 47, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// 0 1 2 3 4 5 6 7'
428
+ ],
429
+ [
430
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
431
+ { "startIndex": 50, "endIndex": 52, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
432
+ { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
433
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
434
+ { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
435
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
436
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
437
+ { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
438
+ { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
439
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
440
+ { "startIndex": 62, "endIndex": 64, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
441
+ { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
442
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
443
+ { "startIndex": 66, "endIndex": 68, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
444
+ { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
445
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
446
+ { "startIndex": 70, "endIndex": 72, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
447
+ { "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
448
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
449
+ { "startIndex": 74, "endIndex": 76, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
450
+ { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
451
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
452
+ { "startIndex": 78, "endIndex": 80, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
453
+ { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
454
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
455
+ ],
456
+ [
457
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
458
+ { "startIndex": 47, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// 8 9 : ; < = > ?'
459
+ ],
460
+ [
461
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
462
+ { "startIndex": 50, "endIndex": 52, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
463
+ { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
464
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
465
+ { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
466
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
467
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
468
+ { "startIndex": 58, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
469
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
470
+ { "startIndex": 62, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
471
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
472
+ { "startIndex": 66, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
473
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
474
+ { "startIndex": 70, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
475
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
476
+ { "startIndex": 74, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
477
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
478
+ { "startIndex": 78, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
479
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
480
+ ],
481
+ [
482
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
483
+ { "startIndex": 47, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// @ A B C D E F G'
484
+ ],
485
+ [
486
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
487
+ { "startIndex": 50, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
488
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
489
+ { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
490
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
491
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
492
+ { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
493
+ { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
494
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
495
+ { "startIndex": 62, "endIndex": 64, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
496
+ { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
497
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
498
+ { "startIndex": 66, "endIndex": 68, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
499
+ { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
500
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
501
+ { "startIndex": 70, "endIndex": 72, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
502
+ { "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
503
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
504
+ { "startIndex": 74, "endIndex": 76, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
505
+ { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
506
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
507
+ { "startIndex": 78, "endIndex": 80, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
508
+ { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
509
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
510
+ ],
511
+ [
512
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
513
+ { "startIndex": 47, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// H I J K L M N O'
514
+ ],
515
+ [
516
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
517
+ { "startIndex": 50, "endIndex": 52, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
518
+ { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
519
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
520
+ { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
521
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
522
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
523
+ { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
524
+ { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
525
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
526
+ { "startIndex": 62, "endIndex": 64, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
527
+ { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
528
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
529
+ { "startIndex": 66, "endIndex": 68, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
530
+ { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
531
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
532
+ { "startIndex": 70, "endIndex": 72, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
533
+ { "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
534
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
535
+ { "startIndex": 74, "endIndex": 76, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
536
+ { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
537
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
538
+ { "startIndex": 78, "endIndex": 80, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
539
+ { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
540
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
541
+ ],
542
+ [
543
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
544
+ { "startIndex": 47, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// P Q R S T U V W'
545
+ ],
546
+ [
547
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
548
+ { "startIndex": 50, "endIndex": 52, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
549
+ { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
550
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
551
+ { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
552
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
553
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
554
+ { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
555
+ { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
556
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
557
+ { "startIndex": 62, "endIndex": 64, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
558
+ { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
559
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
560
+ { "startIndex": 66, "endIndex": 68, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
561
+ { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
562
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
563
+ { "startIndex": 70, "endIndex": 72, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
564
+ { "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
565
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
566
+ { "startIndex": 74, "endIndex": 76, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
567
+ { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
568
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
569
+ { "startIndex": 78, "endIndex": 80, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
570
+ { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
571
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
572
+ ],
573
+ [
574
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
575
+ { "startIndex": 47, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// X Y Z [ ] ^ _'
576
+ ],
577
+ [
578
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
579
+ { "startIndex": 50, "endIndex": 52, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
580
+ { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
581
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
582
+ { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
583
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
584
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
585
+ { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
586
+ { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
587
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
588
+ { "startIndex": 62, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
589
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
590
+ { "startIndex": 66, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
591
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
592
+ { "startIndex": 70, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
593
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
594
+ { "startIndex": 74, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
595
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
596
+ { "startIndex": 78, "endIndex": 80, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
597
+ { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
598
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
599
+ ],
600
+ [
601
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
602
+ { "startIndex": 47, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// ` a b c d e f g'
603
+ ],
604
+ [
605
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
606
+ { "startIndex": 50, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
607
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
608
+ { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
609
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
610
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
611
+ { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
612
+ { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
613
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
614
+ { "startIndex": 62, "endIndex": 64, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
615
+ { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
616
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
617
+ { "startIndex": 66, "endIndex": 68, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
618
+ { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
619
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
620
+ { "startIndex": 70, "endIndex": 72, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
621
+ { "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
622
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
623
+ { "startIndex": 74, "endIndex": 76, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
624
+ { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
625
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
626
+ { "startIndex": 78, "endIndex": 80, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
627
+ { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
628
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
629
+ ],
630
+ [
631
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
632
+ { "startIndex": 47, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// h i j k l m n o'
633
+ ],
634
+ [
635
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
636
+ { "startIndex": 50, "endIndex": 52, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
637
+ { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
638
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
639
+ { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
640
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
641
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
642
+ { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
643
+ { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
644
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
645
+ { "startIndex": 62, "endIndex": 64, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
646
+ { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
647
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
648
+ { "startIndex": 66, "endIndex": 68, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
649
+ { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
650
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
651
+ { "startIndex": 70, "endIndex": 72, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
652
+ { "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
653
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
654
+ { "startIndex": 74, "endIndex": 76, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
655
+ { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
656
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
657
+ { "startIndex": 78, "endIndex": 80, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
658
+ { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
659
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
660
+ ],
661
+ [
662
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
663
+ { "startIndex": 47, "endIndex": 79, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// p q r s t u v w'
664
+ ],
665
+ [
666
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
667
+ { "startIndex": 50, "endIndex": 52, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
668
+ { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
669
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
670
+ { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
671
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
672
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
673
+ { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
674
+ { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
675
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
676
+ { "startIndex": 62, "endIndex": 64, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
677
+ { "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
678
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
679
+ { "startIndex": 66, "endIndex": 68, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
680
+ { "startIndex": 68, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
681
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
682
+ { "startIndex": 70, "endIndex": 72, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
683
+ { "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
684
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
685
+ { "startIndex": 74, "endIndex": 76, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
686
+ { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
687
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
688
+ { "startIndex": 78, "endIndex": 80, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
689
+ { "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
690
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] } // ','
691
+ ],
692
+ [
693
+ { "startIndex": 0, "endIndex": 47, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
694
+ { "startIndex": 47, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl", "comment.line.double-slash.abl"] } // '// x y z { | } ~ DEL'
695
+ ],
696
+ [
697
+ { "startIndex": 0, "endIndex": 50, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
698
+ { "startIndex": 50, "endIndex": 52, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
699
+ { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
700
+ { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
701
+ { "startIndex": 54, "endIndex": 56, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
702
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
703
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
704
+ { "startIndex": 58, "endIndex": 60, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
705
+ { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
706
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
707
+ { "startIndex": 62, "endIndex": 65, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
708
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
709
+ { "startIndex": 66, "endIndex": 69, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
710
+ { "startIndex": 69, "endIndex": 70, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
711
+ { "startIndex": 70, "endIndex": 73, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
712
+ { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
713
+ { "startIndex": 74, "endIndex": 76, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'no'
714
+ { "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
715
+ { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.separator.comma.abl"] }, // ','
716
+ { "startIndex": 78, "endIndex": 81, "scopes": ["source.abl", "meta.array.literal.abl", "constant.language.abl"] }, // 'yes'
717
+ { "startIndex": 81, "endIndex": 82, "scopes": ["source.abl", "meta.array.literal.abl"] }, // ' '
718
+ { "startIndex": 82, "endIndex": 83, "scopes": ["source.abl", "meta.array.literal.abl", "punctuation.definition.bracket.square.end.abl"] }, // ']'
719
+ { "startIndex": 83, "endIndex": 84, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
720
+ ]
721
+ ];
722
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
228
723
  })
@@ -5,7 +5,7 @@ describe('', () => {
5
5
  let statement = `if can-do("data",output-content-type) then.`;
6
6
  let expectedTokens = [
7
7
  { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "keyword.other.abl"] }, // 'if'
8
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
8
+ { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
9
9
  { "startIndex": 3, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'can-do'
10
10
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
11
11
  { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "string.double.complex.abl", "punctuation.definition.string.begin.abl"] }, // '"'
@@ -20,3 +20,40 @@ describe('', () => {
20
20
  ];
21
21
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
22
22
  })
23
+
24
+ describe('', () => {
25
+ let statement = `// b1-cust should be table scope
26
+ find b1-cust exclusive-lock where rowid(b1-cust) = rowid(customer) no-wait no-error.`;
27
+ let expectedTokens = [
28
+ [
29
+ { "startIndex": 0, "endIndex": 32, "scopes": ["source.abl", "comment.line.double-slash.abl"] } // '// b1-cust should be table scope'
30
+ ],
31
+ [
32
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "keyword.other.abl"] }, // 'find'
33
+ { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl"] }, // ' '
34
+ { "startIndex": 5, "endIndex": 12, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'b1-cust'
35
+ { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl"] }, // ' '
36
+ { "startIndex": 13, "endIndex": 27, "scopes": ["source.abl", "keyword.other.abl"] }, // 'exclusive-lock'
37
+ { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl"] }, // ' '
38
+ { "startIndex": 28, "endIndex": 33, "scopes": ["source.abl", "keyword.other.abl"] }, // 'where'
39
+ { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl"] }, // ' '
40
+ { "startIndex": 34, "endIndex": 39, "scopes": ["source.abl", "support.function.abl"] }, // 'rowid'
41
+ { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.brace.round.js"] }, // '('
42
+ { "startIndex": 40, "endIndex": 47, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'b1-cust'
43
+ { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
44
+ { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl"] }, // ' '
45
+ { "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
46
+ { "startIndex": 50, "endIndex": 51, "scopes": ["source.abl"] }, // ' '
47
+ { "startIndex": 51, "endIndex": 56, "scopes": ["source.abl", "support.function.abl"] }, // 'rowid'
48
+ { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.brace.round.js"] }, // '('
49
+ { "startIndex": 57, "endIndex": 65, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'customer'
50
+ { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
51
+ { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl"] }, // ' '
52
+ { "startIndex": 67, "endIndex": 74, "scopes": ["source.abl", "keyword.other.abl"] }, // 'no-wait'
53
+ { "startIndex": 74, "endIndex": 75, "scopes": ["source.abl"] }, // ' '
54
+ { "startIndex": 75, "endIndex": 83, "scopes": ["source.abl", "keyword.other.abl"] }, // 'no-error'
55
+ { "startIndex": 83, "endIndex": 84, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
56
+ ]
57
+ ];
58
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
59
+ })
@@ -177,7 +177,7 @@ describe('', () => {
177
177
  [
178
178
  { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
179
179
  { "startIndex": 2, "endIndex": 4, "scopes": ["source.abl", "keyword.other.abl"] }, // 'IF'
180
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl"] }, // ' '
180
+ { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
181
181
  { "startIndex": 5, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'LOOKUP'
182
182
  { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
183
183
  { "startIndex": 12, "endIndex": 17, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.function-call.abl", "support.function.abl"] }, // 'SUBST'
@@ -10,7 +10,7 @@ if type-of(pProxyReq, IHttpRequest) then
10
10
  let expectedTokens = [
11
11
  [
12
12
  { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "keyword.other.abl"] }, // 'if'
13
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
13
+ { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
14
14
  { "startIndex": 3, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'type-of'
15
15
  { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // '('
16
16
  { "startIndex": 11, "endIndex": 20, "scopes": ["source.abl", "meta.function-call.abl", "variable.other.abl"] }, // 'pProxyReq'
@@ -57,7 +57,7 @@ if type-of(pProxyReq, IHttpRequest) then
57
57
  ],
58
58
  [
59
59
  { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "keyword.other.abl"] }, // 'if'
60
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
60
+ { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
61
61
  { "startIndex": 3, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'type-of'
62
62
  { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // '('
63
63
  { "startIndex": 11, "endIndex": 20, "scopes": ["source.abl", "meta.function-call.abl", "variable.other.abl"] }, // 'pProxyReq'
@@ -168,7 +168,7 @@ END.`;
168
168
  [
169
169
  { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl"] }, // ' '
170
170
  { "startIndex": 6, "endIndex": 8, "scopes": ["source.abl", "keyword.other.abl"] }, // 'IF'
171
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl"] }, // ' '
171
+ { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
172
172
  { "startIndex": 9, "endIndex": 15, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'LOOKUP'
173
173
  { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
174
174
  { "startIndex": 16, "endIndex": 33, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "storage.data.table.abl"] }, // 'hist-trn.h-status'
@@ -149,7 +149,7 @@ describe('', () => {
149
149
  let statement = `if string(1) = "1" then .`;
150
150
  let expectedTokens = [
151
151
  { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "keyword.other.abl"] }, // 'if'
152
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
152
+ { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
153
153
  { "startIndex": 3, "endIndex": 9, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'string'
154
154
  { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
155
155
  { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "constant.numeric.source.abl"] }, // '1'
@@ -233,7 +233,7 @@ describe('', () => {
233
233
  { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
234
234
  { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl"] }, // ' '
235
235
  { "startIndex": 22, "endIndex": 24, "scopes": ["source.abl", "keyword.other.abl"] }, // 'IF'
236
- { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl"] }, // ' '
236
+ { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
237
237
  { "startIndex": 25, "endIndex": 37, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'VALID-HANDLE'
238
238
  { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
239
239
  { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl"] }, // ' '
@@ -252,7 +252,7 @@ describe('', () => {
252
252
  { "startIndex": 22, "endIndex": 26, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ELSE'
253
253
  { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl"] }, // ' '
254
254
  { "startIndex": 27, "endIndex": 29, "scopes": ["source.abl", "keyword.other.abl"] }, // 'IF'
255
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl"] }, // ' '
255
+ { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
256
256
  { "startIndex": 30, "endIndex": 42, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'VALID-HANDLE'
257
257
  { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
258
258
  { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl"] }, // ' '
@@ -326,4 +326,38 @@ describe('', () => {
326
326
  ]
327
327
  ];
328
328
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
329
+ })
330
+
331
+ describe('', () => {
332
+ let statement = `assign cFormattedString = cFormattedString + cChar
333
+ iFormattedLength = iFormattedLength + 1.`;
334
+ let expectedTokens = [
335
+ [
336
+ { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'assign'
337
+ { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
338
+ { "startIndex": 7, "endIndex": 23, "scopes": ["source.abl", "variable.other.abl"] }, // 'cFormattedString'
339
+ { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl"] }, // ' '
340
+ { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
341
+ { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl"] }, // ' '
342
+ { "startIndex": 26, "endIndex": 42, "scopes": ["source.abl", "variable.other.abl"] }, // 'cFormattedString'
343
+ { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl"] }, // ' '
344
+ { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '+'
345
+ { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl"] }, // ' '
346
+ { "startIndex": 45, "endIndex": 50, "scopes": ["source.abl", "variable.other.abl"] } // 'cChar'
347
+ ],
348
+ [
349
+ { "startIndex": 0, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
350
+ { "startIndex": 7, "endIndex": 23, "scopes": ["source.abl", "variable.other.abl"] }, // 'iFormattedLength'
351
+ { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl"] }, // ' '
352
+ { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '='
353
+ { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl"] }, // ' '
354
+ { "startIndex": 26, "endIndex": 42, "scopes": ["source.abl", "variable.other.abl"] }, // 'iFormattedLength'
355
+ { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl"] }, // ' '
356
+ { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // '+'
357
+ { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl"] }, // ' '
358
+ { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "constant.numeric.source.abl"] }, // '1'
359
+ { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
360
+ ]
361
+ ];
362
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
329
363
  })
@@ -59,11 +59,11 @@ describe('', () => {
59
59
  { "startIndex": 3, "endIndex": 7, "scopes": ["source.abl", "keyword.other.abl"] }, // 'else'
60
60
  { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
61
61
  { "startIndex": 8, "endIndex": 10, "scopes": ["source.abl", "keyword.other.abl"] }, // 'if'
62
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl"] }, // ' '
63
- { "startIndex": 11, "endIndex": 20, "scopes": ["source.abl", "support.function.abl"] }, // 'ambiguous'
64
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.brace.round.js"] }, // '('
65
- { "startIndex": 21, "endIndex": 34, "scopes": ["source.abl", "support.data.table.abl"] }, // 's2k.bCustomer'
66
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
62
+ { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
63
+ { "startIndex": 11, "endIndex": 20, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'ambiguous'
64
+ { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
65
+ { "startIndex": 21, "endIndex": 34, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "storage.data.table.abl"] }, // 's2k.bCustomer'
66
+ { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
67
67
  { "startIndex": 35, "endIndex": 36, "scopes": ["source.abl"] }, // ' '
68
68
  { "startIndex": 36, "endIndex": 40, "scopes": ["source.abl", "keyword.other.abl"] }, // 'then'
69
69
  { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
@@ -98,11 +98,11 @@ else if Not v_string matches "bar" then .`;
98
98
  { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "keyword.other.abl"] }, // 'else'
99
99
  { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl"] }, // ' '
100
100
  { "startIndex": 5, "endIndex": 7, "scopes": ["source.abl", "keyword.other.abl"] }, // 'if'
101
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
102
- { "startIndex": 8, "endIndex": 11, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // 'NOT'
103
- { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.brace.round.js"] }, // '('
104
- { "startIndex": 12, "endIndex": 23, "scopes": ["source.abl", "variable.other.abl"] }, // 'v_condition'
105
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
101
+ { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
102
+ { "startIndex": 8, "endIndex": 11, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'NOT'
103
+ { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
104
+ { "startIndex": 12, "endIndex": 23, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'v_condition'
105
+ { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
106
106
  { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl"] }, // ' '
107
107
  { "startIndex": 25, "endIndex": 29, "scopes": ["source.abl", "keyword.other.abl"] }, // 'then'
108
108
  { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl"] }, // ' '
@@ -9,7 +9,7 @@ describe('', () => {
9
9
  let expectedTokens = [
10
10
  [
11
11
  { "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "keyword.other.abl"] }, // 'if'
12
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
12
+ { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.function-call.abl"] }, // ' '
13
13
  { "startIndex": 3, "endIndex": 15, "scopes": ["source.abl", "meta.function-call.abl", "support.function.abl"] }, // 'valid-object'
14
14
  { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
15
15
  { "startIndex": 16, "endIndex": 26, "scopes": ["source.abl", "meta.function-call.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'oEventArgs'