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
@@ -0,0 +1,383 @@
1
+ {
2
+ "name": "Sieve",
3
+ "scopeName": "source.sieve",
4
+ "patterns": [
5
+ {
6
+ "include": "#main"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "action": {
11
+ "name": "meta.action.sieve",
12
+ "begin": "\\b(?!\\d)\\w+",
13
+ "end": "(?=\\s*(?:$|\\]|\\)|[};,]))",
14
+ "patterns": [
15
+ {
16
+ "include": "#arguments"
17
+ }
18
+ ],
19
+ "beginCaptures": {
20
+ "0": {
21
+ "name": "keyword.operator.action.sieve"
22
+ }
23
+ }
24
+ },
25
+ "arguments": {
26
+ "patterns": [
27
+ {
28
+ "include": "#taggedArgument"
29
+ },
30
+ {
31
+ "include": "#comparator"
32
+ },
33
+ {
34
+ "include": "#stringBlock"
35
+ },
36
+ {
37
+ "include": "#testList"
38
+ },
39
+ {
40
+ "include": "#stringList"
41
+ },
42
+ {
43
+ "include": "#strings"
44
+ },
45
+ {
46
+ "include": "#numbers"
47
+ },
48
+ {
49
+ "include": "#comments"
50
+ },
51
+ {
52
+ "include": "#punctuation"
53
+ }
54
+ ]
55
+ },
56
+ "block": {
57
+ "name": "meta.block.sieve",
58
+ "begin": "{",
59
+ "end": "}",
60
+ "patterns": [
61
+ {
62
+ "include": "#main"
63
+ }
64
+ ],
65
+ "beginCaptures": {
66
+ "0": {
67
+ "name": "punctuation.definition.brace.bracket.curly.begin.sieve"
68
+ }
69
+ },
70
+ "endCaptures": {
71
+ "0": {
72
+ "name": "punctuation.definition.brace.bracket.curly.end.sieve"
73
+ }
74
+ }
75
+ },
76
+ "comments": {
77
+ "patterns": [
78
+ {
79
+ "name": "comment.line.number-sign.sieve",
80
+ "begin": "#",
81
+ "end": "$",
82
+ "beginCaptures": {
83
+ "0": {
84
+ "name": "punctuation.definition.comment.sieve"
85
+ }
86
+ }
87
+ },
88
+ {
89
+ "name": "comment.block.bracketed.sieve",
90
+ "begin": "/\\*",
91
+ "end": "\\*/",
92
+ "beginCaptures": {
93
+ "0": {
94
+ "name": "punctuation.definition.comment.begin.sieve"
95
+ }
96
+ },
97
+ "endCaptures": {
98
+ "0": {
99
+ "name": "punctuation.definition.comment.end.sieve"
100
+ }
101
+ }
102
+ }
103
+ ]
104
+ },
105
+ "comparator": {
106
+ "patterns": [
107
+ {
108
+ "name": "storage.modifier.comparator.${3:/downcase}.sieve",
109
+ "match": "(?i)(\")i(;)(octet|ascii-casemap)(\")",
110
+ "captures": {
111
+ "1": {
112
+ "name": "punctuation.definition.comparator.begin.sieve"
113
+ },
114
+ "2": {
115
+ "name": "punctuation.separator.delimiter.semicolon.sieve"
116
+ },
117
+ "4": {
118
+ "name": "punctuation.definition.comparator.end.sieve"
119
+ }
120
+ }
121
+ },
122
+ {
123
+ "match": "(?i)(?\u003c=:comparator)\\s*((\")(?!i;(?:octet|ascii-casemap)\")[^\"]+(\"))",
124
+ "captures": {
125
+ "1": {
126
+ "name": "storage.modifier.comparator.non-standard.sieve"
127
+ },
128
+ "2": {
129
+ "name": "punctuation.definition.comparator.begin.sieve"
130
+ },
131
+ "3": {
132
+ "name": "punctuation.definition.comparator.end.sieve"
133
+ }
134
+ }
135
+ }
136
+ ]
137
+ },
138
+ "conditional": {
139
+ "name": "meta.conditional.${1:/downcase}.sieve",
140
+ "begin": "(?i)\\b(if|elsif|else)(?=[\\s{]|$)",
141
+ "end": "(?\u003c=\\})",
142
+ "patterns": [
143
+ {
144
+ "include": "#test"
145
+ },
146
+ {
147
+ "include": "#comment"
148
+ },
149
+ {
150
+ "include": "#block"
151
+ }
152
+ ],
153
+ "beginCaptures": {
154
+ "1": {
155
+ "name": "keyword.control.flow.${1:/downcase}.sieve"
156
+ }
157
+ }
158
+ },
159
+ "encodedCharacter": {
160
+ "name": "meta.encoded-character.${2:/downcase}.sieve",
161
+ "match": "(?i)(\\$\\{)(hex|unicode)(:)([\\s0-9A-Fa-f]+)(})",
162
+ "captures": {
163
+ "1": {
164
+ "name": "punctuation.section.embedded.begin.sieve"
165
+ },
166
+ "2": {
167
+ "name": "entity.name.encoding.${2:/downcase}.sieve"
168
+ },
169
+ "3": {
170
+ "name": "punctuation.delimiter.separator.colon.sieve"
171
+ },
172
+ "4": {
173
+ "patterns": [
174
+ {
175
+ "name": "constant.numeric.integer.hex.sieve",
176
+ "match": "[0-9A-Fa-f]+"
177
+ }
178
+ ]
179
+ },
180
+ "5": {
181
+ "name": "punctuation.section.embedded.end.sieve"
182
+ }
183
+ }
184
+ },
185
+ "main": {
186
+ "patterns": [
187
+ {
188
+ "include": "#comments"
189
+ },
190
+ {
191
+ "include": "#conditional"
192
+ },
193
+ {
194
+ "include": "#require"
195
+ },
196
+ {
197
+ "include": "#arguments"
198
+ },
199
+ {
200
+ "include": "#block"
201
+ },
202
+ {
203
+ "include": "#action"
204
+ }
205
+ ]
206
+ },
207
+ "numbers": {
208
+ "name": "constant.numeric.integer.int.decimal.sieve",
209
+ "match": "(?i)\\d+(K|M|G)?",
210
+ "captures": {
211
+ "1": {
212
+ "name": "constant.language.quantifier.${1:/downcase}b.sieve"
213
+ }
214
+ }
215
+ },
216
+ "punctuation": {
217
+ "patterns": [
218
+ {
219
+ "name": "punctuation.separator.delimiter.sieve",
220
+ "match": ","
221
+ },
222
+ {
223
+ "name": "punctuation.terminator.statement.semicolon.sieve",
224
+ "match": ";"
225
+ }
226
+ ]
227
+ },
228
+ "require": {
229
+ "name": "keyword.control.directive.include.require.sieve",
230
+ "match": "\\b(?i:require)(?=\\s|$|\\[)"
231
+ },
232
+ "stringBlock": {
233
+ "name": "meta.multi-line.sieve",
234
+ "contentName": "string.unquoted.heredoc.multiline.sieve",
235
+ "begin": "(?i)\\b(text(:))\\s*(?:$|(#.*))",
236
+ "end": "^\\.$",
237
+ "beginCaptures": {
238
+ "1": {
239
+ "name": "storage.type.text.sieve"
240
+ },
241
+ "2": {
242
+ "name": "punctuation.definition.heredoc.begin.sieve"
243
+ },
244
+ "3": {
245
+ "patterns": [
246
+ {
247
+ "include": "#comments"
248
+ }
249
+ ]
250
+ }
251
+ },
252
+ "endCaptures": {
253
+ "0": {
254
+ "name": "punctuation.definition.heredoc.end.sieve"
255
+ }
256
+ }
257
+ },
258
+ "stringEscapes": {
259
+ "patterns": [
260
+ {
261
+ "name": "constant.character.escape.backslash.sieve",
262
+ "match": "(\\\\)\\\\",
263
+ "captures": {
264
+ "1": {
265
+ "name": "punctuation.definition.escape.backslash.sieve"
266
+ }
267
+ }
268
+ },
269
+ {
270
+ "name": "constant.character.escape.quote.sieve",
271
+ "match": "(\\\\)\"",
272
+ "captures": {
273
+ "1": {
274
+ "name": "punctuation.definition.escape.backslash.sieve"
275
+ }
276
+ }
277
+ },
278
+ {
279
+ "name": "invalid.deprecated.unknown-escape.sieve",
280
+ "match": "(\\\\).",
281
+ "captures": {
282
+ "1": {
283
+ "name": "punctuation.definition.escape.backslash.sieve"
284
+ }
285
+ }
286
+ }
287
+ ]
288
+ },
289
+ "stringList": {
290
+ "name": "meta.string-list.sieve",
291
+ "begin": "\\[",
292
+ "end": "\\]",
293
+ "patterns": [
294
+ {
295
+ "include": "#main"
296
+ }
297
+ ],
298
+ "beginCaptures": {
299
+ "0": {
300
+ "name": "punctuation.definition.bracket.square.begin.sieve"
301
+ }
302
+ },
303
+ "endCaptures": {
304
+ "0": {
305
+ "name": "punctuation.definition.bracket.square.end.sieve"
306
+ }
307
+ }
308
+ },
309
+ "strings": {
310
+ "name": "string.quoted.double.sieve",
311
+ "begin": "\"",
312
+ "end": "\"",
313
+ "patterns": [
314
+ {
315
+ "include": "#encodedCharacter"
316
+ },
317
+ {
318
+ "include": "#stringEscapes"
319
+ }
320
+ ],
321
+ "beginCaptures": {
322
+ "0": {
323
+ "name": "punctuation.definition.string.begin.sieve"
324
+ }
325
+ },
326
+ "endCaptures": {
327
+ "0": {
328
+ "name": "punctuation.definition.string.end.sieve"
329
+ }
330
+ }
331
+ },
332
+ "taggedArgument": {
333
+ "name": "keyword.operator.tagged-argument.sieve",
334
+ "match": "(:)(?!\\d)\\w+",
335
+ "captures": {
336
+ "1": {
337
+ "name": "punctuation.definition.colon.tagged-argument.sieve"
338
+ }
339
+ }
340
+ },
341
+ "test": {
342
+ "name": "meta.tests.sieve",
343
+ "begin": "(?:\\G|^|(?\u003c=,|\\())\\s*(?i:(not)\\s+)?((?:[^\\s(){},:\\[\\]#/]|/[^*])++)",
344
+ "end": "(?=\\s*[{,\\)])",
345
+ "patterns": [
346
+ {
347
+ "include": "#arguments"
348
+ }
349
+ ],
350
+ "beginCaptures": {
351
+ "1": {
352
+ "name": "entity.name.function.test.negation.sieve"
353
+ },
354
+ "2": {
355
+ "name": "entity.name.function.test.sieve"
356
+ }
357
+ }
358
+ },
359
+ "testList": {
360
+ "name": "meta.test-list.sieve",
361
+ "begin": "\\(",
362
+ "end": "\\)",
363
+ "patterns": [
364
+ {
365
+ "include": "#test"
366
+ },
367
+ {
368
+ "include": "#main"
369
+ }
370
+ ],
371
+ "beginCaptures": {
372
+ "0": {
373
+ "name": "punctuation.definition.bracket.round.begin.sieve"
374
+ }
375
+ },
376
+ "endCaptures": {
377
+ "0": {
378
+ "name": "punctuation.definition.bracket.round.end.sieve"
379
+ }
380
+ }
381
+ }
382
+ }
383
+ }
@@ -92,7 +92,7 @@
92
92
  },
