github-linguist 7.4.0 → 7.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +5 -5
  2. data/grammars/annotation.liquidhaskell.haskell.json +15 -4
  3. data/grammars/hint.haskell.json +15 -4
  4. data/grammars/hint.message.haskell.json +15 -4
  5. data/grammars/hint.type.haskell.json +15 -4
  6. data/grammars/source.abap.json +14 -3
  7. data/grammars/source.apl.json +19 -2
  8. data/grammars/source.ats.json +17 -87
  9. data/grammars/source.ballerina.json +14 -19
  10. data/grammars/source.crystal.json +14 -2
  11. data/grammars/source.csound.json +37 -0
  12. data/grammars/source.css.json +25 -1
  13. data/grammars/source.css.scss.json +1724 -0
  14. data/grammars/source.gf.json +51 -0
  15. data/grammars/source.glsl.json +1 -1
  16. data/grammars/source.hack.json +2523 -0
  17. data/grammars/source.haskell.json +15 -4
  18. data/grammars/source.hc.json +709 -0
  19. data/grammars/source.hsig.json +15 -4
  20. data/grammars/source.hx.json +10 -6
  21. data/grammars/source.jolie.json +1 -1
  22. data/grammars/source.julia.json +114 -6
  23. data/grammars/source.m68k.json +412 -0
  24. data/grammars/source.mcfunction.json +62 -18
  25. data/grammars/source.objectscript.json +309 -0
  26. data/grammars/source.objectscript_class.json +674 -0
  27. data/grammars/source.objectscript_csp.json +19 -0
  28. data/grammars/source.objectscript_macros.json +226 -0
  29. data/grammars/source.powershell.json +21 -57
  30. data/grammars/source.rust.json +1 -1
  31. data/grammars/source.sass.json +836 -142
  32. data/grammars/source.sassdoc.json +346 -0
  33. data/grammars/source.scala.json +110 -10
  34. data/grammars/source.sqf.json +2 -1
  35. data/grammars/source.svelte.json +827 -0
  36. data/grammars/source.ts.json +8 -4
  37. data/grammars/source.tsql.json +507 -0
  38. data/grammars/source.tsx.json +8 -4
  39. data/grammars/source.viml.json +1 -1
  40. data/grammars/source.vtt.json +702 -0
  41. data/grammars/source.wollok.json +100 -0
  42. data/grammars/source.xojo.json +85 -0
  43. data/grammars/source.yara.json +3 -2
  44. data/grammars/source.zeek.json +412 -0
  45. data/grammars/source.zenscript.json +282 -0
  46. data/grammars/source.zig.json +2 -11
  47. data/grammars/text.haml.json +1 -1
  48. data/grammars/text.html.php.blade.json +3 -3
  49. data/grammars/text.html.vue.json +41 -1
  50. data/grammars/text.slim.json +1 -1
  51. data/grammars/text.tex.latex.haskell.json +15 -4
  52. data/grammars/version +1 -1
  53. data/lib/linguist/VERSION +1 -1
  54. data/lib/linguist/blob_helper.rb +5 -10
  55. data/lib/linguist/generated.rb +10 -2
  56. data/lib/linguist/heuristics.yml +14 -3
  57. data/lib/linguist/language.rb +3 -2
  58. data/lib/linguist/languages.json +1 -1
  59. data/lib/linguist/languages.yml +151 -16
  60. data/lib/linguist/samples.json +9844 -1711
  61. data/lib/linguist/samples.rb +8 -5
  62. data/lib/linguist/shebang.rb +6 -0
  63. data/lib/linguist/vendor.yml +3 -0
  64. metadata +25 -10
  65. data/grammars/source.bro.json +0 -403
  66. data/grammars/source.scss.json +0 -1287
