github-linguist 4.8.15 → 4.8.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/hint.haskell.json +206 -58
  3. data/grammars/hint.message.haskell.json +206 -58
  4. data/grammars/hint.type.haskell.json +206 -58
  5. data/grammars/source.actionscript.3.json +20 -22
  6. data/grammars/source.bsl.json +41 -9
  7. data/grammars/source.c++.json +2 -2
  8. data/grammars/source.clojure.json +3 -2
  9. data/grammars/source.coffee.json +32 -50
  10. data/grammars/source.crystal.json +21 -9
  11. data/grammars/source.cs.json +6 -0
  12. data/grammars/source.css.less.json +11 -11
  13. data/grammars/source.elixir.json +3 -3
  14. data/grammars/source.emacs.lisp.json +105 -11
  15. data/grammars/source.gfm.json +147 -0
  16. data/grammars/source.haskell.json +202 -147
  17. data/grammars/source.js.embedded.html.json +10 -0
  18. data/grammars/source.js.json +73 -26
  19. data/grammars/source.lean.json +8 -4
  20. data/grammars/source.litcoffee.json +1 -0
  21. data/grammars/source.mql5.json +214 -0
  22. data/grammars/source.objc.json +1 -1
  23. data/grammars/source.pic.json +67 -22
  24. data/grammars/source.python.json +6 -6
  25. data/grammars/source.sdbl.json +1 -1
  26. data/grammars/source.shell.json +1 -1
  27. data/grammars/source.sqf.json +5 -1
  28. data/grammars/source.swift.json +2564 -707
  29. data/grammars/source.ts.json +2581 -702
  30. data/grammars/source.tsx.json +2779 -841
  31. data/grammars/source.yaml.json +2 -2
  32. data/grammars/text.html.asdoc.json +0 -2
  33. data/grammars/text.html.handlebars.json +1 -1
  34. data/grammars/text.restructuredtext.json +37 -8
  35. data/grammars/text.roff.json +9 -1
  36. data/grammars/text.shell-session.json +1 -1
  37. data/grammars/text.tex.latex.haskell.json +207 -152
  38. data/grammars/text.xml.flex-config.json +0 -2
  39. data/lib/linguist/heuristics.rb +2 -2
  40. data/lib/linguist/languages.json +1 -1
  41. data/lib/linguist/languages.yml +85 -32
  42. data/lib/linguist/samples.json +2046 -114
  43. data/lib/linguist/vendor.yml +6 -0
  44. data/lib/linguist/version.rb +1 -1
  45. metadata +7 -5
@@ -118,7 +118,7 @@
118
118
  },
119
119
  {
120
120
  "comment": "contextual smart pair support for block parameters",
121
- "match": "(?<!\\.)\\bdo\\b\\s*",
121
+ "match": "(?<!\\.)\\bdo\\b\\S*",
122
122
  "name": "keyword.control.start-block.crystal"
123
123
  },
124
124
  {
@@ -153,7 +153,7 @@
153
153
  "name": "variable.language.self.crystal"
154
154
  },
155
155
  {
156
- "match": "\\b(initialize|new|loop|include|extend|prepend|raise|fail|getter(?:[?])?|setter(?:[?])?|property(?:[?])?|catch|throw)\\s+",
156
+ "match": "((?<=\\s)|(?<=^))\\b(initialize|new|loop|include|extend|prepend|raise|fail|getter(?:[?])?|setter(?:[?])?|property(?:[?])?|catch|throw)\\b\\w?((?=\\s)|(?=$))",
157
157
  "name": "keyword.other.special-method.crystal"
158
158
  },
159
159
  {
@@ -227,7 +227,11 @@
227
227
  "name": "support.class.crystal"
228
228
  },
229
229
  {
230
- "match": "\\b(abort|at_exit|autoload\\??|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|exit!|fork|format|gets|global_variables|gsub|iterator\\?|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\\b(?![?!])",
230
+ "match": "\\b(Nil|Int|Int8|Int16|Int32|Int64|UInt8|UInt16|UInt32|UInt64|Float32|Float64|Set|Slice|Float|Number|StaticArray|Symbol|BigFloat|BigInt|BigRational|BitArray|Bool|Char|Atomic|Complex|Time|String|Tuple|NamedTuple|Proc|Union|Pointer|Range)\\b\\w?",
231
+ "name": "support.struct.crystal"
232
+ },
233
+ {
234
+ "match": "((?<=\\s)|(?<=^))\\b(abort|at_exit|autoload\\??|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|exit!|fork|format|gets|global_variables|gsub|iterator\\?|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\\b\\w?((?=\\s)|(?=$))",
231
235
  "name": "support.function.kernel.crystal"
232
236
  },
