github-linguist 7.1.3 → 7.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +5 -5
  2. data/grammars/annotation.liquidhaskell.haskell.json +119 -4
  3. data/grammars/etc.json +148 -0
  4. data/grammars/hint.haskell.json +119 -4
  5. data/grammars/hint.message.haskell.json +119 -4
  6. data/grammars/hint.type.haskell.json +119 -4
  7. data/grammars/injections.etc.json +21 -0
  8. data/grammars/source.abap.json +2 -2
  9. data/grammars/source.ats.json +87 -17
  10. data/grammars/source.ballerina.json +236 -313
  11. data/grammars/source.batchfile.json +1 -1
  12. data/grammars/source.bdf.json +14 -8
  13. data/grammars/source.changelogs.rpm-spec.json +3 -3
  14. data/grammars/source.chapel.json +1 -1
  15. data/grammars/source.coffee.json +98 -0
  16. data/grammars/source.csound-document.json +26 -124
  17. data/grammars/source.curlrc.json +180 -0
  18. data/grammars/source.dart.json +5 -2
  19. data/grammars/source.elixir.json +20 -25
  20. data/grammars/source.emacs.lisp.json +23 -1
  21. data/grammars/source.gdb.json +1 -1
  22. data/grammars/source.gitattributes.json +111 -0
  23. data/grammars/source.gitconfig.json +450 -0
  24. data/grammars/source.gitignore.json +140 -0
  25. data/grammars/source.graphql.json +18 -0
  26. data/grammars/source.haproxy-config.json +10 -10
  27. data/grammars/source.haskell.json +119 -4
  28. data/grammars/source.hgignore.json +34 -0
  29. data/grammars/source.hsig.json +119 -4
  30. data/grammars/source.hx.json +2 -2
  31. data/grammars/source.jison.json +1 -1
  32. data/grammars/source.ltspice.symbol.json +294 -0
  33. data/grammars/source.m4.json +187 -0
  34. data/grammars/source.man-conf.json +141 -0
  35. data/grammars/source.nanorc.json +330 -0
  36. data/grammars/source.nim.comment.json +82 -0
  37. data/grammars/source.nim.json +1 -57
  38. data/grammars/source.nix.json +2 -2
  39. data/grammars/source.opts.json +98 -0
  40. data/grammars/source.reason.json +13 -0
  41. data/grammars/source.rust.json +35 -0
  42. data/grammars/source.terraform.json +4 -1
  43. data/grammars/source.ts.json +307 -39
  44. data/grammars/source.tsx.json +290 -37
  45. data/grammars/source.zig.json +286 -0
  46. data/grammars/text.html.basic.json +1 -1
  47. data/grammars/text.marko.json +61 -9
  48. data/grammars/text.tex.latex.haskell.json +119 -4
  49. data/grammars/text.zone_file.json +2 -2
  50. data/grammars/version +1 -1
  51. data/lib/linguist/VERSION +1 -1
  52. data/lib/linguist/generated.rb +0 -8
  53. data/lib/linguist/heuristics.yml +30 -3
  54. data/lib/linguist/languages.json +1 -1
  55. data/lib/linguist/languages.yml +143 -3
  56. data/lib/linguist/samples.json +4494 -646
  57. data/lib/linguist/vendor.yml +1 -2
  58. metadata +31 -4
  59. data/grammars/source.solidity.json +0 -189
@@ -282,6 +282,9 @@
282
282
  {
283
283
  "include": "#deriving"
284
284
  },
285
+ {
286
+ "include": "#via"
287
+ },
285
288
  {
286
289
  "include": "#assignment_op"
287
290
  },
@@ -380,7 +383,7 @@
380
383
  {
381
384
  "name": "meta.declaration.instance.deriving.haskell",
382
385
  "contentName": "meta.type-signature.haskell",
383
- "begin": "^([ \\t]*)(deriving\\s+instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
386
+ "begin": "^([ \\t]*)(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s+(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
384
387
  "end": "^(?!\\1[ \\t]|[ \\t]*$)",
385
388
  "patterns": [
386
389
  {
@@ -388,11 +391,24 @@
388
391
  },
389
392
  {
390
393
  "include": "#type_signature"
394
+ },
395
+ {
396
+ "include": "#deriving_via"
391
397
  }
392
398
  ],
393
399
  "beginCaptures": {
394
400
  "2": {
395
401
  "name": "keyword.other.haskell"
402
+ },
403
+ "3": {
404
+ "patterns": [
405
+ {
406
+ "include": "#deriving_strategies"
407
+ }
408
+ ]
409
+ },
410
+ "4": {
411
+ "name": "keyword.other.haskell"
396
412
  }
397
413
  }
398
414
  }
