github-linguist 7.6.0 → 7.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +5 -5
  2. data/bin/github-linguist +17 -4
  3. data/grammars/annotation.liquidhaskell.haskell.json +58 -11
  4. data/grammars/etc.json +472 -4
  5. data/grammars/hidden.manref.json +29 -0
  6. data/grammars/hidden.regexp.injection-shell.json +28 -0
  7. data/grammars/hint.haskell.json +58 -11
  8. data/grammars/hint.message.haskell.json +58 -11
  9. data/grammars/hint.type.haskell.json +58 -11
  10. data/grammars/injections.etc.json +601 -1
  11. data/grammars/markdown.plantuml.codeblock.json +26 -0
  12. data/grammars/source.4dm.json +1156 -0
  13. data/grammars/source.abap.json +7 -7
  14. data/grammars/source.abl.json +685 -83
  15. data/grammars/source.abnf.json +23 -1
  16. data/grammars/source.agda.json +33 -203
  17. data/grammars/source.ahk.json +9 -5
  18. data/grammars/source.angelscript.json +1 -1
  19. data/grammars/source.ballerina.json +55 -19
  20. data/grammars/source.c++.json +4 -4
  21. data/grammars/source.c.platform.json +584 -33
  22. data/grammars/source.chapel.json +7 -4
  23. data/grammars/source.csound.json +1 -1
  24. data/grammars/source.css.json +3 -3
  25. data/grammars/source.css.scss.json +164 -15
  26. data/grammars/source.curlrc.json +869 -65
  27. data/grammars/source.d.json +2 -2
  28. data/grammars/source.dart.json +58 -32
  29. data/grammars/source.dircolors.json +137 -0
  30. data/grammars/source.direct-x.json +135 -0
  31. data/grammars/source.ebnf.json +67 -39
  32. data/grammars/source.editorconfig.json +23 -5
  33. data/grammars/source.elixir.json +51 -0
  34. data/grammars/source.elm.json +1 -1
  35. data/grammars/source.emacs.lisp.json +10 -0
  36. data/grammars/source.faust.json +119 -0
  37. data/grammars/source.futhark.json +146 -0
  38. data/grammars/source.gcode.json +166 -8
  39. data/grammars/source.gedcom.json +196 -0
  40. data/grammars/source.generic-db.json +41 -0
  41. data/grammars/source.gfm.blade.json +15 -0
  42. data/grammars/source.gfm.json +1697 -1439
  43. data/grammars/source.gitconfig.json +1 -1
  44. data/grammars/source.hack.json +200 -98
  45. data/grammars/source.haskell.json +58 -11
  46. data/grammars/source.hlsl.json +9 -5
  47. data/grammars/source.hosts.json +40 -0
  48. data/grammars/source.hsig.json +58 -11
  49. data/grammars/source.httpspec.json +1 -1
  50. data/grammars/source.hx.json +9 -5
  51. data/grammars/source.hxml.json +2 -2
  52. data/grammars/source.idris.json +1 -1
  53. data/grammars/source.igor.json +46 -2
  54. data/grammars/source.ini.npmrc.json +311 -0
  55. data/grammars/source.inno.json +133 -0
  56. data/grammars/source.inputrc.json +500 -0
  57. data/grammars/source.isabelle.root.json +1 -1
  58. data/grammars/source.jison.json +3 -0
  59. data/grammars/source.jisonlex.json +3 -0
  60. data/grammars/source.js.json +4 -4
  61. data/grammars/source.julia.json +70 -24
  62. data/grammars/source.kotlin.json +17 -51
  63. data/grammars/source.lcov.json +398 -0
  64. data/grammars/source.lean.json +20 -4
  65. data/grammars/source.lean.markdown.json +2598 -0
  66. data/grammars/source.lex.json +4 -4
  67. data/grammars/source.m2.json +125 -0
  68. data/grammars/source.m4.json +141 -99
  69. data/grammars/source.man-conf.json +47 -35
  70. data/grammars/source.matlab.json +437 -184
  71. data/grammars/source.mcfunction-snapshot.json +21388 -561
  72. data/grammars/source.mcfunction.json +55 -5
  73. data/grammars/source.meson.json +1 -1
  74. data/grammars/source.mlir.json +37 -317
  75. data/grammars/source.modula-3.json +10 -0
  76. data/grammars/source.msl.json +755 -0
  77. data/grammars/source.nasl.json +155 -0
  78. data/grammars/source.neon.json +381 -0
  79. data/grammars/source.nextflow.json +2 -2
  80. data/grammars/source.objc.platform.json +493 -35
  81. data/grammars/source.odin-ehr.json +806 -0
  82. data/grammars/source.odin.json +402 -0
  83. data/grammars/source.openbsd-pkg.contents.json +128 -0
  84. data/grammars/source.opts.json +12 -2
  85. data/grammars/source.perl6fe.json +1 -1
  86. data/grammars/source.postscript.json +358 -103
  87. data/grammars/source.prisma.json +435 -0
  88. data/grammars/source.purescript.json +29 -2
  89. data/grammars/source.python.json +52 -0
  90. data/grammars/source.q.json +150 -63
  91. data/grammars/source.qasm.json +66 -0
  92. data/grammars/source.ql.json +1408 -0
  93. data/grammars/source.r.json +4 -4
  94. data/grammars/source.reason.json +28 -16
  95. data/grammars/source.rego.json +124 -0
  96. data/grammars/source.sass.json +158 -3
  97. data/grammars/source.scala.json +53 -18
  98. data/grammars/source.sieve.json +383 -0
  99. data/grammars/source.solidity.json +1 -1
  100. data/grammars/source.ssh-config.json +1 -14
  101. data/grammars/source.swift.json +162 -2
  102. data/grammars/source.sy.json +2088 -183
  103. data/grammars/source.tags.json +266 -0
  104. data/grammars/source.terraform.json +576 -132
  105. data/grammars/source.tnsaudit.json +256 -0
  106. data/grammars/source.ts.json +246 -70
  107. data/grammars/source.tsx.json +247 -71
  108. data/grammars/source.v.json +587 -761
  109. data/grammars/source.vim-snippet.json +645 -0
  110. data/grammars/source.viml.json +6 -6
  111. data/grammars/source.webassembly.json +10 -0
  112. data/grammars/source.webidl.json +8 -0
  113. data/grammars/source.wgetrc.json +1640 -0
  114. data/grammars/source.wsd.json +781 -0
  115. data/grammars/source.x86.json +7 -3
  116. data/grammars/source.zig.json +231 -360
  117. data/grammars/text.dfy.dafny.json +188 -0
  118. data/grammars/text.html.php.blade.json +535 -528
  119. data/grammars/text.html.riot.json +788 -0
  120. data/grammars/text.muse.json +1471 -0
  121. data/grammars/text.openbsd-pkg.desc.json +78 -0
  122. data/grammars/text.roff.json +49 -1
  123. data/grammars/text.sfd.json +21 -0
  124. data/grammars/text.tex.latex.haskell.json +58 -11
  125. data/grammars/text.vim-help.json +383 -0
  126. data/grammars/text.xml.svg.json +8 -2
  127. data/grammars/version +1 -1
  128. data/lib/linguist/VERSION +1 -1
  129. data/lib/linguist/blob_helper.rb +4 -2
  130. data/lib/linguist/file_blob.rb +1 -1
  131. data/lib/linguist/generated.rb +96 -28
  132. data/lib/linguist/heuristics.yml +64 -4
  133. data/lib/linguist/languages.json +1 -1
  134. data/lib/linguist/languages.yml +408 -49
  135. data/lib/linguist/lazy_blob.rb +10 -10
  136. data/lib/linguist/linguist.bundle +0 -0
  137. data/lib/linguist/samples.json +48129 -31562
  138. data/lib/linguist/shebang.rb +5 -3
  139. data/lib/linguist/vendor.yml +71 -60
  140. metadata +48 -17
  141. data/grammars/source.LS.json +0 -85
  142. data/grammars/source.MCPOST.json +0 -54
  143. data/grammars/source.MOD.json +0 -55
  144. data/grammars/source.apt.json +0 -18
  145. data/grammars/source.jlex.json +0 -322
  146. data/grammars/source.yaml-ext.json +0 -324
  147. data/grammars/text.html.abl.json +0 -70