233
237
  {
@@ -394,16 +398,24 @@
394
398
  "name": "constant.numeric.binary.crystal"
395
399
  },
396
400
  {
397
- "match": "\\d+_u(8|16|32|64)",
398
- "name": "constant.numeric.unsigned-int.crystal"
401
+ "comment": "sophisticated, complete numerical matching",
402
+ "match": "((((?<=\\s)\\d*)|(^\\d*)|((?<=[\\s&\\|^eE<>%*!\\/=\\[\\](){};,+-])))(((((?<=\\d)((\\.){0,1}|(\\.{3})))|([+-]*))((\\d+\\_*)+)\\.?(((?<=[eE])[+-]?))?\\d*)|((?<=\\d)(_\\d+)+\\.?\\d*))(((?<=\\d)[eE]?\\d*)(?=[.eE\\s_iuf&\\|^<>%*!\\/=\\[\\](){};,+-])|($))|((?<=\\d)\\.{3}\\w*(?=\\))))",
403
+ "name": "constant.numeric.crystal"
404
+ },
405
+ {
406
+ "comment": "match the unsigned-int type as per language spec",
407
+ "match": "((?<=\\d_)|(?<=\\d))(u(8|16|32|64))(?!\\w)",
408
+ "name": "entity.name.type.unsigned-int.crystal"
399
409
  },
400
410
  {
401
- "match": "\\d+_i(8|16|32|64)",
402
- "name": "constant.numeric.signed-int.crystal"
411
+ "comment": "match the signed-int type as per language spec",
412
+ "match": "((?<=\\d_)|(?<=\\d))(i(8|16|32|64))(?!\\w)",
413
+ "name": "entity.name.type.signed-int.crystal"
403
414
  },
404
415
  {
405
- "match": "\\d+_?",
406
- "name": "constant.numeric.crystal"
416
+ "comment": "match the float type as per language spec",
417
+ "match": "((?<=\\d_)|(?<=\\d))(f(32|64))(?!\\w)",
418
+ "name": "entity.name.type.float.crystal"
407
419
  },
408
420
  {
409
421
  "begin": ":'",
@@ -350,6 +350,9 @@
350
350
  },
351
351
  {
352
352
  "include": "#builtinTypes"
353
+ },
354
+ {
355
+ "include": "#comments"
353
356
  }
354
357
  ]
355
358
  },
@@ -425,6 +428,9 @@
425
428
  }
426
429
  ]
427
430
  },