@@ -357,7 +357,7 @@
357
357
  {
358
358
  "name": "meta.declaration.instance.deriving.haskell.hsig",
359
359
  "contentName": "meta.type-signature.haskell.hsig",
360
- "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}']))",
360
+ "begin": "^([ \\t]*)(?:(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s+|(deriving)\\s+(via)\\s+(.*)\\s+)?(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
361
361
  "end": "^(?!\\1[ \\t]|[ \\t]*$)",
362
362
  "patterns": [
363
363
  {
@@ -365,9 +365,6 @@
365
365
  },
366
366
  {
367
367
  "include": "#type_signature"
368
- },
369
- {
370
- "include": "#deriving_via"
371
368
  }
372
369
  ],
373
370
  "beginCaptures": {
@@ -383,6 +380,20 @@
383
380
  },
384
381
  "4": {
385
382
  "name": "keyword.other.haskell.hsig"
383
+ },
384
+ "5": {
385
+ "name": "keyword.other.haskell.hsig"
386
+ },
387
+ "6": {
388
+ "name": "meta.type-signature.haskell.hsig",
389
+ "patterns": [
390
+ {
391
+ "include": "#type_signature"
392
+ }
393
+ ]
394
+ },
395
+ "7": {
396
+ "name": "keyword.other.haskell.hsig"
386
397
  }
387
398
  }
388
399
  }