93
93
  {
94
94
  "name": "keyword.control",
95
- "match": "\\b(var|import|constant|pragma|payable|storage|memory|calldata|if|else|for|while|do|break|continue|returns?|private|public|pure|view|internal|external|this|suicide|selfdestruct|delegatecall|emit|new|is|throw|revert|assert|require|\\_)\\b"
95
+ "match": "\\b(var|import|constant|pragma|payable|storage|memory|calldata|if|else|for|while|do|break|continue|returns?|try|catch|private|public|pure|view|internal|external|virtual|override|abstract|this|suicide|selfdestruct|delegatecall|emit|new|is|throw|revert|assert|require|receive|fallback\\_)\\b"
96
96
  },
97
97
  {
98
98
  "match": "\\b([A-Za-z_]\\w*)\\s*\\:\\s*",
@@ -33,19 +33,6 @@
33
33
  }
34
34
  }
35
35
  },
36
- "ip-address": {
37
- "name": "constant.numeric.other.ip-address.ssh-config",
38
- "match": "(?:\\d+\\.){3,}\\d+(?=\\s|$)",
39
- "captures": {
40
- "0": {
41
- "patterns": [
42
- {
43
- "include": "etc#dot"
44
- }
45
- ]
46
- }
47
- }
48
- },
49
36
  "main": {
50
37
  "patterns": [
51
38
  {
@@ -72,7 +59,7 @@
72
59
  "include": "#boolean"
73
60
  },
74
61
  {
75
- "include": "#ip-address"
62
+ "include": "etc#ip"
76
63
  },
77
64
  {
78
65
  "include": "etc#int"
@@ -2686,7 +2686,7 @@
2686
2686
  {
2687
2687
  "name": "string.quoted.double.block.swift",
2688
2688
  "begin": "\"\"\"",
2689
- "end": "\"\"\"",
2689
+ "end": "\"\"\"(#*)",
2690
2690
  "patterns": [
2691
2691
  {
2692
2692
  "name": "invalid.illegal.content-after-opening-delimiter.swift",
@@ -2712,13 +2712,75 @@
2712
2712
  "endCaptures": {
2713
2713
  "0": {
2714
2714
  "name": "punctuation.definition.string.end.swift"
2715
+ },
2716
+ "1": {
2717
+ "name": "invalid.illegal.extra-closing-delimiter.swift"
2718
+ }
2719
+ }
2720
+ },
2721
+ {
2722
+ "name": "string.quoted.double.block.raw.swift",
2723
+ "begin": "#\"\"\"",
2724
+ "end": "\"\"\"#(#*)",
2725
+ "patterns": [
2726
+ {
2727
+ "name": "invalid.illegal.content-after-opening-delimiter.swift",
2728
+ "match": "\\G.+(?=\"\"\")|\\G.+"
2729
+ },
2730
+ {
2731
+ "name": "constant.character.escape.newline.swift",
2732
+ "match": "\\\\#\\s*\\n"
2733
+ },
2734
+ {
2735
+ "include": "#raw-string-guts"
2736
+ },
2737
+ {
2738
+ "name": "invalid.illegal.content-before-closing-delimiter.swift",
2739
+ "match": "\\S((?!\\\\#\\().)*(?=\"\"\")"
2740
+ }
2741
+ ],
2742
+ "beginCaptures": {
2743
+ "0": {
2744
+ "name": "punctuation.definition.string.begin.swift"
2745
+ }
2746
+ },
2747
+ "endCaptures": {
2748
+ "0": {
2749
+ "name": "punctuation.definition.string.end.swift"
2750
+ },
2751
+ "1": {
2752
+ "name": "invalid.illegal.extra-closing-delimiter.swift"
2753
+ }
2754
+ }
2755
+ },
2756
+ {
2757
+ "name": "string.quoted.double.block.raw.swift",
2758
+ "begin": "(##+)\"\"\"",
2759
+ "end": "\"\"\"\\1(#*)",
2760
+ "patterns": [
2761
+ {
2762
+ "name": "invalid.illegal.content-after-opening-delimiter.swift",
2763
+ "match": "\\G.+(?=\"\"\")|\\G.+"
2764
+ }
2765
+ ],
2766
+ "beginCaptures": {
2767
+ "0": {
2768
+ "name": "punctuation.definition.string.begin.swift"
2769
+ }
2770
+ },
2771
+ "endCaptures": {
2772
+ "0": {
2773
+ "name": "punctuation.definition.string.end.swift"
2774
+ },
2775
+ "1": {
2776
+ "name": "invalid.illegal.extra-closing-delimiter.swift"
2715
2777
  }
2716
2778
  }
2717
2779
  },
2718
2780
  {
2719
2781
  "name": "string.quoted.double.single-line.swift",
2720
2782
  "begin": "\"",
2721
- "end": "\"",
2783
+ "end": "\"(#*)",
2722
2784
  "patterns": [
2723
2785
  {
2724
2786
  "name": "invalid.illegal.returns-not-allowed.swift",
@@ -2736,11 +2798,109 @@
2736
2798
  "endCaptures": {
2737
2799
  "0": {
2738
2800
  "name": "punctuation.definition.string.end.swift"
2801
+ },
2802
+ "1": {
2803
+ "name": "invalid.illegal.extra-closing-delimiter.swift"
2804
+ }
2805
+ }
2806
+ },
2807
+ {
2808
+ "name": "string.quoted.double.single-line.raw.swift",
2809
+ "begin": "(##+)\"",
2810
+ "end": "\"\\1(#*)",
2811
+ "patterns": [
2812
+ {
2813
+ "name": "invalid.illegal.returns-not-allowed.swift",
2814
+ "match": "\\r|\\n"
2815
+ }
2816
+ ],
2817
+ "beginCaptures": {
2818
+ "0": {
2819
+ "name": "punctuation.definition.string.begin.raw.swift"
2820
+ }
2821
+ },
2822
+ "endCaptures": {
2823
+ "0": {
2824
+ "name": "punctuation.definition.string.end.raw.swift"
2825
+ },
2826
+ "1": {
2827
+ "name": "invalid.illegal.extra-closing-delimiter.swift"
2828
+ }
2829
+ }
2830
+ },
2831
+ {
2832
+ "name": "string.quoted.double.single-line.raw.swift",
2833
+ "begin": "#\"",
2834
+ "end": "\"#(#*)",
2835
+ "patterns": [
2836
+ {
2837
+ "name": "invalid.illegal.returns-not-allowed.swift",
2838
+ "match": "\\r|\\n"
2839
+ },
2840
+ {
2841
+ "include": "#raw-string-guts"
2842
+ }
2843
+ ],
2844
+ "beginCaptures": {
2845
+ "0": {
2846
+ "name": "punctuation.definition.string.begin.raw.swift"
2847
+ }
2848
+ },
2849
+ "endCaptures": {
2850
+ "0": {
2851
+ "name": "punctuation.definition.string.end.raw.swift"
2852
+ },
2853
+ "1": {
2854
+ "name": "invalid.illegal.extra-closing-delimiter.swift"
2739
2855
  }
2740
2856
  }
2741
2857
  }
2742
2858
  ],
2743
2859
  "repository": {
2860
+ "raw-string-guts": {
2861
+ "patterns": [
2862
+ {
2863
+ "name": "constant.character.escape.swift",
2864
+ "match": "\\\\#[0\\\\tnr\"']"
2865
+ },
2866
+ {
2867
+ "name": "constant.character.escape.unicode.swift",
2868
+ "match": "\\\\#u\\{[0-9a-fA-F]{1,8}\\}"
2869
+ },
2870
+ {
2871
+ "name": "meta.embedded.line.swift",
2872
+ "contentName": "source.swift",
2873
+ "begin": "\\\\#\\(",
2874
+ "end": "(\\))",
2875
+ "patterns": [
2876
+ {
2877
+ "include": "$self"
2878
+ },
2879
+ {
2880
+ "begin": "\\(",
2881
+ "end": "\\)"
2882
+ }
2883
+ ],
2884
+ "beginCaptures": {
2885
+ "0": {
2886
+ "name": "punctuation.section.embedded.begin.swift"
2887
+ }
2888
+ },
2889
+ "endCaptures": {
2890
+ "0": {
2891
+ "name": "punctuation.section.embedded.end.swift"
2892
+ },
2893
+ "1": {
2894
+ "name": "source.swift"
2895
+ }
2896
+ }
2897
+ },
2898
+ {
2899
+ "name": "invalid.illegal.escape-not-recognized",
2900
+ "match": "\\\\#."
2901
+ }
2902
+ ]
2903
+ },
2744
2904
  "string-guts": {
2745
2905
  "patterns": [
2746
2906
  {