431
+ {
432
+ "include": "#comments"
433
+ },
428
434
  {
429
435
  "begin": "{",
430
436
  "beginCaptures": {
@@ -336,24 +336,24 @@
336
336
  "name": "keyword.other.important.css"
337
337
  },
338
338
  {
339
- "match": "\\$|%|&|\\*|\\/|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|(?<!\\()/=|%=|\\+=|\\-=|&=|\\^=|\\/\\b",
339
+ "match": "\\*|\\/|\\-|\\+|~|=|<=|>=|<|>",
340
340
  "name": "keyword.operator.less"
341
341
  },
342
342
  {
343
- "match": "\\s(\\=\\=|\\!\\=|\\<\\=|\\>\\=|\\<|\\>|not|or|and|when)\\s",
344
- "name": "keyword.control.logical.operator"
343
+ "match": "\\b(not|and|when)\\b",
344
+ "name": "keyword.control.logical.operator.less"
345
345
  },
346
346
  {
347
- "match": "\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table(?!-)|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)\\b",
348
- "name": "keyword.control.html.elements"
347
+ "match": "(?x)\n(?<![\\w-])\n(a|abbr|address|area|article|aside|audio\n|b|base|bdi|bdo|blockquote|body|br|button\n|canvas|caption|cite|code|col|colgroup\n|data|datalist|dd|del|details|dfn|dialog|div|dl|dt\n|em|embed|fieldset|figure|figcaption|footer|form\n|h[1-6]|head|header|hgroup|hr|html|i|iframe|img|input|ins\n|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter\n|nav|noscript|object|ol|optgroup|option|output\n|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby\n|s|samp|script|section|select|small|source|span|strong|style|sub|summary|sup|svg\n|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track\n|u|ul|var|video|wbr)\n(?![\\w-])",
348
+ "name": "entity.name.tag.css"
349
349
  },
350
350
  {
351
- "match": "\\b(vkern|view|use|tspan|tref|title|textPath|text|symbol|switch|svg|style|stop|set|script|rect|radialGradient|polyline|polygon|pattern|path|mpath|missing-glyph|metadata|mask|marker|linearGradient|line|image|hkern|glyphRef|glyph|g|foreignObject|font-face-uri|font-face-src|font-face-name|font-face-format|font-face|font|filter|feTurbulence|feTile|feSpotLight|feSpecularLighting|fePointLight|feOffset|feMorphology|feMergeNode|feMerge|feImage|feGaussianBlur|feFuncR|feFuncG|feFuncB|feFuncA|feFlood|feDistantLight|feDisplacementMap|feDiffuseLighting|feConvolveMatrix|feComposite|feComponentTransfer|feColorMatrix|feBlend|ellipse|desc|defs|cursor|color-profile|clipPath|circle|animateTransform|animateMotion|animateColor|animate|altGlyphItem|altGlyphDef|altGlyph|a)\\b",
352
- "name": "keyword.control.html.svg.elements"
351
+ "match": "(?x)\n(?<![\\w-])\n(vkern|view|use|tspan|tref|textPath|text|symbol|switch|stop|set\n|rect|radialGradient|polyline|polygon|pattern|path\n|mpath|missing-glyph|metadata|mask|marker|linearGradient|line\n|image|hkern|glyphRef|glyph|g\n|foreignObject|font(-face(-uri|-src|-name|-format)?)?|filter\n|fe(Turbulence|Tile|SpotLight|SpecularLighting|PointLight|Offset\n |Morphology|MergeNode|Merge|Image|GaussianBlur|Func[RGBA]\n |Flood|DistantLight|DisplacementMap|DiffuseLighting\n |ConvolveMatrix|Composite|ComponentTransfer|ColorMatrix|Blend)\n|ellipse|desc|defs|cursor|color-profile|clipPath|circle\n|animate(Transform|Motion|Color)?|altGlyph(Item|Def)?)\n(?![\\w-])",
352
+ "name": "entity.name.tag.svg.css"
353
353
  },
354
354
  {
355
- "match": "(?<!:)\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,{]|:+(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-child()|nth-last-child()|nth-of-type()|nth-last-of-type()|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid|shadow)(\\([0-9A-Za-z]*\\))?)",
356
- "name": "keyword.control.html.custom.elements"
355
+ "match": "(?<![\\w-])[a-z][\\w&&[^A-Z]]*+-[\\w-&&[^A-Z]]+",
356
+ "name": "entity.name.tag.custom.css"
357
357
  },
358
358
  {
359
359
  "include": "#pseudo_elements"
@@ -516,13 +516,13 @@
516
516
  "name": "punctuation.separator.key-value.css"
517
517
  }
518
518
  },
519
- "end": "\\s*(;)|(?=})",
519
+ "end": "\\s*(;)|\\s*(?=})",
520
520
  "endCaptures": {
521
521
  "1": {
522
522
  "name": "punctuation.terminator.rule.css"
523
523
  }
524
524
  },
525
- "name": "meta.property-value.css",
525
+ "contentName": "meta.property-value.css",
526
526
  "patterns": [
527
527
  {
528
528
  "match": "\\b(wrap-reverse|wrap|whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|unicase|underline|ultra-expanded|ultra-condensed|transparent|transform|top|titling-caps|thin|thick|text-top|text-bottom|text|tb-rl|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table|sw-resize|super|strict|stretch|step-start|step-end|static|square|space-between|space-around|space|solid|soft-light|small-caps|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|saturation|s-resize|running|rtl|row-reverse|row-resize|row|round|right|ridge|reverse|repeat-y|repeat-x|repeat|relative|progressive|progress|pre-wrap|pre-line|pre|pointer|petite-caps|paused|pan-x|pan-left|pan-right|pan-y|pan-up|pan-down|padding-box|overline|overlay|outside|outset|optimizeSpeed|optimizeLegibility|opacity|oblique|nw-resize|nowrap|not-allowed|normal|none|no-repeat|no-drop|newspaper|ne-resize|n-resize|multiply|move|middle|medium|max-height|manipulation|main-size|luminosity|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|local|list-item|linear(?!-)|line-through|line-edge|line|lighter|lighten|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline-block|inline|inherit|infinite|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|hue|horizontal|hidden|help|hard-light|hand|groove|geometricPrecision|forwards|flex-start|flex-end|flex|fixed|extra-expanded|extra-condensed|expanded|exclusion|ellipsis|ease-out|ease-in-out|ease-in|ease|e-resize|double|dotted|distribute-space|distribute-letter|distribute-all-lines|distribute|disc|disabled|difference|default|decimal|dashed|darken|currentColor|crosshair|cover|content-box|contain|condensed|column-reverse|column|color-dodge|color-burn|color|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|border-box|bolder|bold|block|bidi-override|below|baseline|balance|backwards|auto|antialiased|always|alternate-reverse|alternate|all-small-caps|all-scroll|all-petite-caps|all|absolute)\\b",
@@ -127,7 +127,7 @@
127
127
  "name": "punctuation.definition.parameters.elixir"
128
128
  }
129
129
  },