@@ -35,7 +35,7 @@
35
35
  },
36
36
  {
37
37
  "name": "meta.version.d",
38
- "match": "(?x)(?\u003c=^|\\}|:)\\s*\n\t\t\t\t\t(else\\s+)?(version)\\s*\n\t\t\t\t\t(?:\n \\(\\s*\n (?:\n (\n DigitalMars|\n GNU|\n LDC|\n SDC|\n Windows|\n Win32|\n Win64|\n linux|\n OSX|\n FreeBSD|\n OpenBSD|\n NetBSD|\n DragonFlyBSD|\n BSD|\n Solaris|\n Posix|\n AIX|\n Haiku|\n SkyOS|\n SysV3|\n SysV4|\n Hurd|\n Android|\n Emscripten|\n PlayStation|\n PlayStation4|\n Cygwin|\n MinGW|\n FreeStanding|\n CRuntime_Bionic|\n CRuntime_DigitalMars|\n CRuntime_Glibc|\n CRuntime_Microsoft|\n CRuntime_Musl|\n CRuntime_UClibc|\n X86|\n X86_64|\n ARM|\n ARM_Thumb|\n ARM_SoftFloat|\n ARM_SoftFP|\n ARM_HardFloat|\n AArch64|\n AsmJS|\n Epiphany|\n PPC|\n PPC_SoftFloat|\n PPC_HardFloat|\n PPC64|\n IA64|\n MIPS32|\n MIPS64|\n MIPS_O32|\n MIPS_N32|\n MIPS_O64|\n MIPS_N64|\n MIPS_EABI|\n MIPS_SoftFloat|\n MIPS_HardFloat|\n NVPTX|\n NVPTX64|\n RISCV32|\n RISCV64|\n SPARC|\n SPARC_V8Plus|\n SPARC_SoftFloat|\n SPARC_HardFloat|\n SPARC64|\n S390|\n SystemZ|\n HPPA|\n HPPA64|\n SH|\n WebAssembly|\n Alpha|\n Alpha_SoftFloat|\n Alpha_HardFloat|\n LittleEndian|\n BigEndian|\n ELFv1|\n ELFv2|\n D_BetterC|\n D_Coverage|\n D_Ddoc|\n D_InlineAsm_X86|\n D_InlineAsm_X86_64|\n D_LP64|\n D_X32|\n D_HardFloat|\n D_SoftFloat|\n D_PIC|\n D_SIMD|\n D_AVX|\n D_AVX2|\n D_Version2|\n D_NoBoundsChecks|\n D_ObjectiveC|\n unittest|\n assert|\n none|\n all\n )|\n (darwin|Thumb|S390X)|\n (?:[A-Za-z_][A-Za-z0-9_]*)\n )\n \\s*\\)\n )?",
38
+ "match": "(?x)(?\u003c=^|\\}|:)\\s*\n\t\t\t\t\t(else\\s+)?(version)\\s*\n\t\t\t\t\t(?:\n \\(\\s*\n (?:\n (\n DigitalMars|\n GNU|\n LDC|\n SDC|\n Windows|\n Win32|\n Win64|\n linux|\n OSX|\n FreeBSD|\n OpenBSD|\n NetBSD|\n DragonFlyBSD|\n BSD|\n Solaris|\n Posix|\n AIX|\n Haiku|\n SkyOS|\n SysV3|\n SysV4|\n Hurd|\n Android|\n Emscripten|\n PlayStation|\n PlayStation4|\n Cygwin|\n MinGW|\n FreeStanding|\n CppRuntime_Clang|\n CppRuntime_DigitalMars|\n CppRuntime_Gcc|\n CppRuntime_Microsoft|\n CppRuntime_Sun|\n CRuntime_Bionic|\n CRuntime_DigitalMars|\n CRuntime_Glibc|\n CRuntime_Microsoft|\n CRuntime_Musl|\n CRuntime_UClibc|\n X86|\n X86_64|\n ARM|\n ARM_Thumb|\n ARM_SoftFloat|\n ARM_SoftFP|\n ARM_HardFloat|\n AArch64|\n AsmJS|\n Epiphany|\n PPC|\n PPC_SoftFloat|\n PPC_HardFloat|\n PPC64|\n IA64|\n MIPS32|\n MIPS64|\n MIPS_O32|\n MIPS_N32|\n MIPS_O64|\n MIPS_N64|\n MIPS_EABI|\n MIPS_SoftFloat|\n MIPS_HardFloat|\n NVPTX|\n NVPTX64|\n RISCV32|\n RISCV64|\n SPARC|\n SPARC_V8Plus|\n SPARC_SoftFloat|\n SPARC_HardFloat|\n SPARC64|\n S390|\n SystemZ|\n HPPA|\n HPPA64|\n SH|\n WebAssembly|\n Alpha|\n Alpha_SoftFloat|\n Alpha_HardFloat|\n LittleEndian|\n BigEndian|\n ELFv1|\n ELFv2|\n D_BetterC|\n D_Coverage|\n D_Ddoc|\n D_InlineAsm_X86|\n D_InlineAsm_X86_64|\n D_LP64|\n D_X32|\n D_HardFloat|\n D_SoftFloat|\n D_PIC|\n D_SIMD|\n D_AVX|\n D_AVX2|\n D_Version2|\n D_NoBoundsChecks|\n D_ObjectiveC|\n unittest|\n assert|\n none|\n all\n )|\n (darwin|Thumb|S390X)|\n (?:[A-Za-z_][A-Za-z0-9_]*)\n )\n \\s*\\)\n )?",
39
39
  "captures": {
40
40
  "1": {
41
41
  "name": "keyword.control.version.d"
@@ -282,7 +282,7 @@
282
282
  },
283
283
  {
284
284
  "name": "storage.modifier.d",
285
- "match": "(?x)\n\t\t\t\t\\b(\n\t\t\t\t\tauto|\n\t\t\t\t\tstatic|\n\t\t\t\t\toverride|\n\t\t\t\t\tfinal|\n\t\t\t\t\tabstract|\n\t\t\t\t\tvolatile|\n\t\t\t\t\tsynchronized|\n\t\t\t\t\tlazy|\n\t\t\t\t\tnothrow|\n\t\t\t\t\timmutable|\n\t\t\t\t\tconst|\n\t\t\t\t\tinout|\n\t\t\t\t\tref|\n\t\t\t\t\tin|\n\t\t\t\t\tscope|\n\t\t\t\t\t__gshared|\n\t\t\t\t\tshared|\n\t\t\t\t\tpure\n\t\t\t\t)\n\t\t\t\t\\b|\n\t\t\t\t(@)(\n\t\t\t\t\tproperty|\n\t\t\t\t\tdisable|\n\t\t\t\t\tnogc|\n\t\t\t\t\tsafe|\n\t\t\t\t\ttrusted|\n\t\t\t\t\tsystem\n\t\t\t\t)\\b"
285
+ "match": "(?x)\n\t\t\t\t\\b(\n\t\t\t\t\tauto|\n\t\t\t\t\tstatic|\n\t\t\t\t\toverride|\n\t\t\t\t\tfinal|\n\t\t\t\t\tabstract|\n\t\t\t\t\tvolatile|\n\t\t\t\t\tsynchronized|\n\t\t\t\t\tlazy|\n\t\t\t\t\tnothrow|\n\t\t\t\t\timmutable|\n\t\t\t\t\tconst|\n\t\t\t\t\tinout|\n\t\t\t\t\tref|\n\t\t\t\t\tin|\n\t\t\t\t\tscope|\n\t\t\t\t\t__gshared|\n\t\t\t\t\tshared|\n\t\t\t\t\tpure\n\t\t\t\t)\n\t\t\t\t\\b|\n\t\t\t\t(@)(\n\t\t\t\t\tproperty|\n\t\t\t\t\tdisable|\n\t\t\t\t\tnogc|\n\t\t\t\t\tlive|\n\t\t\t\t\tsafe|\n\t\t\t\t\ttrusted|\n\t\t\t\t\tsystem\n\t\t\t\t)\\b"
286
286
  },
287
287
  {
288
288
  "name": "storage.type.structure.d",
@@ -14,6 +14,9 @@
14
14
  {
15
15
  "include": "#strings"
16
16
  },
17
+ {
18
+ "include": "#comments"
19
+ },
17
20
  {
18
21
  "name": "keyword.other.import.dart",
19
22
  "match": "\\b(as|show|hide)\\b"
@@ -40,10 +43,10 @@
40
43
  "include": "#annotations"
41
44
  },
42
45
  {
43
- "include": "#constants-and-special-vars"
46
+ "include": "#keywords"
44
47
  },
45
48
  {
46
- "include": "#keywords"
49
+ "include": "#constants-and-special-vars"
47
50
  },
48
51
  {
49
52
  "include": "#strings"
@@ -80,34 +83,31 @@
80
83
  }
81
84
  ]
82
85
  },
83
- "comments-doc": {
86
+ "comments-block": {
84
87
  "patterns": [
85
88
  {
86
- "match": "(///) (.*?)$",
87
- "captures": {
88
- "1": {
89
- "name": "comment.block.triple-slash.dart"
90
- },
91
- "2": {
92
- "name": "variable.other.source.dart"
89
+ "name": "comment.block.dart",
90
+ "begin": "/\\*",
91
+ "end": "\\*/",
92
+ "patterns": [
93
+ {
94
+ "include": "#comments-block"
93
95
  }
94
- }
95
- },
96
+ ]
97
+ }
98
+ ]
99
+ },
100
+ "comments-doc": {
101
+ "patterns": [
96
102
  {
97
- "match": "(///)(.*?)$",
98
- "captures": {
99
- "1": {
100
- "name": "comment.block.triple-slash.dart"
101
- },
102
- "2": {
103
- "name": "comment.block.documentation.dart",
104
- "patterns": [
105
- {
106
- "include": "#dartdoc"
107
- }
108
- ]
103
+ "name": "comment.block.documentation.dart",
104
+ "begin": "///",
105
+ "while": "^\\s*///",
106
+ "patterns": [
107
+ {
108
+ "include": "#dartdoc"
109
109
  }
110
- }
110
+ ]
111
111
  }
112
112
  ]
113
113
  },
@@ -121,6 +121,9 @@
121
121
  {
122
122
  "include": "#comments-doc-oldschool"
123
123
  },
124
+ {
125
+ "include": "#comments-block"
126
+ },
124
127
  {
125
128
  "include": "#dartdoc"
126
129
  }
@@ -131,9 +134,7 @@
131
134
  "comments-inline": {
132
135
  "patterns": [
133
136
  {
134
- "name": "comment.block.dart",
135
- "begin": "/\\*",
136
- "end": "\\*/"
137
+ "include": "#comments-block"
137
138
  },
138
139
  {
139
140
  "match": "((//).*)$",
@@ -161,7 +162,7 @@
161
162
  },
162
163
  {
163
164
  "name": "support.class.dart",
164
- "match": "(?\u003c![a-zA-Z0-9_$])[_$]*[A-Z][a-zA-Z0-9_$]*"
165
+ "match": "(?\u003c![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*|bool\\b|num\\b|int\\b|double\\b|dynamic\\b)"
165
166
  },
166
167
  {
167
168
  "match": "([_$]*[a-z][a-zA-Z0-9_$]*)(\u003c|\\(|\\s+=\u003e)",
@@ -183,6 +184,27 @@
183
184
  }
184
185
  }
185
186
  },
187
+ {
188
+ "match": "^ {4,}(?![ \\*]).*",
189
+ "captures": {
190
+ "0": {
191
+ "name": "variable.name.source.dart"
192
+ }
193
+ }
194
+ },
195
+ {
196
+ "contentName": "variable.other.source.dart",
197
+ "begin": "```.*?$",
198
+ "end": "```"
199
+ },
200
+ {
201
+ "match": "(`.*?`)",
202
+ "captures": {
203
+ "0": {
204
+ "name": "variable.other.source.dart"
205
+ }
206
+ }
207
+ },
186
208
  {
187
209
  "match": "(`.*?`)",
188
210
  "captures": {
@@ -232,7 +254,7 @@
232
254
  },
233
255
  {
234
256
  "name": "keyword.declaration.dart",
235
- "match": "(?\u003c!\\$)\\b(abstract|class|enum|extends|external|factory|implements|get|mixin|native|operator|set|typedef|with|covariant)\\b(?!\\$)"
257
+ "match": "(?\u003c!\\$)\\b(abstract|class|enum|extends|extension|external|factory|implements|get|mixin|native|operator|set|typedef|with|covariant)\\b(?!\\$)"
236
258
  },
237
259
  {
238
260
  "name": "keyword.operator.dart",
@@ -250,6 +272,10 @@
250
272
  "name": "keyword.operator.assignment.bitwise.dart",
251
273
  "match": "((\u0026|\\^|\\||\u003c\u003c|\u003e\u003e\u003e?)=)"
252
274
  },
275
+ {
276
+ "name": "keyword.operator.closure.dart",
277
+ "match": "(=\u003e)"
278
+ },
253
279
  {
254
280
  "name": "keyword.operator.comparison.dart",
255
281
  "match": "(==|!=|\u003c=?|\u003e=?)"
@@ -276,11 +302,11 @@
276
302
  },
277
303
  {
278
304
  "name": "storage.modifier.dart",
279
- "match": "(?\u003c!\\$)\\b(static|final|const)\\b(?!\\$)"
305
+ "match": "(?\u003c!\\$)\\b(static|final|const|required|late)\\b(?!\\$)"
280
306
  },
281
307
  {
282
308
  "name": "storage.type.primitive.dart",
283
- "match": "(?\u003c!\\$)\\b(?:void|bool|num|int|double|dynamic|var)\\b(?!\\$)"
309
+ "match": "(?\u003c!\\$)\\b(?:void|var)\\b(?!\\$)"
284
310
  }
285
311
  ]
286
312
  },
@@ -0,0 +1,137 @@
1
+ {
2
+ "name": "dircolors",
3
+ "scopeName": "source.dircolors",
4
+ "patterns": [
5
+ {
6
+ "begin": "(^\\s+)?(?\u003c!\\S)(?=#)(?!#\\{)",
7
+ "end": "(?!\\G)",
8
+ "patterns": [
9
+ {
10
+ "name": "comment.line.number-sign.dircolors",
11
+ "begin": "#",
12
+ "end": "\\n",
13
+ "beginCaptures": {
14
+ "0": {
15
+ "name": "punctuation.definition.comment.dircolors"
16
+ }
17
+ }
18
+ }
19
+ ],
20
+ "beginCaptures": {
21
+ "1": {
22
+ "name": "punctuation.whitespace.comment.leading.dircolors"
23
+ }
24
+ }
25
+ },
26
+ {
27
+ "name": "constant.numeric.radix.dircolors",
28
+ "match": "\\b[0-3]?[0-9]#[0-9a-zA-Z]+\\b"
29
+ },
30
+ {
31
+ "name": "constant.numeric.dircolors",
32
+ "match": "\\b\\d+?\\b"
33
+ },
34
+ {
35
+ "name": "punctuation.delimiter.semicolon.dircolors",
36
+ "match": ";"
37
+ },
38
+ {
39
+ "match": "(?i)^(\\s*)(TERM)\\s+((?:[^\\s#\\\\]|\\\\.)+)",
40
+ "captures": {
41
+ "1": {
42
+ "name": "punctuation.whitespace.comment.leading.dircolors"
43
+ },
44
+ "2": {
45
+ "name": "keyword.other.dircolors"
46
+ },
47
+ "3": {
48
+ "name": "variable.parameter.function.terminal-type.dircolors"
49
+ }
50
+ }
51
+ },
52
+ {
53
+ "match": "(?i)^(\\s*)(COLOR|EIGHTBIT)\\s+(all|none|no|tty|yes)\\b",
54
+ "captures": {
55
+ "1": {
56
+ "name": "punctuation.whitespace.comment.leading.dircolors"
57
+ },
58
+ "2": {
59
+ "name": "keyword.other.dircolors"
60
+ },
61
+ "3": {
62
+ "name": "constant.language.${3:/downcase}.dircolors"
63
+ }
64
+ }
65
+ },
66
+ {
67
+ "match": "(?i)^(\\s*)(OPTIONS)\\s+((?:[^\\s#\\\\]|\\\\.)+)",
68
+ "captures": {
69
+ "1": {
70
+ "name": "punctuation.whitespace.comment.leading.dircolors"
71
+ },
72
+ "2": {
73
+ "name": "keyword.other.dircolors"
74
+ },
75
+ "3": {
76
+ "patterns": [
77
+ {
78
+ "include": "source.opts"
79
+ }
80
+ ]
81
+ }
82
+ }
83
+ },
84
+ {
85
+ "match": "(?ix)\n^ (\\s*)\n(TERM|COLOR|EIGHTBIT|OPTION|NORMAL|NORM|FILE|RESET|DIR|LNK|LINK|SYMLINK|ORPHAN|MISSING\n|FIFO|PIPE|SOCK|BLK|BLOCK|CHR|CHAR|DOOR|EXEC|LEFT|LEFTCODE|RIGHT|RIGHTCODE|END|ENDCODE\n|SUID|SETUID|SGID|SETGID|STICKY|OTHER_WRITABLE|OWR|STICKY_OTHER_WRITABLE|OWT|CAPABILITY\n|MULTIHARDLINK|CLRTOEOL)\n(?=\\s|\\#|$)",
86
+ "captures": {
87
+ "1": {
88
+ "name": "punctuation.whitespace.comment.leading.dircolors"
89
+ },
90
+ "2": {
91
+ "name": "keyword.other.dircolors"
92
+ }
93
+ }
94
+ },
95
+ {
96
+ "match": "^(\\s*)((?:[^\\s#\\\\]|\\\\.)+)",
97
+ "captures": {
98
+ "1": {
99
+ "name": "punctuation.whitespace.comment.leading.dircolors"
100
+ },
101
+ "2": {
102
+ "name": "keyword.other.extension.dircolors",
103
+ "patterns": [
104
+ {
105
+ "include": "#escape"
106
+ }
107
+ ]
108
+ }
109
+ }
110
+ },
111
+ {
112
+ "include": "#escape"
113
+ }
114
+ ],
115
+ "repository": {
116
+ "escape": {
117
+ "patterns": [
118
+ {
119
+ "name": "constant.character.escape.caret-notation.dircolors",
120
+ "match": "\\^[?@A-Za-z\\[\\\\\\]^_]"
121
+ },
122
+ {
123
+ "name": "constant.character.escape.codepoint.hexadecimal.dircolors",
124
+ "match": "\\\\x[0-9A-Fa-f]{1,3}"
125
+ },
126
+ {
127
+ "name": "constant.character.escape.codepoint.octal.dircolors",
128
+ "match": "\\\\[0-7]{1,3}"
129
+ },
130
+ {
131
+ "name": "constant.character.escape.dircolors",
132
+ "match": "(?i)\\\\[abefnrtv?\\_^#]"
133
+ }
134
+ ]
135
+ }
136
+ }
137
+ }
@@ -0,0 +1,135 @@
1
+ {
2
+ "name": "DirectX 3D File",
3
+ "scopeName": "source.direct-x",
4
+ "patterns": [
5
+ {
6
+ "include": "#main"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "header": {
11
+ "name": "meta.signature.header.direct-x",
12
+ "match": "^\\s*(xof)\\s*(\\d+)\\s*(txt|bin|tzip|bzip)\\s*(.*)",
13
+ "captures": {
14
+ "1": {
15
+ "name": "keyword.control.magic-number.direct-x"
16
+ },
17
+ "2": {
18
+ "name": "constant.numeric.integer.int.version-number.direct-x"
19
+ },
20
+ "3": {
21
+ "name": "storage.type.var.format.direct-x"
22
+ },
23
+ "4": {
24
+ "patterns": [
25
+ {
26
+ "include": "etc"
27
+ }
28
+ ]
29
+ }
30
+ }
31
+ },
32
+ "keywords": {
33
+ "name": "keyword.operator.reserved.direct-x",
34
+ "match": "(?ix) \\b\n(ARRAY|BINARY_RESOURCE|BINARY|CHAR|CSTRING|DOUBLE|DWORD|FLOAT\n|SDWORD|STRING|SWORD|TEMPLATE|UCHAR|ULONGLONG|UNICODE|WORD)\\b"
35
+ },
36
+ "main": {
37
+ "patterns": [
38
+ {
39
+ "include": "#header"
40
+ },
41
+ {
42
+ "include": "#template"
43
+ },
44
+ {
45
+ "include": "#uuid"
46
+ },
47
+ {
48
+ "include": "#keywords"
49
+ },
50
+ {
51
+ "include": "#templateTypes"
52
+ },
53
+ {
54
+ "include": "#name"
55
+ },
56
+ {
57
+ "include": "etc#ellipsis"
58
+ },
59
+ {
60
+ "include": "etc#commentHash"
61
+ },
62
+ {
63
+ "include": "etc#commentSlash"
64
+ },
65
+ {
66
+ "include": "etc"
67
+ }
68
+ ]
69
+ },
70
+ "name": {
71
+ "name": "variable.other.direct-x",
72
+ "match": "(?!\\d)\\w+"
73
+ },
74
+ "template": {
75
+ "name": "meta.template.direct-x",
76
+ "begin": "\\b([A-Za-z_]\\w*)\\s+((?!\\d)\\w+)\\s*({)",
77
+ "end": "}",
78
+ "patterns": [
79
+ {
80
+ "include": "#main"
81
+ }
82
+ ],
83
+ "beginCaptures": {
84
+ "1": {
85
+ "name": "storage.type.function.template.direct-x"
86
+ },
87
+ "2": {
88
+ "name": "entity.name.function.direct-x"
89
+ },
90
+ "3": {
91
+ "name": "punctuation.section.scope.begin.direct-x"
92
+ }
93
+ },
94
+ "endCaptures": {
95
+ "0": {
96
+ "name": "punctuation.section.scope.end.direct-x"
97
+ }
98
+ }
99
+ },
100
+ "templateTypes": {
101
+ "name": "storage.type.var.template.direct-x",
102
+ "match": "(?ix) \\b\n(AnimTicksPerSecond|AnimationKey|AnimationOptions|AnimationSet|Animation|Boolean2d|Boolean|ColorRGBA?|CompressedAnimationSet\n|Coords2d|DeclData|EffectDWord|EffectFloats|EffectInstance|EffectParamDWord|EffectParamFloats|EffectParamString|EffectString\n|FVFData|FaceAdjacency|FloatKeys|FrameTransformMatrix|Frame|Guid|IndexedColor|MaterialWrap|Material|Matrix4x4|MeshFaceWraps\n|MeshFace|MeshMaterialList|MeshNormals|MeshTextureCoords|MeshVertexColors|Mesh|PMAttributeRange|PMInfo|PMVSplitRecord\n|PatchMesh9|PatchMesh|Patch|SkinWeights|Templates|TextureFilename|TimedFloatKeys|Vector|VertexDuplicationIndices\n|VertexElement|XSkinMeshHeader) \\b"
103
+ },
104
+ "uuid": {
105
+ "name": "meta.uuid.direct-x",
106
+ "match": "(\u003c)([-\\sA-Fa-f0-9]+)(\u003e)",
107
+ "captures": {
108
+ "1": {
109
+ "patterns": [
110
+ {
111
+ "include": "etc#bracket"
112
+ }
113
+ ]
114
+ },
115
+ "2": {
116
+ "patterns": [
117
+ {
118
+ "include": "etc#dash"
119
+ },
120
+ {
121
+ "include": "etc#hexNoSign"
122
+ }
123
+ ]
124
+ },
125
+ "3": {
126
+ "patterns": [
127
+ {
128
+ "include": "etc#bracket"
129
+ }
130
+ ]
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }