abl-tmlanguage 1.3.18 → 1.3.19

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.
@@ -870,7 +870,7 @@
870
870
  },
871
871
  "using": {
872
872
  "name": "meta.using.abl",
873
- "begin": "(?i)\\s*(using)\\s*",
873
+ "begin": "\\s*([Uu][Ss][Ii][Nn][Gg])\\s*",
874
874
  "beginCaptures": {
875
875
  "1": {
876
876
  "name": "keyword.other.abl"
@@ -893,7 +893,7 @@
893
893
  }
894
894
  },
895
895
  {
896
- "match": "(?i)\\s*(from|propath|assembly)\\s*",
896
+ "match": "\\s*([Ff][Rr][Oo][Mm]|[Pp][Rr][Oo][Pp][Aa][Tt][Hh]|[Aa][Ss][Ss][Ee][Mm][Bb][Ll][Yy])\\s*",
897
897
  "captures": {
898
898
  "1": {
899
899
  "name": "keyword.other.abl"
@@ -902,6 +902,9 @@
902
902
  },
903
903
  {
904
904
  "include": "#type-name"
905
+ },
906
+ {
907
+ "include": "#comment"
905
908
  }
906
909
  ]
907
910
  },
@@ -974,7 +977,7 @@
974
977
  },
975
978
  "patterns": [
976
979
  {
977
- "match": "(?i)\\s*(serializable|abstract|final|use-widget-pool|inherits|implements)\\s*",
980
+ "match": "(?i)\\b(serializable|abstract|final|use-widget-pool|inherits|implements)\\b",
978
981
  "captures": {
979
982
  "1": {
980
983
  "name": "keyword.other.abl"
@@ -2345,7 +2348,7 @@
2345
2348
  },
2346
2349
  "create-buffer": {
2347
2350
  "comment": "https://docs.progress.com/bundle/abl-reference/page/CREATE-BUFFER-statement.html",
2348
- "begin": "(?i)(create)\\s+(buffer)\\b",
2351
+ "begin": "\\s*([Cc][Rr][Ee][Aa][Tt][Ee])\\s+([Bb][Uu][Ff][Ff][Ee][Rr])\\b",
2349
2352
  "beginCaptures": {
2350
2353
  "1": {
2351
2354
  "name": "keyword.other.abl"
@@ -2354,7 +2357,7 @@
2354
2357
  "name": "keyword.other.abl"
2355
2358
  }
2356
2359
  },
2357
- "end": "(?i)(\\b((buffer-n(?:ame|am|a)?)|in)\\b)|(?=\\.)",
2360
+ "end": "(?i)(((buffer-n(?:ame|am|a)?)|in)\\b)|(?=\\.)",
2358
2361
  "endCaptures": {
2359
2362
  "1": {
2360
2363
  "name": "keyword.other.abl"
@@ -2362,7 +2365,7 @@
2362
2365
  },
2363
2366
  "patterns": [
2364
2367
  {
2365
- "match": "(?i)\\s*(for|table)\\s*",
2368
+ "match": "(?i)\\s*(for|table|no-error)\\s*",
2366
2369
  "captures": {
2367
2370
  "1": {
2368
2371
  "name": "keyword.other.abl"
@@ -2381,15 +2384,15 @@
2381
2384
  {
2382
2385
  "include": "#expression"
2383
2386
  },
2384
- {
2385
- "include": "#keywords"
2386
- },
2387
2387
  {
2388
2388
  "include": "#string"
2389
2389
  },
2390
2390
  {
2391
2391
  "include": "#comment"
2392
2392
  },
2393
+ {
2394
+ "include": "#preprocessor-reference"
2395
+ },
2393
2396
  {
2394
2397
  "include": "#handle-attributes"
2395
2398
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abl-tmlanguage",
3
- "version": "1.3.18",
3
+ "version": "1.3.19",
4
4
  "description": "TextMate grammar for Progress OpenEdge ABL Language",
5
5
  "main": "",
6
6
  "type": "commonjs",
@@ -108,3 +108,48 @@ describe('', () => {
108
108
  ];
109
109
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
110
110
  })
111
+
112
+ describe('', () => {
113
+ let statement = `create buffer vBufferHandle for table vTableName no-error.
114
+
115
+ create buffer vBufferHandle for table vTableName no-error.`;
116
+ let expectedTokens = [
117
+ [
118
+ { "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'create'
119
+ { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
120
+ { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "keyword.other.abl"] }, // 'buffer'
121
+ { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl"] }, // ' '
122
+ { "startIndex": 14, "endIndex": 27, "scopes": ["source.abl", "variable.other.abl"] }, // 'vBufferHandle'
123
+ { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl"] }, // ' '
124
+ { "startIndex": 28, "endIndex": 31, "scopes": ["source.abl", "keyword.other.abl"] }, // 'for'
125
+ { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl"] }, // ' '
126
+ { "startIndex": 32, "endIndex": 37, "scopes": ["source.abl", "keyword.other.abl"] }, // 'table'
127
+ { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl"] }, // ' '
128
+ { "startIndex": 38, "endIndex": 48, "scopes": ["source.abl", "variable.other.abl"] }, // 'vTableName'
129
+ { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl"] }, // ' '
130
+ { "startIndex": 49, "endIndex": 57, "scopes": ["source.abl", "keyword.other.abl"] }, // 'no-error'
131
+ { "startIndex": 57, "endIndex": 58, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
132
+ ],
133
+ [
134
+ { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl"] } // ''
135
+ ],
136
+ [
137
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
138
+ { "startIndex": 4, "endIndex": 10, "scopes": ["source.abl", "keyword.other.abl"] }, // 'create'
139
+ { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl"] }, // ' '
140
+ { "startIndex": 11, "endIndex": 17, "scopes": ["source.abl", "keyword.other.abl"] }, // 'buffer'
141
+ { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl"] }, // ' '
142
+ { "startIndex": 18, "endIndex": 31, "scopes": ["source.abl", "variable.other.abl"] }, // 'vBufferHandle'
143
+ { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl"] }, // ' '
144
+ { "startIndex": 32, "endIndex": 35, "scopes": ["source.abl", "keyword.other.abl"] }, // 'for'
145
+ { "startIndex": 35, "endIndex": 36, "scopes": ["source.abl"] }, // ' '
146
+ { "startIndex": 36, "endIndex": 41, "scopes": ["source.abl", "keyword.other.abl"] }, // 'table'
147
+ { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl"] }, // ' '
148
+ { "startIndex": 42, "endIndex": 52, "scopes": ["source.abl", "variable.other.abl"] }, // 'vTableName'
149
+ { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl"] }, // ' '
150
+ { "startIndex": 53, "endIndex": 61, "scopes": ["source.abl", "keyword.other.abl"] }, // 'no-error'
151
+ { "startIndex": 61, "endIndex": 62, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
152
+ ]
153
+ ];
154
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
155
+ })
@@ -141,7 +141,7 @@ describe('', () => {
141
141
  })
142
142
 
143
143
  describe('', () => {
144
- let statement = `CLASS foo.bar.baz serializable inherits parent.class implements one.interface,anotehr.iface abstract use-widget-pool:`;
144
+ let statement = `CLASS foo.bar.baz serializable inherits parent.class implements one.interface,another.iface abstract use-widget-pool:`;
145
145
 
146
146
  let expectedTokens = [
147
147
  { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'CLASS'
@@ -158,7 +158,7 @@ describe('', () => {
158
158
  { "startIndex": 63, "endIndex": 64, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
159
159
  { "startIndex": 64, "endIndex": 77, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'one.interface'
160
160
  { "startIndex": 77, "endIndex": 78, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.separator.comma.abl"] }, // ','
161
- { "startIndex": 78, "endIndex": 91, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'anotehr.iface'
161
+ { "startIndex": 78, "endIndex": 91, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'another.iface'
162
162
  { "startIndex": 91, "endIndex": 92, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
163
163
  { "startIndex": 92, "endIndex": 100, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'abstract'
164
164
  { "startIndex": 100, "endIndex": 101, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
@@ -466,3 +466,90 @@ describe('', () => {
466
466
  ];
467
467
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
468
468
  })
469
+
470
+ describe('', () => {
471
+ let statement = `class Company.Plugins.ServerPlugin
472
+ inherits AbstractPlugin
473
+ implements IServerPlugin :`;
474
+
475
+ let expectedTokens = [
476
+ [
477
+ { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'class'
478
+ { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
479
+ { "startIndex": 6, "endIndex": 34, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'Company.Plugins.ServerPlugin'
480
+ ],
481
+ [
482
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
483
+ { "startIndex": 4, "endIndex": 12, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'inherits'
484
+ { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
485
+ { "startIndex": 13, "endIndex": 27, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'AbstractPlugin'
486
+ ],
487
+ [
488
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
489
+ { "startIndex": 4, "endIndex": 14, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'implements'
490
+ { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
491
+ { "startIndex": 15, "endIndex": 28, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'IServerPlugin'
492
+ { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
493
+ { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
494
+ ]
495
+ ];
496
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
497
+ })
498
+
499
+ describe('', () => {
500
+ let statement = `class Company.Plugins.ServerPlugin
501
+ inherits FinalAbstractPlugin
502
+ implements IServerPlugin :`;
503
+
504
+ let expectedTokens = [
505
+ [
506
+ { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'class'
507
+ { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
508
+ { "startIndex": 6, "endIndex": 34, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'Company.Plugins.ServerPlugin'
509
+ ],
510
+ [
511
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
512
+ { "startIndex": 4, "endIndex": 12, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'inherits'
513
+ { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
514
+ { "startIndex": 13, "endIndex": 32, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'FinalAbstractPlugin'
515
+ ],
516
+ [
517
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
518
+ { "startIndex": 4, "endIndex": 14, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'implements'
519
+ { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
520
+ { "startIndex": 15, "endIndex": 28, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'IServerPlugin'
521
+ { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
522
+ { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
523
+ ]
524
+ ];
525
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
526
+ })
527
+
528
+ describe('', () => {
529
+ let statement = `class Company.Plugins.ServerPlugin
530
+ inherits FinalAbstractPlugin
531
+ implements AbstractServerPlugin :`;
532
+
533
+ let expectedTokens = [
534
+ [
535
+ { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'class'
536
+ { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
537
+ { "startIndex": 6, "endIndex": 34, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'Company.Plugins.ServerPlugin'
538
+ ],
539
+ [
540
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
541
+ { "startIndex": 4, "endIndex": 12, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'inherits'
542
+ { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
543
+ { "startIndex": 13, "endIndex": 32, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] } // 'FinalAbstractPlugin'
544
+ ],
545
+ [
546
+ { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
547
+ { "startIndex": 4, "endIndex": 14, "scopes": ["source.abl", "meta.define.class.abl", "keyword.other.abl"] }, // 'implements'
548
+ { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
549
+ { "startIndex": 15, "endIndex": 35, "scopes": ["source.abl", "meta.define.class.abl", "entity.name.type.abl"] }, // 'AbstractServerPlugin'
550
+ { "startIndex": 35, "endIndex": 36, "scopes": ["source.abl", "meta.define.class.abl"] }, // ' '
551
+ { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.define.class.abl", "punctuation.terminator.abl"] } // ':'
552
+ ]
553
+ ];
554
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
555
+ })
@@ -126,3 +126,35 @@ describe('', () => {
126
126
  ];
127
127
  shared.itShouldMatchExpectedScopes(statement, expectedTokens);
128
128
  })
129
+
130
+ describe('', () => {
131
+ let statement = `using foo.bar.* /*from propath*/.`;
132
+
133
+ let expectedTokens = [
134
+ { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.using.abl", "keyword.other.abl"] }, // 'using'
135
+ { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.using.abl"] }, // ' '
136
+ { "startIndex": 6, "endIndex": 13, "scopes": ["source.abl", "meta.using.abl", "entity.name.package.abl"] }, // 'foo.bar'
137
+ { "startIndex": 13, "endIndex": 17, "scopes": ["source.abl", "meta.using.abl"] }, // '.* '
138
+ { "startIndex": 17, "endIndex": 19, "scopes": ["source.abl", "meta.using.abl", "comment.block.source.abl"] }, // '/*'
139
+ { "startIndex": 19, "endIndex": 31, "scopes": ["source.abl", "meta.using.abl", "comment.block.source.abl", "comment"] }, // 'from propath'
140
+ { "startIndex": 31, "endIndex": 33, "scopes": ["source.abl", "meta.using.abl", "comment.block.source.abl"] }, // '*/'
141
+ { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.using.abl", "punctuation.terminator.abl"] } // '.'
142
+ ];
143
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
144
+ })
145
+
146
+ describe('', () => {
147
+ let statement = `using foo.bar.baz /*from propath*/.`;
148
+
149
+ let expectedTokens = [
150
+ { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl", "meta.using.abl", "keyword.other.abl"] }, // 'using'
151
+ { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.using.abl"] }, // ' '
152
+ { "startIndex": 6, "endIndex": 17, "scopes": ["source.abl", "meta.using.abl", "entity.name.type.abl"] }, // 'foo.bar.baz'
153
+ { "startIndex": 17, "endIndex": 19, "scopes": ["source.abl", "meta.using.abl"] }, // ' '
154
+ { "startIndex": 19, "endIndex": 21, "scopes": ["source.abl", "meta.using.abl", "comment.block.source.abl"] }, // '/*'
155
+ { "startIndex": 21, "endIndex": 33, "scopes": ["source.abl", "meta.using.abl", "comment.block.source.abl", "comment"] }, // 'from propath'
156
+ { "startIndex": 33, "endIndex": 35, "scopes": ["source.abl", "meta.using.abl", "comment.block.source.abl"] }, // '*/'
157
+ { "startIndex": 35, "endIndex": 36, "scopes": ["source.abl", "meta.using.abl", "punctuation.terminator.abl"] } // '.'
158
+ ];
159
+ shared.itShouldMatchExpectedScopes(statement, expectedTokens);
160
+ })