130
- "end": "(\\bdo:)|(\\bdo\\b|\\bwhen\\b)|$",
130
+ "end": "(\\bdo:)|(\\bdo\\b)|$",
131
131
  "endCaptures": {
132
132
  "1": {
133
133
  "name": "constant.other.keywords.elixir"
@@ -191,7 +191,7 @@
191
191
  "name": "punctuation.definition.parameters.elixir"
192
192
  }
193
193
  },
194
- "end": "(\\bdo:)|(\\bdo\\b|\\bwhen\\b)|$",
194
+ "end": "(\\bdo:)|(\\bdo\\b)|$",
195
195
  "endCaptures": {
196
196
  "1": {
197
197
  "name": "constant.other.keywords.elixir"
@@ -855,7 +855,7 @@
855
855
  },
856
856
  "escaped_char": {
857
857
  "match": "\\\\(x[\\da-fA-F]{1,2}|.)",
858
- "name": "constant.character.escape.elixir"
858
+ "name": "constant.character.escaped.elixir"
859
859
  },
860
860
  "interpolated_elixir": {
861
861
  "patterns": [
@@ -14,6 +14,7 @@
14
14
  "gnus",
15
15
  "viper"
16
16
  ],
17
+ "firstLineMatch": "(?x)\n# Hashbang\n^\\#!.*(?:\\s|\\/|(?<=!)\\b)\n\temacs\n(?:$|\\s)\n|\n# Modeline\n(?i:\n\t# Emacs\n\t-\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n\t\temacs-lisp\n\t(?=[\\s;]|(?<![-*])-\\*-).*?-\\*-\n\t|\n\t# Vim\n\t(?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n\t\t(?:emacs-lisp|elisp)\n\t(?=\\s|:|$)\n)",
17
18
  "patterns": [
18
19
  {
19
20
  "include": "#main"
@@ -37,6 +38,9 @@
37
38
  {
38
39
  "include": "#definition"
39
40
  },
41
+ {
42
+ "include": "#formatting"
43
+ },
40
44
  {
41
45
  "include": "#face-innards"
42
46
  },
@@ -447,6 +451,100 @@
447
451
  }
448
452
  ]
449
453
  },
454
+ "formatting": {
455
+ "name": "meta.string-formatting.expression.emacs.lisp",
456
+ "begin": "(\\()(format|format-message|message|error)(?=\\s|$|\")",
457
+ "end": "\\)",
458
+ "beginCaptures": {
459
+ "1": {
460
+ "name": "punctuation.section.expression.begin.emacs.lisp"
461
+ },
462
+ "2": {
463
+ "name": "support.function.$2.emacs.lisp"
464
+ }
465
+ },
466
+ "endCaptures": {
467
+ "0": {
468
+ "name": "punctuation.section.expression.end.emacs.lisp"
469
+ }
470
+ },
471
+ "patterns": [
472
+ {
473
+ "begin": "\\G\\s*(\")",
474
+ "end": "\"",
475
+ "beginCaptures": {
476
+ "1": {
477
+ "name": "punctuation.definition.string.begin.emacs.lisp"
478
+ }
479
+ },
480
+ "endCaptures": {
481
+ "0": {
482
+ "name": "punctuation.definition.string.end.emacs.lisp"
483
+ }
484
+ },
485
+ "patterns": [
486
+ {
487
+ "include": "#format"
488
+ }
489
+ ]
490
+ },
491
+ {
492
+ "begin": "\\G\\s*$\\n?",
493
+ "end": "\"|(?<!^)$|[\\s\"](?=[^\\s\"])",
494
+ "patterns": [
495
+ {
496
+ "match": "^\\s*$\\n?"
497
+ },
498
+ {
499
+ "match": "(?:^|\\G)\\s*(\")",
500
+ "captures": {
501
+ "1": {
502
+ "name": "punctuation.definition.string.begin.emacs.lisp"
503
+ }
504
+ }
505
+ },
506
+ {
507
+ "begin": "(?<=\")",
508
+ "end": "\"",
509
+ "patterns": [
510
+ {
511
+ "include": "#format"
512
+ }
513
+ ],
514
+ "endCaptures": {
515
+ "0": {
516
+ "name": "punctuation.definition.string.end.emacs.lisp"
517
+ }
518
+ }
519
+ }
520
+ ]
521
+ },
522
+ {
523
+ "include": "$self"
524
+ }
525
+ ]
526
+ },
527
+ "format": {
528
+ "contentName": "string.quoted.double.emacs.lisp",
529
+ "begin": "\\G",
530
+ "end": "(?=\")",
531
+ "patterns": [
532
+ {
533
+ "match": "(%[%cdefgosSxX])|(%.)",
534
+ "captures": {
535
+ "1": {
536
+ "name": "constant.other.placeholder.emacs.lisp"
537
+ },
538
+ "2": {
539
+ "name": "invalid.illegal.placeholder.emacs.lisp"
540
+ }
541
+ }
542
+ },
543
+ {
544
+ "include": "#string-innards"
545
+ }
546
+ ]
547
+ },
450
548
  "functions": {
451
549
  "name": "keyword.control.function.$1.emacs.lisp",
452
550
  "match": "(?x)\\b(?<=[\\s()\\[]|^)\n(abs|append|apply|assoc|butlast|c[ad]{1,2}r|c[ad]r-safe|consp?|copy-alist|copy-tree\n|dolist|funcall|last|length|listp?|load|make-list|mapc|mapcar|max|min|member|nbutlast\n|nconc|nreverse|nth|nthcdr|null|pop|prin[1ct]|push|quote|rassoc|reverse|rplac[ad]\n|safe-length|setcar|setcdr)\n(?=[\\s()]|$)\\b"
@@ -652,6 +750,13 @@
652
750
  "name": "punctuation.definition.string.end.emacs.lisp"
653
751
  }
654
752
  },
753
+ "patterns": [
754
+ {
755
+ "include": "#string-innards"
756
+ }
757
+ ]
758
+ },
759
+ "string-innards": {
655
760
  "patterns": [
656
761
  {
657
762
  "name": "constant.character.escape.newline.emacs.lisp",
@@ -665,17 +770,6 @@
665
770
  "name": "punctuation.escape.backslash.emacs.lisp"
666
771
  }
667
772
  }
668
- },
669
- {
670
- "match": "(%[%cdefgosSxX])|(%.)",
671
- "captures": {
672
- "1": {
673
- "name": "constant.other.placeholder.emacs.lisp"
674
- },
675
- "2": {
676
- "name": "invalid.illegal.placeholder.emacs.lisp"
677
- }
678
- }
679
773
  }
680
774
  ]
681
775
  },
@@ -372,6 +372,27 @@
372
372
  }
373
373
  ]
374
374
  },
375
+ {
376
+ "begin": "^\\s*([`~]{3,})\\s*(?i:(typescript|ts))\\s*$",
377
+ "beginCaptures": {
378
+ "0": {
379
+ "name": "support.gfm"
380
+ }
381
+ },
382
+ "end": "^\\s*\\1\\s*$",
383
+ "endCaptures": {
384
+ "0": {
385
+ "name": "support.gfm"
386
+ }
387
+ },
388
+ "name": "markup.code.ts.gfm",
389
+ "contentName": "source.embedded.ts",
390
+ "patterns": [
391
+ {
392
+ "include": "source.ts"
393
+ }
394
+ ]
395
+ },
375
396
  {
376
397
  "begin": "^\\s*([`~]{3,})\\s*(?i:(markdown|mdown|md))\\s*$",
377
398
  "beginCaptures": {
@@ -771,6 +792,27 @@
771
792
  }
772
793
  ]
773
794
  },