@@ -402,10 +418,17 @@
402
418
  "patterns": [
403
419
  {
404
420
  "name": "meta.deriving.haskell",
405
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(deriving)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
421
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
406
422
  "captures": {
407
423
  "1": {
408
424
  "name": "keyword.other.haskell"
425
+ },
426
+ "2": {
427
+ "patterns": [
428
+ {
429
+ "include": "#deriving_strategies"
430
+ }
431
+ ]
409
432
  }
410
433
  }
411
434
  }
@@ -415,7 +438,7 @@
415
438
  "patterns": [
416
439
  {
417
440
  "name": "meta.deriving.haskell",
418
- "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(deriving)\\s*\\(",
441
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*\\(",
419
442
  "end": "\\)",
420
443
  "patterns": [
421
444
  {
@@ -430,6 +453,13 @@
430
453
  "beginCaptures": {
431
454
  "1": {
432
455
  "name": "keyword.other.haskell"
456
+ },
457
+ "2": {
458
+ "patterns": [
459
+ {
460
+ "include": "#deriving_strategies"
461
+ }
462
+ ]
433
463
  }
434
464
  }
435
465
  }
@@ -439,18 +469,38 @@
439
469
  "patterns": [
440
470
  {
441
471
  "name": "meta.deriving.haskell",
442
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(deriving)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
472
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
443
473
  "captures": {
444
474
  "1": {
445
475
  "name": "keyword.other.haskell"
446
476
  },
447
477
  "2": {
478
+ "patterns": [
479
+ {
480
+ "include": "#deriving_strategies"
481
+ }
482
+ ]
483
+ },
484
+ "3": {
448
485
  "name": "entity.other.inherited-class.haskell"
449
486
  }
450
487
  }
451
488
  }
452
489
  ]
453
490
  },
491
+ "deriving_strategies": {
492
+ "patterns": [
493
+ {
494
+ "name": "meta.deriving.strategy.haskell",
495
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(stock|newtype|anyclass)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
496
+ "captures": {
497
+ "1": {
498
+ "name": "keyword.other.haskell"
499
+ }
500
+ }
501
+ }
502
+ ]
503
+ },
454
504
  "double_colon_operator": {
455
505
  "patterns": [
456
506
  {
@@ -1503,6 +1553,71 @@
1503
1553
  }
1504
1554
  ]
1505
1555
  },
1556
+ "via": {
1557
+ "patterns": [
1558
+ {
1559
+ "include": "#via_list"
1560
+ },
1561
+ {
1562
+ "include": "#via_simple"
1563
+ },
1564
+ {
1565
+ "include": "#via_keyword"
1566
+ }
1567
+ ]
1568
+ },
1569
+ "via_keyword": {
1570
+ "patterns": [
1571
+ {
1572
+ "name": "meta.via.haskell",
1573
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
1574
+ "captures": {
1575
+ "1": {
1576
+ "name": "keyword.other.haskell"
1577
+ }
1578
+ }
1579
+ }
1580
+ ]
1581
+ },
1582
+ "via_list": {
1583
+ "patterns": [
1584
+ {
1585
+ "name": "meta.via.haskell",
1586
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*\\(",
1587
+ "end": "\\)",
1588
+ "patterns": [
1589
+ {
1590
+ "include": "#type_signature"
1591
+ }
1592
+ ],
1593
+ "beginCaptures": {
1594
+ "1": {
1595
+ "name": "keyword.other.haskell"
1596
+ }
1597
+ }
1598
+ }
1599
+ ]
1600
+ },
1601
+ "via_simple": {
1602
+ "patterns": [
1603
+ {
1604
+ "name": "meta.via.haskell",
1605
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
1606
+ "captures": {
1607
+ "1": {
1608
+ "name": "keyword.other.haskell"
1609
+ },
1610
+ "2": {
1611
+ "patterns": [
1612
+ {
1613
+ "include": "#type_signature"
1614
+ }
1615
+ ]
1616
+ }
1617
+ }
1618
+ }
1619
+ ]
1620
+ },
1506
1621
  "where": {
1507
1622
  "patterns": [
1508
1623
  {
@@ -255,6 +255,9 @@
255
255
  {
256
256
  "include": "#deriving"
257
257
  },
258
+ {
259
+ "include": "#via"
260
+ },
258
261
  {
259
262
  "include": "#assignment_op"
260
263
  },
@@ -353,7 +356,7 @@
353
356
  {
354
357
  "name": "meta.declaration.instance.deriving.haskell",
355
358
  "contentName": "meta.type-signature.haskell",
356
- "begin": "^([ \\t]*)(deriving\\s+instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
359
+ "begin": "^([ \\t]*)(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s+(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
357
360
  "end": "^(?!\\1[ \\t]|[ \\t]*$)",
358
361
  "patterns": [
359
362
  {
@@ -361,11 +364,24 @@
361
364
  },
362
365
  {
363
366
  "include": "#type_signature"
367
+ },
368
+ {
369
+ "include": "#deriving_via"
364
370
  }
365
371
  ],
366
372
  "beginCaptures": {
367
373
  "2": {
368
374
  "name": "keyword.other.haskell"
375
+ },
376
+ "3": {
377
+ "patterns": [
378
+ {
379
+ "include": "#deriving_strategies"
380
+ }
381
+ ]
382
+ },
383
+ "4": {
384
+ "name": "keyword.other.haskell"
369
385
  }
370
386
  }
371
387
  }
@@ -375,10 +391,17 @@
375
391
  "patterns": [
376
392
  {
377
393
  "name": "meta.deriving.haskell",
378
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(deriving)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
394
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
379
395
  "captures": {
380
396
  "1": {
381
397
  "name": "keyword.other.haskell"
398
+ },
399
+ "2": {
400
+ "patterns": [
401
+ {
402
+ "include": "#deriving_strategies"
403
+ }
404
+ ]
382
405
  }
383
406
  }
384
407
  }
@@ -388,7 +411,7 @@
388
411
  "patterns": [
389
412
  {
390
413
  "name": "meta.deriving.haskell",
391
- "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(deriving)\\s*\\(",
414
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*\\(",
392
415
  "end": "\\)",
393
416
  "patterns": [
394
417
  {
@@ -403,6 +426,13 @@
403
426
  "beginCaptures": {
404
427
  "1": {
405
428
  "name": "keyword.other.haskell"
429
+ },
430
+ "2": {
431
+ "patterns": [
432
+ {
433
+ "include": "#deriving_strategies"
434
+ }
435
+ ]
406
436
  }
407
437
  }
408
438
  }
@@ -412,18 +442,38 @@
412
442
  "patterns": [
413
443
  {
414
444
  "name": "meta.deriving.haskell",
415
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(deriving)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
445
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
416
446
  "captures": {
417
447
  "1": {
418
448
  "name": "keyword.other.haskell"
419
449
  },
420
450
  "2": {
451
+ "patterns": [
452
+ {
453
+ "include": "#deriving_strategies"
454
+ }
455
+ ]
456
+ },
457
+ "3": {
421
458
  "name": "entity.other.inherited-class.haskell"
422
459
  }
423
460
  }
424
461
  }
425
462
  ]
426
463
  },
464
+ "deriving_strategies": {
465
+ "patterns": [
466
+ {
467
+ "name": "meta.deriving.strategy.haskell",
468
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(stock|newtype|anyclass)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
469
+ "captures": {
470
+ "1": {
471
+ "name": "keyword.other.haskell"
472
+ }
473
+ }
474
+ }
475
+ ]
476
+ },
427
477
  "double_colon_operator": {
428
478
  "patterns": [
429
479
  {
@@ -1476,6 +1526,71 @@
1476
1526
  }
1477
1527
  ]
1478
1528
  },
1529
+ "via": {
1530
+ "patterns": [
1531
+ {
1532
+ "include": "#via_list"
1533
+ },
1534
+ {
1535
+ "include": "#via_simple"
1536
+ },
1537
+ {
1538
+ "include": "#via_keyword"
1539
+ }
1540
+ ]
1541
+ },
1542
+ "via_keyword": {
1543
+ "patterns": [
1544
+ {
1545
+ "name": "meta.via.haskell",
1546
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
1547
+ "captures": {
1548
+ "1": {
1549
+ "name": "keyword.other.haskell"
1550
+ }
1551
+ }
1552
+ }
1553
+ ]
1554
+ },
1555
+ "via_list": {
1556
+ "patterns": [
1557
+ {
1558
+ "name": "meta.via.haskell",
1559
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*\\(",
1560
+ "end": "\\)",
1561
+ "patterns": [
1562
+ {
1563
+ "include": "#type_signature"
1564
+ }
1565
+ ],
1566
+ "beginCaptures": {
1567
+ "1": {
1568
+ "name": "keyword.other.haskell"
1569
+ }
1570
+ }
1571
+ }
1572
+ ]
1573
+ },
1574
+ "via_simple": {
1575
+ "patterns": [
1576
+ {
1577
+ "name": "meta.via.haskell",
1578
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
1579
+ "captures": {
1580
+ "1": {
1581
+ "name": "keyword.other.haskell"
1582
+ },
1583
+ "2": {
1584
+ "patterns": [
1585
+ {
1586
+ "include": "#type_signature"
1587
+ }
1588
+ ]
1589
+ }
1590
+ }
1591
+ }
1592
+ ]
1593
+ },
1479
1594
  "where": {
1480
1595
  "patterns": [
1481
1596
  {
@@ -0,0 +1,21 @@
1
+ {
2
+ "scopeName": "injections.etc",
3
+ "patterns": [
4
+ {
5
+ "name": "meta.embedded.source.diff",
6
+ "begin": "(?\u003c=__END__)(?=\\s|$)",
7
+ "end": "(?=^(?!diff ))",
8
+ "patterns": [
9
+ {
10
+ "begin": "^(?=diff )",
11
+ "end": "(?=A)B",
12
+ "patterns": [
13
+ {
14
+ "include": "source.diff"
15
+ }
16
+ ]
17
+ }
18
+ ]
19
+ }
20
+ ]
21
+ }
@@ -81,7 +81,7 @@
81
81
  },
82
82
  {
83
83
  "name": "meta.block.begin.implementation.abap",
84
- "begin": "(?i)^\\s*(class|method|form)\\s([a-z_][a-z_0-9]*)",
84
+ "begin": "(?i)^\\s*(class|method|form)\\s([a-z_/][a-z_0-9/]*)",
85
85
  "end": "\\s*\\.\\s*\\n?",
86
86
  "patterns": [
87
87
  {
@@ -179,7 +179,7 @@
179
179
  },
180
180
  "main_keywords": {
181
181
  "name": "keyword.control.simple.abap",
182
- "match": "(?ix)(?\u003c=^|\\s)(\n\t abstract|add|add-corresponding|adjacent|alias|aliases|all|append|appending|ascending|as|assert|assign|assigned|assigning|authority-check|\n\t back|begin|binary|bound|break-point|by|byte|\n\t call|cast|changing|check|class-data|class-method|class-methods|clear|close|cnt|collect|commit|character|\n\t corresponding|communication|component|compute|concatenate|condense|constants|conv|count|\n\t controls|convert|create|currency|\n\t data|descending|default|define|deferred|delete|describe|detail|display|divide|divide-corresponding|display-mode|duplicates|\n\t deleting|\n\t editor-call|end|endexec|endfunction|ending|endinterface|endmodule|end-of-definition|end-of-page|end-of-selection|end-test-injection|end-test-seam|\n\t endprovide|endselect|endtry|endwhile|enum|event|events|exec|exit|export|\n\t exporting|extract|exception|exceptions|\n\t field-symbols|field-groups|first|fetch|fields|format|free|from|function|find|for|function-pool|\n\t generate|get|\n\t handle|hide|\n\t import|importing|index|infotypes|initial|initialization|\n\t id|is|in|interface|interfaces|input|insert|into|\n\t\t\tkey|\n\t left-justified|leave|like|line|line-count|line-size|load|local|length|left|leading|lower|\n\t method|message|message-id|methods|modify|module|move|move-corresponding|multiply|multiply-corresponding|match|\n\t\t\tnew|new-line|new-page|new-section|no|no-gap|no-sign|no-zero|non-unique|number|\n\t occurrence|object|obligatory|of|overlay|optional|others|occurrences|occurs|offset|\n\t pack|parameters|perform|places|position|print-control|private|program|protected|provide|public|put|\n\t radiobutton|raising|ranges|receive|receiving|redefinition|reference|refresh|regex|reject|results|requested|\n\t ref|replace|report|reserve|restore|return|returning|right-justified|rollback|read|read-only|rp-provide-from-last|\n\t scan|screen|scroll|search|select|select-options|selection-screen|\n\t separated|set|shift|single|skip|sort|sorted|split|standard|starting|start-of-selection|sum|subtract-corresponding|statics|step|stop|structure|submatches|submit|subtract|summary|supplied|suppress|section|syntax-check|syntax-trace|system-call|\n\t tables|table|testing|test-seam|test-injection|then|times|titlebar|to|top-of-page|trailing|transfer|transformation|translate|transporting|types|type|type-pool|type-pools|\n\t unassign|unique|uline|unpack|update|upper|using|\n\t value|\n\t when|while|window|write|where|with|work\n\t\t\t )(?=\\s|\\.|:)"
182
+ "match": "(?ix)(?\u003c=^|\\s)(\n\t abstract|add|add-corresponding|adjacent|alias|aliases|all|append|appending|ascending|as|assert|assign|assigned|assigning|association|authority-check|\n\t back|begin|binary|block|bound|break-point|by|byte|\n\t call|cast|changing|check|class-data|class-method|class-methods|clear|close|cnt|collect|commit|character|\n\t corresponding|communication|component|compute|concatenate|condense|constants|conv|count|\n\t controls|convert|create|currency|\n\t data|descending|default|define|deferred|delete|describe|detail|display|divide|divide-corresponding|display-mode|duplicates|\n\t deleting|\n\t editor-call|end|endexec|endfunction|ending|endinterface|endmodule|end-of-definition|end-of-page|end-of-selection|end-test-injection|end-test-seam|exit-command|\n\t endprovide|endselect|endtry|endwhile|enum|event|events|exec|exit|export|\n\t exporting|extract|exception|exceptions|\n\t field-symbols|field-groups|field|first|fetch|fields|format|frame|free|from|function|find|for|function-pool|\n\t generate|get|\n\t handle|hide|hashed|\n\t import|importing|index|infotypes|initial|initialization|\n\t id|is|in|interface|interfaces|input|insert|into|\n\t\t\tkey|\n\t left-justified|leave|like|line|line-count|line-size|load|local|log-point|length|left|leading|lower|\n\t matchcode|method|mesh|message|message-id|methods|modify|module|move|move-corresponding|multiply|multiply-corresponding|match|\n\t\t\tnew|new-line|new-page|new-section|no|no-gap|no-sign|no-zero|non-unique|number|\n\t occurrence|object|obligatory|of|overlay|optional|others|occurrences|occurs|offset|options|\n\t pack|parameters|perform|places|position|print-control|private|program|protected|provide|public|put|\n\t radiobutton|raising|ranges|receive|receiving|redefinition|reference|refresh|regex|reject|results|requested|\n\t ref|replace|report|reserve|restore|result|return|returning|right-justified|rollback|read|read-only|rp-provide-from-last|run|\n\t scan|screen|scroll|search|select|select-options|selection-screen|stamp|source|subkey|\n\t separated|set|shift|single|skip|sort|sorted|split|standard|stamp|starting|start-of-selection|sum|subtract-corresponding|statics|step|stop|structure|submatches|submit|subtract|summary|supplied|suppress|section|syntax-check|syntax-trace|system-call|\n\t tables|table|task|testing|test-seam|test-injection|then|time|times|title|titlebar|to|top-of-page|trailing|transfer|transformation|translate|transporting|types|type|type-pool|type-pools|\n\t unassign|unique|uline|unpack|update|upper|using|\n\t value|\n\t when|while|window|write|where|with|work|\n\t\t\t\t\txml\n\t\t\t )(?=\\s|\\.|:|,)"
183
183
  },
184
184
  "math_operators": {
185
185
  "name": "keyword.operator.math.abap",
@@ -2,6 +2,12 @@
2
2
  "name": "ATS",
3
3
  "scopeName": "source.ats",
4
4
  "patterns": [
5
+ {
6
+ "include": "#quantifier_curly"
7
+ },
8
+ {
9
+ "include": "#quantifier_square"
10
+ },
5
11
  {
6
12
  "include": "#block"
7
13
  },
@@ -12,7 +18,10 @@
12
18
  "include": "#comment_line"
13
19
  },
14
20
  {
15
- "include": "#comment_block"
21
+ "include": "#comment_block_c"
22
+ },
23
+ {
24
+ "include": "#comment_block_sml"
16
25
  },
17
26
  {
18
27
  "include": "#embed"
@@ -21,13 +30,13 @@
21
30
  "include": "#operators"
22
31
  },
23
32
  {
24
- "include": "#quantifier_curly"
33
+ "include": "#quantifier_arrow"
25
34
  },
26
35
  {
27
- "include": "#quantifier_square"
36
+ "include": "#definition_function"
28
37
  },
29
38
  {
30
- "include": "#quantifier_arrow"
39
+ "include": "#definition_type"
31
40
  },
32
41
  {
33
42
  "include": "#keywords"
@@ -35,6 +44,9 @@
35
44
  {
36
45
  "include": "#keywords_types"
37
46
  },
47
+ {
48
+ "include": "#false_true"
49
+ },
38
50
  {
39
51
  "include": "#string"
40
52
  },
@@ -49,12 +61,16 @@
49
61
  },
50
62
  {
51
63
  "include": "#number"
64
+ },
65
+ {
66
+ "include": "#identifier"
52
67
  }
53
68
  ],
54
69
  "repository": {
55
70
  "block": {
56
- "begin": "(?\u003c=where|=|^|then|else|\\$rec|\\$rec_t|\\$rec_vt)(?:\\s*){",
57
- "end": "}",
71
+ "name": "meta.block",
72
+ "begin": "(?\u003c=where|=|^|then|else|\\$rec|\\$rec_t|\\$rec_vt)(?:\\s*)\\{",
73
+ "end": "\\}",
58
74
  "patterns": [
59
75
  {
60
76
  "include": "$self"
@@ -66,13 +82,19 @@
66
82
  "name": "string.quoted.double",
67
83
  "match": "(')([^\\\\]{0,1}|\\\\(\\\\|[abefpnrtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8}))(')"
68
84
  },
69
- "comment_block": {
85
+ "comment_block_c": {
86
+ "name": "comment.block",
87
+ "begin": "/\\*",
88
+ "end": "\\*/",
89
+ "applyEndPatternLast": true
90
+ },
91
+ "comment_block_sml": {
70
92
  "name": "comment.block",
71
93
  "begin": "\\(\\*",
72
94
  "end": "\\*\\)",
73
95
  "patterns": [
74
96
  {
75
- "include": "#comment_block"
97
+ "include": "#comment_block_sml"
76
98
  }
77
99
  ],
78
100
  "applyEndPatternLast": true
@@ -82,7 +104,7 @@
82
104
  "match": "//.*$"
83
105
  },
84
106
  "comment_rest": {
85
- "name": "comment",
107
+ "name": "comment.block",
86
108
  "begin": "////",
87
109
  "end": ".\\z",
88
110
  "patterns": [
@@ -92,18 +114,66 @@
92
114
  ],
93
115
  "applyEndPatternLast": true
94
116
  },
117
+ "definition_function": {
118
+ "name": "meta.function-definition",
119
+ "begin": "\\b(?:castfn|fn|fun|implement|implmnt|infixl|infixr|infix|overload|postfix|praxi|prfn|prfun|primplement|primplmnt|var)\\b",
120
+ "end": "\\b[a-zA-Z][a-zA-Z0-9_']*\\b",
121
+ "patterns": [
122
+ {
123
+ "include": "$self"
124
+ }
125
+ ],
126
+ "beginCaptures": {
127
+ "0": {
128
+ "name": "keyword"
129
+ }
130
+ },
131
+ "endCaptures": {
132
+ "0": {
133
+ "name": "entity.name.function"
134
+ }
135
+ }
136
+ },
137
+ "definition_type": {
138
+ "name": "meta.type-definition",
139
+ "begin": "\\b(abstype|abst@ype|abst0pe|absvtype|absvt@ype|absvt0pe|absviewtype|absviewt@ype|absviewt0pe|absview|absprop|datatype|datavtype|dataviewtype|dataview|dataprop|datasort|sortdef|propdef|viewdef|viewtypedef|vtypedef|stadef|stacst|typedef)\\b",
140
+ "end": "\\b[a-zA-Z][a-zA-Z0-9_']*\\b",
141
+ "patterns": [
142
+ {
143
+ "include": "$self"
144
+ }
145
+ ],
146
+ "beginCaptures": {
147
+ "0": {
148
+ "name": "keyword"
149
+ }
150
+ },
151
+ "endCaptures": {
152
+ "0": {
153
+ "name": "entity.name.type storage.type"
154
+ }
155
+ }
156
+ },
95
157
  "embed": {
96
158
  "name": "meta",
97
159
  "begin": "(%{)",
98
160
  "end": "(%})"
99
161
  },
162
+ "false_true": {
163
+ "name": "constant.language.boolean",
164
+ "match": "\\b(?:false|true)\\b"
165
+ },
166
+ "identifier": {
167
+ "name": "identifier",
168
+ "match": "\\b[a-zA-Z][a-zA-Z0-9_']*\\b"
169
+ },
100
170
  "keywords": {
101
171
  "name": "keyword",
102
- "match": "(\\#|\\$)(\\w+)|\\b(castfn|and|andalso|assume|as|begin|break|case(\\+|-)?|class|continue|dynload|dyn|else|end|exception|extern|fix|fn|for|fun|if|implement|implmnt|primplement|primplmnt|infixl|infixr|infix|in|lam|let|llam|local|macdef|macrodef|method|modprop|modtype|module|nonfix|object|of|op|or|orelse|overload|par|postfix|praxi|prefix|prfn|prfun|prval|rec|sif|staif|staload|stavar|sta|struct|symelim|symintr|then|try|union|val(\\+|-)?|var|when|where|while|withprop|withtype|withviewtype|withview|with)\\b"
172
+ "match": "(\\#|\\$)(\\w+)|\\b(castfn|and|andalso|assume|as|begin|break|case(\\+|-)?|class|continue|dynload|dyn|else|end|exception|extern|fix|fn|for|fun|if|implement|implmnt|primplement|primplmnt|infixl|infixr|infix|in|lam|let|llam|local|macdef|macrodef|method|modprop|modtype|module|nonfix|object|of|op|or|orelse|overload|par|postfix|praxi|prefix|prfn|prfun|prval|rec|scase|sif|stacst|staif|staload|stavar|sta|struct|symelim|symintr|then|try|union|val(\\+|-)?|var|when|where|while|withprop|withtype|withviewtype|withview|with)\\b"
103
173
  },
104
174
  "keywords_types": {
105
175
  "name": "keyword",
106
- "match": "(\\#|\\$)(\\w+)|\\b(abstype|abst@ype|abst0pe|absvtype|absvt@ype|absvt0pe|absviewtype|absviewt@ype|absviewt0pe|absview|absprop|datatype|datavtype|dataviewtype|dataview|dataprop|datasort|sortdef|propdef|viewdef|viewtypedef|vtypedef|stadef|typedef|)\\b"
176
+ "match": "(\\#|\\$)(\\w+)|\\b(abstype|abst@ype|abst0pe|absvtype|absvt@ype|absvt0pe|absviewtype|absviewt@ype|absviewt0pe|absview|absprop|datatype|datavtype|dataviewtype|dataview|dataprop|datasort|sortdef|propdef|viewdef|viewtypedef|vtypedef|stadef|typedef)\\b"
107
177
  },
108
178
  "number": {
109
179
  "name": "constant.numeric",
@@ -119,14 +189,14 @@
119
189
  "end": "\u003e"
120
190
  },
121
191
  "quantifier_curly": {
122
- "name": "support.type",
123
- "begin": "({)",
124
- "end": "(})"
192
+ "name": "support.type.quantifier.universal",
193
+ "begin": "\\{(?=[\\S])",
194
+ "end": "\\}"
125
195
  },
126
196
  "quantifier_square": {
127
- "name": "support.type",
128
- "begin": "(\\[)",
129
- "end": "(\\])"
197
+ "name": "support.type.quantifier.existential",
198
+ "begin": "\\[(?=[\\S])",
199
+ "end": "\\]"
130
200
  },
131
201
  "records": {
132
202
  "begin": "('|@)({)",