@@ -465,7 +465,7 @@
465
465
  "conditional-compilation": {
466
466
  "patterns": [
467
467
  {
468
- "match": "((#(if|elseif))[\\s!]+([a-zA-Z0-9_]+)(?=\\s|/*|//))",
468
+ "match": "((#(if|elseif))[\\s!]+([a-z_][a-zA-Z0-9_]*(\\.[a-z_][a-zA-Z0-9_]*)*)(?=\\s|/*|//))",
469
469
  "captures": {
470
470
  "0": {
471
471
  "name": "punctuation.definition.tag"
@@ -803,8 +803,12 @@
803
803
  "include": "#type-path"
804
804
  },
805
805
  {
806
- "name": "keyword.other.hx",
807
- "match": "\\b(as|in)\\b"
806
+ "name": "keyword.control.as.hx",
807
+ "match": "\\b(as)\\b"
808
+ },
809
+ {
810
+ "name": "keyword.control.in.hx",
811
+ "match": "\\b(in)\\b"
808
812
  },
809
813
  {
810
814
  "name": "constant.language.import-all.hx",
@@ -820,7 +824,7 @@
820
824
  ],
821
825
  "beginCaptures": {
822
826
  "0": {
823
- "name": "keyword.other.import.hx"
827
+ "name": "keyword.control.import.hx"
824
828
  }
825
829
  },
826
830
  "endCaptures": {
@@ -1162,7 +1166,7 @@
1162
1166
  "metadata": {
1163
1167
  "patterns": [
1164
1168
  {
1165
- "begin": "(@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|fakeEnum|file|fileXml|final|fixed|font|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inline|internal|isVar|javaCanonical|jsRequire|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|meta|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|ns|nullSafety|objc|objcProtocol|op|optional|overload|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtime|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|unifyMinDynamic|unreflective|unsafe|using|value|void|volatile)\\b)\\s*(\\()",
1169
+ "begin": "(@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|fakeEnum|file|fileXml|final|fixed|flash\\.property|font|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inline|internal|isVar|javaCanonical|jsRequire|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|meta|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|ns|nullSafety|objc|objcProtocol|op|optional|overload|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtime|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|unifyMinDynamic|unreflective|unsafe|using|value|void|volatile)\\b)\\s*(\\()",
1166
1170
  "end": "\\)",
1167
1171
  "patterns": [
1168
1172
  {
@@ -1187,7 +1191,7 @@
1187
1191
  }
1188
1192
  },
1189
1193
  {
1190
- "match": "((@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|fakeEnum|file|fileXml|final|fixed|font|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inline|internal|isVar|javaCanonical|jsRequire|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|meta|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|ns|nullSafety|objc|objcProtocol|op|optional|overload|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtime|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|unifyMinDynamic|unreflective|unsafe|using|value|void|volatile)\\b))",
1194
+ "match": "((@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|fakeEnum|file|fileXml|final|fixed|flash\\.property|font|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inline|internal|isVar|javaCanonical|jsRequire|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|meta|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|ns|nullSafety|objc|objcProtocol|op|optional|overload|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtime|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|unifyMinDynamic|unreflective|unsafe|using|value|void|volatile)\\b))",
1191
1195
  "captures": {
1192
1196
  "2": {
1193
1197
  "name": "punctuation.metadata.hx"
@@ -106,7 +106,7 @@
106
106
  },
107
107
  "keywords_with_colon": {
108
108
  "name": "keyword.other.with_colon.jolie",
109
- "match": "\\b(Location|Protocol|Interfaces|Aggregates|Redirects|Jolie|JavaScript|Java|OneWay|RequestResponse)\\b\\s*:"
109
+ "match": "\\b(location|Location|protocol|Protocol|interfaces|Interfaces|aggregates|Aggregates|redirects|Redirects|Jolie|JavaScript|Java|OneWay|RequestResponse)\\b\\s*:"
110
110
  },
111
111
  "line_comments": {
112
112
  "name": "comment.line.double-slash.jolie",
@@ -268,7 +268,7 @@
268
268
  },
269
269
  {
270
270
  "name": "constant.language.julia",
271
- "match": "\\btrue\\b|\\bfalse\\b|\\bnothing\\b"
271
+ "match": "\\btrue\\b|\\bfalse\\b|\\bnothing\\b|\\bmissing\\b"
272
272
  }
273
273
  ]
274
274
  },
@@ -287,7 +287,7 @@
287
287
  "match": "(?:\u003c\u003c|\u003e\u003e\u003e|\u003e\u003e|\\.\u003e\u003e\u003e|\\.\u003e\u003e|\\.\u003c\u003c)"
288
288
  },
289
289
  {
290
- "match": "(?:\\s*(::|\u003e:|\u003c:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_][[:word:]⁺-ₜ!′\\.]*(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?)))(?:\\.\\.\\.)?",
290
+ "match": "(?:\\s*(::|\u003e:|\u003c:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\".+\"))?)))(?:\\.\\.\\.)?",
291
291
  "captures": {
292
292
  "1": {
293
293
  "name": "keyword.operator.relation.julia"
@@ -454,9 +454,117 @@
454
454
  }
455
455
  }
456
456
  },
457
+ {
458
+ "name": "embed.python.julia",
459
+ "contentName": "source.python",
460
+ "begin": "(py)(\"\"\")",
461
+ "end": "\"\"\"",
462
+ "patterns": [
463
+ {
464
+ "include": "source.python"
465
+ },
466
+ {
467
+ "include": "#string_dollar_sign_interpolate"
468
+ }
469
+ ],
470
+ "beginCaptures": {
471
+ "1": {
472
+ "name": "support.function.macro.julia"
473
+ },
474
+ "2": {
475
+ "name": "punctuation.definition.string.begin.julia"
476
+ }
477
+ },
478
+ "endCaptures": {
479
+ "0": {
480
+ "name": "punctuation.definition.string.end.julia"
481
+ }
482
+ }
483
+ },
484
+ {
485
+ "name": "embed.python.julia",
486
+ "contentName": "source.python",
487
+ "begin": "(py)(\")",
488
+ "end": "\"",
489
+ "patterns": [
490
+ {
491
+ "include": "source.python"
492
+ },
493
+ {
494
+ "include": "#string_dollar_sign_interpolate"
495
+ }
496
+ ],
497
+ "beginCaptures": {
498
+ "1": {
499
+ "name": "support.function.macro.julia"
500
+ },
501
+ "2": {
502
+ "name": "punctuation.definition.string.begin.julia"
503
+ }
504
+ },
505
+ "endCaptures": {
506
+ "0": {
507
+ "name": "punctuation.definition.string.end.julia"
508
+ }
509
+ }
510
+ },
511
+ {
512
+ "name": "embed.js.julia",
513
+ "contentName": "source.js",
514
+ "begin": "(js)(\"\"\")",
515
+ "end": "\"\"\"",
516
+ "patterns": [
517
+ {
518
+ "include": "source.js"
519
+ },
520
+ {
521
+ "include": "#string_dollar_sign_interpolate"
522
+ }
523
+ ],
524
+ "beginCaptures": {
525
+ "1": {
526
+ "name": "support.function.macro.julia"
527
+ },
528
+ "2": {
529
+ "name": "punctuation.definition.string.begin.julia"
530
+ }
531
+ },
532
+ "endCaptures": {
533
+ "0": {
534
+ "name": "punctuation.definition.string.end.julia"
535
+ }
536
+ }
537
+ },
538
+ {
539
+ "name": "embed.js.julia",
540
+ "contentName": "source.js",
541
+ "begin": "(js)(\")",
542
+ "end": "\"",
543
+ "patterns": [
544
+ {
545
+ "include": "source.js"
546
+ },
547
+ {
548
+ "include": "#string_dollar_sign_interpolate"
549
+ }
550
+ ],
551
+ "beginCaptures": {
552
+ "1": {
553
+ "name": "support.function.macro.julia"
554
+ },
555
+ "2": {
556
+ "name": "punctuation.definition.string.begin.julia"
557
+ }
558
+ },
559
+ "endCaptures": {
560
+ "0": {
561
+ "name": "punctuation.definition.string.end.julia"
562
+ }
563
+ }
564
+ },
457
565
  {
458
566
  "name": "string.docstring.julia",
459
- "begin": "^\\s?([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)?(\"\"\")\\s?$",
567
+ "begin": "^\\s?(doc|raw)?(\"\"\")\\s?$",
460
568
  "end": "(\"\"\")",
461
569
  "patterns": [
462
570
  {
@@ -571,7 +679,7 @@
571
679
  },
572
680
  {
573
681
  "name": "string.quoted.other.julia",
574
- "begin": "(?\u003c!\")\\b([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)\"\"\"",
682
+ "begin": "(?\u003c!\")([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)\"\"\"",
575
683
  "end": "(\"\"\")([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)?",
576
684
  "patterns": [
577
685
  {
@@ -597,8 +705,8 @@
597
705
  },
598
706
  {
599
707
  "name": "string.quoted.other.julia",
600
- "begin": "(?\u003c!\")\\b([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)\"(?!\")",
601
- "end": "(\")([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)?",
708
+ "begin": "(?\u003c!\")([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)\"(?!\")",
709
+ "end": "(?\u003c![^\\\\]\\\\)(\")([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)?",
602
710
  "patterns": [
603
711
  {
604
712
  "include": "#string_escaped_char"
@@ -0,0 +1,412 @@
1
+ {
2
+ "name": "Assembly (m68k)",
3
+ "scopeName": "source.m68k",
4
+ "patterns": [
5
+ {
6
+ "name": "comment.m68k",
7
+ "match": "(;|\\B\\*).*$"
8
+ },
9
+ {
10
+ "name": "string.quoted.m68k",
11
+ "begin": "\"",
12
+ "end": "\""
13
+ },
14
+ {
15
+ "name": "entity.name.function.m68k",
16
+ "match": "^[a-zA-Z_][a-zA-Z0-9_]*:"
17
+ },
18
+ {
19
+ "name": "entity.name.section.m68k",
20
+ "match": "^(\\.|_)[a-zA-Z_][a-zA-Z0-9_]*:?"
21
+ },
22
+ {
23
+ "name": "entity.variable.m68k",
24
+ "match": "^[a-zA-Z_][a-zA-Z0-9_]*"
25
+ },
26
+ {
27
+ "name": "string.char.m68k",
28
+ "match": "\\'\\S\\'"
29
+ },
30
+ {
31
+ "name": "constant.numeric.dec.m68k",
32
+ "match": "-?\\b[0-9]+\\b"
33
+ },
34
+ {
35
+ "name": "constant.numeric.hex.m68k",
36
+ "match": "-?\\$[0-9a-fA-F]+\\b"
37
+ },
38
+ {
39
+ "name": "storage.other.register.m68k",
40
+ "match": "\\b(?i)([ad]([0-7])|sr|sp|pc)(?-i)\\b"
41
+ },
42
+ {
43
+ "name": "storage.other.register.privileged.m68k",
44
+ "match": "\\b(?i)(usp|dfc|sfc|vbr|cacr|caar|msp|isp)(?-i)\\b"
45
+ },
46
+ {
47
+ "match": "\\b(?i)((moves|movec)(\\.[bwl])?)\\s+([ad]([0-7])|(.+)),((usp|dfc|sfc|vbr|cacr|caar|msp|isp)|(.+))?(?-i)\\b",
48
+ "captures": {
49
+ "2": {
50
+ "name": "support.mnemonic.privileged.m68k"
51
+ },
52
+ "3": {
53
+ "name": "support.mnemonic.size.m68k"
54
+ },
55
+ "4": {
56
+ "name": "storage.other.register.m68k"
57
+ },
58
+ "6": {
59
+ "name": "entity.name.function.m68k"
60
+ },
61
+ "7": {
62
+ "name": "entity.name.function.m68k"
63
+ },
64
+ "8": {
65
+ "name": "storage.other.register.privileged.m68k"
66
+ }
67
+ }
68
+ },
69
+ {
70
+ "match": "\\b(?i)(reset|rte|stop(\\s+(#.+)?))(?-i)\\b",
71
+ "captures": {
72
+ "1": {
73
+ "name": "support.mnemonic.privileged.m68k"
74
+ },
75
+ "3": {
76
+ "name": "support.mnemonic.immediate.m68k"
77
+ }
78
+ }
79
+ },
80
+ {
81
+ "match": "\\b(?i)(move(\\.[bwl])?\\s+((#.+)?(.+)?,(sr|usp)))(?-i)\\b",
82
+ "captures": {
83
+ "1": {
84
+ "name": "support.mnemonic.privileged.m68k"
85
+ },
86
+ "2": {
87
+ "name": "support.mnemonic.size.m68k"
88
+ },
89
+ "4": {
90
+ "name": "support.mnemonic.immediate.m68k"
91
+ },
92
+ "5": {
93
+ "name": "entity.name.function.m68k"
94
+ },
95
+ "6": {
96
+ "name": "storage.other.register.privileged.m68k"
97
+ }
98
+ }
99
+ },
100
+ {
101
+ "match": "\\b(?i)(move(\\.[bwl])?\\s+(sr|usp),([^\\s]+))(?-i)\\b",
102
+ "captures": {
103
+ "1": {
104
+ "name": "support.mnemonic.privileged.m68k"
105
+ },
106
+ "2": {
107
+ "name": "support.mnemonic.size.m68k"
108
+ },
109
+ "3": {
110
+ "name": "storage.other.register.m68k"
111
+ },
112
+ "4": {
113
+ "name": "storage.other.register.privileged.m68k"
114
+ }
115
+ }
116
+ },
117
+ {
118
+ "match": "\\b(?i)(cinv[lp]|cpush[lp])\\s+(dc|ic|bc),\\((a[0-7])(?-i)\\b",
119
+ "captures": {
120
+ "1": {
121
+ "name": "support.mnemonic.privileged.m68k"
122
+ },
123
+ "2": {
124
+ "name": "storage.other.register.privileged.m68k"
125
+ },
126
+ "3": {
127
+ "name": "storage.other.register.m68k"
128
+ }
129
+ }
130
+ },
131
+ {
132
+ "match": "\\b(?i)(cinva|cpusha)\\s+(dc|ic|bc)(?-i)\\b",
133
+ "captures": {
134
+ "1": {
135
+ "name": "support.mnemonic.privileged.m68k"
136
+ },
137
+ "2": {
138
+ "name": "storage.other.register.privileged.m68k"
139
+ }
140
+ }
141
+ },
142
+ {
143
+ "match": "\\b(?i)((andi|eori|ori)(\\.w)?(\\s+(.+),(sr)))(?-i)\\b",
144
+ "captures": {
145
+ "2": {
146
+ "name": "support.mnemonic.privileged.m68k"
147
+ },
148
+ "3": {
149
+ "name": "support.mnemonic.size.m68k"
150
+ },
151
+ "5": {
152
+ "name": "support.mnemonic.immediate.m68k"
153
+ },
154
+ "6": {
155
+ "name": "storage.other.register.privileged.m68k"
156
+ }
157
+ }
158
+ },
159
+ {
160
+ "match": "\\b(?i)(pflusha|pflushan)(?-i)\\b",
161
+ "captures": {
162
+ "1": {
163
+ "name": "support.mnemonic.privileged.m68k"
164
+ }
165
+ }
166
+ },
167
+ {
168
+ "match": "\\b(?i)(pflush|pflushn)\\s+\\((a[0-7]|sp)(?-i)\\b",
169
+ "captures": {
170
+ "1": {
171
+ "name": "support.mnemonic.privileged.m68k"
172
+ },
173
+ "2": {
174
+ "name": "storage.other.register.m68k"
175
+ }
176
+ }
177
+ },
178
+ {
179
+ "match": "\\b(?i)(pmove)\\s+((crp|srp|tc|tt0|tt1)|.+),((crp|srp|tc|tt0|tt1)|.+)(?-i)\\b",
180
+ "captures": {
181
+ "1": {
182
+ "name": "support.mnemonic.privileged.m68k"
183
+ },
184
+ "2": {
185
+ "name": "entity.name.function.m68k"
186
+ },
187
+ "3": {
188
+ "name": "storage.other.register.privileged.m68k"
189
+ },
190
+ "4": {
191
+ "name": "entity.name.function.m68k"
192
+ },
193
+ "5": {
194
+ "name": "storage.other.register.privileged.m68k"
195
+ }
196
+ }
197
+ },
198
+ {
199
+ "name": "support.mnemonic.m68k",
200
+ "match": "\\b(?i)([as]bcd(\\.b)?|(add|sub)[iqx]?(\\.[bwl])?|adda(\\.[wl])?|(and|eor|or)(i)?(\\.[bwl])?|(rox?|[al]s)[lr](\\.[bwl])?|b(chg|clr|set|tst)(\\.[bl])?|bf(chg|clr|extu|exts|ffo|ins|set|tst)|chk(\\.[wl])?|chk2(\\.[bwl])?|clr(\\.[bwl])?|cas(\\.[bwl])?|cas2(\\.[wl])?|cmp[im2]?(\\.[bwl])?|cmpa(\\.[wl])?|divs|divu|exg(\\.l)?|ext(\\.[wl])?|extb.l|illegal|lea(\\.l)?|link|muls|mulu|nbcd(\\.b)?|(negx?|not)(\\.[bwl])?|nop|pea(\\.l)?|reset|rte|rtri|rtd|rts|s(f|t|cc|hs|cs|lo|eq|ge|gt|hi|le|ls|lt|mi|ne|pl|vc|vs)(\\.b)?|stop|swap(\\.l)?|tas(\\.b)?|trap|trapv|trap(f|t|cc|hs|cs|lo|eq|ge|gt|hi|le|ls|lt|mi|ne|pl|vc|vs)|tst|tst\\.b|tst\\.w|tst\\.l|unlk|pack|unpk)(?-i)\\b"
201
+ },
202
+ {
203
+ "match": "\\b(?i)(move(\\.[bwl])?|movea(\\.[wl])?)(?-i)\\b",
204
+ "captures": {
205
+ "1": {
206
+ "name": "support.mnemonic.m68k"
207
+ },
208
+ "2": {
209
+ "name": "support.mnemonic.size.m68k"
210
+ },
211
+ "3": {
212
+ "name": "support.mnemonic.size.m68k"
213
+ }
214
+ }
215
+ },
216
+ {
217
+ "match": "\\b(?i)(movem|movep)(\\.[wl])?|(move16)(\\.l)?(?-i)\\b",
218
+ "captures": {
219
+ "1": {
220
+ "name": "support.mnemonic.m68k"
221
+ },
222
+ "2": {
223
+ "name": "support.mnemonic.size.m68k"
224
+ },
225
+ "3": {
226
+ "name": "entity.name.function.m68k"
227
+ }
228
+ }
229
+ },
230
+ {
231
+ "match": "\\b(?i)(moveq)(\\.l)?\\s+#((\\$-?[0-9a-f]{1,3})|(%[0-1]{1,8})|-?([0-9]{1,3})),(d[0-7])(?-i)\\b",
232
+ "captures": {
233
+ "1": {
234
+ "name": "support.mnemonic.m68k"
235
+ },
236
+ "2": {
237
+ "name": "support.mnemonic.size.m68k"
238
+ },
239
+ "3": {
240
+ "name": "support.mnemonic.operand.source.constant.m68k"
241
+ },
242
+ "4": {
243
+ "name": "support.mnemonic.operand.source.constant.hex.m68k"
244
+ },
245
+ "5": {
246
+ "name": "support.mnemonic.operand.source.constant.binary.m68k"
247
+ },
248
+ "6": {
249
+ "name": "support.mnemonic.operand.source.constant.decimal.m68k"
250
+ },
251
+ "7": {
252
+ "name": "storage.other.register.m68k"
253
+ }
254
+ }
255
+ },
256
+ {
257
+ "match": "\\b(?i)(b(ra|cc|hs|cs|lo|eq|ge|gt|hi|le|ls|lt|mi|ne|pl|vc|vs|sr)(\\.[sw])?)(?-i)\\s+(\\.?[a-zA-Z_][a-zA-Z0-9_]*)\\b",
258
+ "captures": {
259
+ "1": {
260
+ "name": "support.mnemonic.branch.m68k"
261
+ },
262
+ "4": {
263
+ "name": "entity.name.function.m68k"
264
+ }
265
+ }
266
+ },
267
+ {
268
+ "match": "\\b(?i)(j(sr|mp))(?-i)\\s+((\\.?[a-zA-Z_][a-zA-Z0-9_]*)|\\$?\\d*\\((sp|pc|a[0-7])(,(d|a)[0-7](.(w|l))?(\\*[248])?)?\\))",
269
+ "captures": {
270
+ "1": {
271
+ "name": "support.mnemonic.branch.m68k"
272
+ },
273
+ "3": {
274
+ "name": "storage.other.register.m68k"
275
+ },
276
+ "4": {
277
+ "name": "entity.name.function.m68k"
278
+ }
279
+ }
280
+ },
281
+ {
282
+ "match": "\\b(?i)(db(ra|f|t|cc|hs|cs|lo|eq|ge|gt|hi|le|ls|lt|mi|ne|pl|vc|vs))(?-i)\\s+(d[0-7])\\s*,\\s*\\.*([a-zA-Z_][a-zA-Z0-9_]*)\\b",
283
+ "captures": {
284
+ "1": {
285
+ "name": "support.mnemonic.loop.m68k"
286
+ },
287
+ "3": {
288
+ "name": "storage.other.register.m68k"
289
+ },
290
+ "4": {
291
+ "name": "entity.name.function.m68k"
292
+ }
293
+ }
294
+ },
295
+ {
296
+ "match": "\\b(?i)(f(s|d)?(abs|acos|add|atan|atanh|asin|sub|asub|tst|cmp|div|mul|move|neg|sqrt|int|intrz|getexp|getman|mod|rem|scale|sgldiv|sglmul|etox|etoxm1|logn|lognp1|log10|log2|tentox|twotox|cos|sin|cosh|sinh|sincos|tan|tanh|))(\\.[xbwlsd])?\\s+((fp[0-7])|.+)(,((fp[0-7])|.+))?(?-i)\\b",
297
+ "captures": {
298
+ "1": {
299
+ "name": "support.mnemonic.m68k"
300
+ },
301
+ "4": {
302
+ "name": "support.mnemonic.size.m68k"
303
+ },
304
+ "5": {
305
+ "name": "support.mnemonic.operand.source"
306
+ },
307
+ "6": {
308
+ "name": "entity.name.function.m68k"
309
+ },
310
+ "7": {
311
+ "name": "entity.name.function.m68k"
312
+ }
313
+ }
314
+ },
315
+ {
316
+ "match": "\\b(?i)(fmovem)(\\.[xl])?\\s+(.+),(.+)(?-i)\\b",
317
+ "captures": {
318
+ "1": {
319
+ "name": "support.mnemonic.m68k"
320
+ },
321
+ "2": {
322
+ "name": "support.mnemonic.size.m68k"
323
+ },
324
+ "3": {
325
+ "name": "support.mnemonic.operand.source"
326
+ },
327
+ "4": {
328
+ "name": "entity.name.function.m68k"
329
+ }
330
+ }
331
+ },
332
+ {
333
+ "name": "support.mnemonic.m68k",
334
+ "match": "\\b(?i)fnop(?-i)\\b"
335
+ },
336
+ {
337
+ "match": "\\b(?i)(fmovecr)(\\.x)?\\s+(#.+),(fp[0-7])(?-i)\\b",
338
+ "captures": {
339
+ "1": {
340
+ "name": "support.mnemonic.m68k"
341
+ },
342
+ "2": {
343
+ "name": "support.mnemonic.size.m68k"
344
+ },
345
+ "3": {
346
+ "name": "support.mnemonic.operand.source"
347
+ },
348
+ "4": {
349
+ "name": "entity.name.function.m68k"
350
+ }
351
+ }
352
+ },
353
+ {
354
+ "match": "\\b(?i)(fsave|frestore)\\s+((\\(a[0-7]|sp]\\))|.+)(?-i)\\b",
355
+ "captures": {
356
+ "1": {
357
+ "name": "support.mnemonic.privileged.m68k"
358
+ },
359
+ "2": {
360
+ "name": "support.mnemonic.operand.source"
361
+ }
362
+ }
363
+ },
364
+ {
365
+ "match": "\\b(?i)(f([bs])?(f|eq|ogt|oge|olt|ole|ogl|or|un|ueq|ugt|uge|ult|ule|ne|t|seq|gt|ge|lt|le|gl|gle|ngle|ngl|nle|nlt|nge|ngt|sne|st|sf|seq|sogt))(?-i)\\s+(\\.?([a-zA-Z_][a-zA-Z0-9_]*))\\b",
366
+ "captures": {
367
+ "1": {
368
+ "name": "support.mnemonic.branch.m68k"
369
+ },
370
+ "4": {
371
+ "name": "entity.name.function.m68k"
372
+ }
373
+ }
374
+ },
375
+ {
376
+ "match": "\\b(?i)(fd([bs])?(f|eq|ogt|oge|olt|ole|ogl|or|un|ueq|ugt|uge|ult|ule|ne|t|seq|gt|ge|lt|le|gl|gle|ngle|ngl|nle|nlt|nge|ngt|sne|st|sf|seq|sogt))(?-i)\\s+((d[0-7])),(\\.?([a-zA-Z_][a-zA-Z0-9_]*))\\b",
377
+ "captures": {
378
+ "1": {
379
+ "name": "support.mnemonic.branch.m68k"
380
+ },
381
+ "5": {
382
+ "name": "storage.other.register.m68k"
383
+ },
384
+ "6": {
385
+ "name": "entity.name.function.m68k"
386
+ }
387
+ }
388
+ },
389
+ {
390
+ "match": "\\b(?i)(ftrap(f|eq|ogt|oge|olt|ole|ogl|or|un|ueq|ugt|uge|ult|ule|ne|t|seq|gt|ge|lt|le|gl|gle|ngle|ngl|nle|nlt|nge|ngt|sne|st|sf|seq|sogt))(?-i)\\s+(fp[0-7]),(\\.?[a-zA-Z_][a-zA-Z0-9_]*)\\b",
391
+ "captures": {
392
+ "1": {
393
+ "name": "support.mnemonic.branch.m68k"
394
+ },
395
+ "3": {
396
+ "name": "storage.other.register.m68k"
397
+ },
398
+ "4": {
399
+ "name": "entity.name.function.m68k"
400
+ }
401
+ }
402
+ },
403
+ {
404
+ "name": "keyword.control.define.m68k",
405
+ "match": "\\b(?i)(rsreset|rsset|rs(.[bwl])?|equ|fequ|include|incbin|set|reg|cargs|fequ|xref|xdef)(?-i)\\b"
406
+ },
407
+ {
408
+ "name": "keyword.control.directive.m68k",
409
+ "match": "\\b(?i)((d[cs]|dcb)(.[sbwl])?|even|ifeq|ifne|ifgt|ifge|iflt|ifle|endif|endc|rept|endr|macro|endm|section|text|data|bss|end|cnop|opt|machine|fpu|comment)(?-i)\\b"
410
+ }
411
+ ]
412
+ }