795
+ {
796
+ "begin": "^\\s*([`~]{3,})\\s*(?i:(adoc|asciidoc|asciidoctor|asc|))\\s*$",
797
+ "beginCaptures": {
798
+ "0": {
799
+ "name": "support.gfm"
800
+ }
801
+ },
802
+ "end": "^\\s*\\1\\s*$",
803
+ "endCaptures": {
804
+ "0": {
805
+ "name": "support.gfm"
806
+ }
807
+ },
808
+ "name": "markup.code.asciidoc.gfm",
809
+ "contentName": "source.embedded.asciidoc",
810
+ "patterns": [
811
+ {
812
+ "include": "source.asciidoc"
813
+ }
814
+ ]
815
+ },
774
816
  {
775
817
  "begin": "^\\s*([`~]{3,})\\s*(?i:(swift))\\s*$",
776
818
  "beginCaptures": {
@@ -792,6 +834,111 @@
792
834
  }
793
835
  ]
794
836
  },
837
+ {
838
+ "begin": "^\\s*([`~]{3,})\\s*(?i:(dockerfile|docker))\\s*$",
839
+ "beginCaptures": {
840
+ "0": {
841
+ "name": "support.gfm"
842
+ }
843
+ },
844
+ "end": "^\\s*\\1\\s*$",
845
+ "endCaptures": {
846
+ "0": {
847
+ "name": "support.gfm"
848
+ }
849
+ },
850
+ "name": "markup.code.dockerfile.gfm",
851
+ "contentName": "source.embedded.dockerfile",
852
+ "patterns": [
853
+ {
854
+ "include": "source.dockerfile"
855
+ }
856
+ ]
857
+ },
858
+ {
859
+ "begin": "^\\s*([`~]{3,})\\s*(?i:(makefile|make))\\s*$",
860
+ "beginCaptures": {
861
+ "0": {
862
+ "name": "support.gfm"
863
+ }
864
+ },
865
+ "end": "^\\s*\\1\\s*$",
866
+ "endCaptures": {
867
+ "0": {
868
+ "name": "support.gfm"
869
+ }
870
+ },
871
+ "name": "markup.code.makefile.gfm",
872
+ "contentName": "source.embedded.makefile",
873
+ "patterns": [
874
+ {
875
+ "include": "source.makefile"
876
+ }
877
+ ]
878
+ },
879
+ {
880
+ "begin": "^\\s*([`~]{3,})\\s*(?i:(perl))\\s*$",
881
+ "beginCaptures": {
882
+ "0": {
883
+ "name": "support.gfm"
884
+ }
885
+ },
886
+ "end": "^\\s*\\1\\s*$",
887
+ "endCaptures": {
888
+ "0": {
889
+ "name": "support.gfm"
890
+ }
891
+ },
892
+ "name": "markup.code.perl.gfm",
893
+ "contentName": "source.embedded.perl",
894
+ "patterns": [
895
+ {
896
+ "include": "source.perl"
897
+ }
898
+ ]
899
+ },
900
+ {
901
+ "begin": "^\\s*([`~]{3,})\\s*(?i:(perl6))\\s*$",
902
+ "beginCaptures": {
903
+ "0": {
904
+ "name": "support.gfm"
905
+ }
906
+ },
907
+ "end": "^\\s*\\1\\s*$",
908
+ "endCaptures": {
909
+ "0": {
910
+ "name": "support.gfm"
911
+ }
912
+ },
913
+ "name": "markup.code.perl6.gfm",
914
+ "contentName": "source.embedded.perl6",
915
+ "patterns": [
916
+ {
917
+ "include": "source.perl6"
918
+ }
919
+ ]
920
+ },
921
+ {
922
+ "begin": "^\\s*([`~]{3,})\\s*(?i:(toml))\\s*$",
923
+ "beginCaptures": {
924
+ "0": {
925
+ "name": "support.gfm"
926
+ }
927
+ },
928
+ "end": "^\\s*\\1\\s*$",
929
+ "endCaptures": {
930
+ "0": {
931
+ "name": "support.gfm"
932
+ }
933
+ },
934
+ "name": "markup.code.toml.gfm",
935
+ "contentName": "source.embedded.toml",
936
+ "patterns": [
937
+ {
938
+ "include": "source.toml"
939
+ }
940
+ ]
941
+ },
795
942
  {
796
943
  "begin": "^\\s*([`~]{3,})\\s*(?i:(html))\\s*$",
797
944
  "beginCaptures": {