github-linguist 8.0.1 → 9.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/go.mod.json +1 -1
  3. data/grammars/markdown.vue.codeblock.json +1 -0
  4. data/grammars/mdx.vue.codeblock.json +1 -0
  5. data/grammars/source.QB64.json +1 -0
  6. data/grammars/source.abap.json +1 -1
  7. data/grammars/source.abl.json +1 -1
  8. data/grammars/source.angelscript.json +1 -1
  9. data/grammars/source.basic.json +1 -1
  10. data/grammars/source.bb.json +1 -1
  11. data/grammars/source.brs.json +1 -1
  12. data/grammars/source.bsl.json +1 -1
  13. data/grammars/source.cmake.json +1 -1
  14. data/grammars/source.cmakecache.json +1 -0
  15. data/grammars/source.cobol.json +1 -1
  16. data/grammars/source.dart.json +1 -1
  17. data/grammars/source.fsharp.json +1 -1
  18. data/grammars/source.gdscript.json +1 -1
  19. data/grammars/source.graphql.json +1 -1
  20. data/grammars/source.hcl.json +1 -1
  21. data/grammars/source.hcl.terraform.json +1 -1
  22. data/grammars/source.julia.json +1 -1
  23. data/grammars/source.just.json +1 -1
  24. data/grammars/source.luau.json +1 -1
  25. data/grammars/source.matlab.json +1 -1
  26. data/grammars/source.mdx.astro.json +1 -0
  27. data/grammars/source.mdx.json +1 -1
  28. data/grammars/source.moonbit.json +1 -0
  29. data/grammars/source.msg.json +1 -0
  30. data/grammars/source.ned.json +1 -0
  31. data/grammars/source.nushell.json +1 -1
  32. data/grammars/source.odin.json +1 -1
  33. data/grammars/source.openesql.json +1 -0
  34. data/grammars/source.p4.json +1 -1
  35. data/grammars/source.polar.json +1 -1
  36. data/grammars/source.powerbuilder.json +1 -1
  37. data/grammars/source.rescript.json +1 -1
  38. data/grammars/source.rpgle.json +1 -1
  39. data/grammars/source.scala.json +1 -1
  40. data/grammars/source.sdbl.json +1 -1
  41. data/grammars/source.tact.json +1 -0
  42. data/grammars/source.toc.json +1 -1
  43. data/grammars/source.ts.json +1 -1
  44. data/grammars/source.tsp.json +1 -0
  45. data/grammars/source.tsx.json +1 -1
  46. data/grammars/source.vba.json +1 -1
  47. data/grammars/source.vue.json +1 -0
  48. data/grammars/source.wdl.json +1 -1
  49. data/grammars/text.adblock.json +1 -1
  50. data/grammars/text.md.json +1 -1
  51. data/grammars/version +1 -1
  52. data/grammars/vue.directives.json +1 -0
  53. data/grammars/vue.interpolations.json +1 -0
  54. data/grammars/vue.sfc.style.variable.injection.json +1 -0
  55. data/lib/linguist/VERSION +1 -1
  56. data/lib/linguist/generated.rb +31 -0
  57. data/lib/linguist/generic.yml +1 -0
  58. data/lib/linguist/heuristics.yml +55 -11
  59. data/lib/linguist/languages.json +1 -1
  60. data/lib/linguist/languages.yml +93 -3
  61. data/lib/linguist/lazy_blob.rb +15 -7
  62. data/lib/linguist/repository.rb +18 -13
  63. data/lib/linguist/samples.json +1 -1
  64. data/lib/linguist/source/diff.rb +72 -0
  65. data/lib/linguist/source/repository.rb +64 -0
  66. data/lib/linguist/source/rugged.rb +95 -0
  67. metadata +21 -6
  68. data/grammars/source.cache.cmake.json +0 -1
  69. data/grammars/text.html.vue.json +0 -1
  70. data/grammars/text.mdx.astro.codeblock.json +0 -1
@@ -0,0 +1,72 @@
1
+ require 'linguist/generated'
2
+ require 'cgi'
3
+ require 'charlock_holmes'
4
+ require 'mini_mime'
5
+ require 'yaml'
6
+
7
+ module Linguist
8
+ module Source
9
+ # Diff is an interface representing a diff between two trees. It is composed
10
+ # of a collection of iterable deltas between before/after states of files.
11
+ class Diff
12
+ # A Delta represents a single file's before/after state in a diff.
13
+ class Delta
14
+ # Public: get the status of the file's "after" state as compared to
15
+ # "before". Valid status values include:
16
+ #
17
+ # - :added
18
+ # - :deleted
19
+ # - :modified
20
+ # - :renamed
21
+ # - :copied
22
+ # - :ignored
23
+ # - :untracked
24
+ # - :typechange
25
+ #
26
+ # Returns the status.
27
+ def status
28
+ raise NotImplementedError
29
+ end
30
+
31
+ # Public: determine whether the file delta is binary.
32
+ #
33
+ # Returns true if the delta is binary, false otherwise.
34
+ def binary?
35
+ raise NotImplementedError
36
+ end
37
+
38
+ # Public: get the metadata of the "before" file in the delta. The
39
+ # metadata is represented as a Hash with the keys:
40
+ #
41
+ # - :path (string)
42
+ # - :oid (string)
43
+ # - :mode (integer)
44
+ #
45
+ # Returns the entry metadata hash.
46
+ def old_file
47
+ raise NotImplementedError
48
+ end
49
+
50
+ # Public: get the metadata of the "after" file in the delta. The
51
+ # metadata is represented as a Hash with the keys:
52
+ #
53
+ # - :path (string)
54
+ # - :oid (string)
55
+ # - :mode (integer)
56
+ #
57
+ # Returns the entry metadata hash.
58
+ def new_file
59
+ raise NotImplementedError
60
+ end
61
+ end
62
+
63
+ # Public: iterate through each delta of the given diff. Yields a single
64
+ # delta to the given block.
65
+ #
66
+ # Returns nothing.
67
+ def each_delta
68
+ raise NotImplementedError
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,64 @@
1
+ module Linguist
2
+ module Source
3
+ # Repository is an interface for providing direct access to functionality in
4
+ # a repository of files whose contents can be scanned for language
5
+ # information.
6
+ class Repository
7
+ # Public: get the number of entries in the root tree of the given commit,
8
+ # with an optional maximum value.
9
+ #
10
+ # commit_id - the string unique identifier of the commit to analyze.
11
+ # limit - (Optional) the integer maximum number of tree entries to
12
+ # count.
13
+ #
14
+ # Returns the number of entries in the tree or 'limit', whichever is
15
+ # smaller.
16
+ def get_tree_size(commit_id, limit = nil)
17
+ raise NotImplementedError
18
+ end
19
+
20
+ # Public: set the commit whose .gitattributes file(s) should be used as
21
+ # the source of attribute information in 'load_attributes_for_path'.
22
+ #
23
+ # commit_id - the string unique identifier of the attribute source commit.
24
+ #
25
+ # Returns nothing.
26
+ def set_attribute_source(commit_id)
27
+ raise NotImplementedError
28
+ end
29
+
30
+ # Public: read the data and size information for the specified file blob.
31
+ #
32
+ # blob_id - the string unique identifier of the blob to read.
33
+ # max_size - the integer maximum size in bytes to read from the blob.
34
+ #
35
+ # Returns the (possibly truncated) byte string of blob content and
36
+ # the full, untruncated size of the blob.
37
+ def load_blob(blob_id, max_size)
38
+ raise NotImplementedError
39
+ end
40
+
41
+ # Public: look up the attribute values for a given path.
42
+ #
43
+ # path - the path for which we want attribute values.
44
+ # attr_names - the attributes to read for the given path.
45
+ #
46
+ # Returns a Hash mapping attribute names to their corresponding values.
47
+ def load_attributes_for_path(path, attr_names)
48
+ raise NotImplementedError
49
+ end
50
+
51
+ # Public: compute the diff between the given old and new commits.
52
+ #
53
+ # old_commit - the string unique identifier of the "before" state of the
54
+ # diff, or nil (representing an empty tree).
55
+ # new_commit - the string unique identifier of the "after" state of the
56
+ # diff, or nil (representing an empty tree).
57
+ #
58
+ # Returns a Source::Diff.
59
+ def diff(old_commit, new_commit)
60
+ raise NotImplementedError
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,95 @@
1
+ require 'rugged'
2
+ require 'linguist/source/diff'
3
+
4
+ module Linguist
5
+ module Source
6
+ # RuggedRepository is an implementation of the Source::Repository abstract
7
+ # class. It represents a Git repository that is accessed using the libgit2
8
+ # wrapper Rugged.
9
+ class RuggedRepository < Linguist::Source::Repository
10
+
11
+ class Diff < Linguist::Source::Diff
12
+ class Delta < Linguist::Source::Diff::Delta
13
+ def initialize(rugged_delta)
14
+ @delta = rugged_delta
15
+ end
16
+
17
+ def status; @delta.status; end
18
+
19
+ def binary?; @delta.binary; end
20
+
21
+ def old_file; @delta.old_file; end
22
+
23
+ def new_file; @delta.new_file; end
24
+ end
25
+
26
+ def initialize(rugged_diff)
27
+ @diff = rugged_diff
28
+ end
29
+
30
+ def each_delta(&block)
31
+ @diff.each_delta.map do |delta|
32
+ Delta.new(delta)
33
+ end.each(&block)
34
+ end
35
+ end
36
+
37
+ GIT_ATTR_OPTS = { :priority => [:index], :skip_system => true }
38
+ GIT_ATTR_FLAGS = Rugged::Repository::Attributes.parse_opts(GIT_ATTR_OPTS)
39
+
40
+ def initialize(rugged)
41
+ @rugged = rugged
42
+ @tree_map = {}
43
+ @attr_source = nil
44
+ end
45
+
46
+ def get_tree_size(commit_id, limit)
47
+ get_tree(commit_id).count_recursive(limit)
48
+ end
49
+
50
+ def set_attribute_source(commit_id)
51
+ tree = get_tree(commit_id)
52
+ return if @attr_source == tree
53
+
54
+ @attr_source = tree
55
+ attr_index = Rugged::Index.new
56
+ attr_index.read_tree(@attr_source)
57
+ @rugged.index = attr_index
58
+ end
59
+
60
+ def load_attributes_for_path(path, attr_names)
61
+ @rugged.fetch_attributes(path, attr_names, GIT_ATTR_FLAGS)
62
+ end
63
+
64
+ def load_blob(blob_id, max_size)
65
+ Rugged::Blob.to_buffer(@rugged, blob_id, max_size)
66
+ end
67
+
68
+ def diff(old_commit, new_commit)
69
+ old_tree = old_commit.nil? ? nil : get_tree(old_commit)
70
+ new_tree = new_commit.nil? ? nil : get_tree(new_commit)
71
+
72
+ Diff.new(Rugged::Tree.diff(@rugged, old_tree, new_tree))
73
+ end
74
+
75
+ # Internal: get the Rugged::Tree associated with a given commit ID. This
76
+ # method should not be used outside of Linguist itself and is subject to
77
+ # change or be removed.
78
+ #
79
+ # commit_id - the object ID of the commit whose tree instance we want.
80
+ #
81
+ # Returns the Rugged::Tree of the specified commit.
82
+ def get_tree(commit_id)
83
+ tree = @tree_map[commit_id]
84
+ return tree if tree
85
+
86
+ @tree_map[commit_id] = Rugged::Commit.lookup(@rugged, commit_id).tree
87
+ @tree_map[commit_id]
88
+ end
89
+
90
+ def method_missing(method_name, *args, &block)
91
+ @rugged.send(method_name, *args, &block)
92
+ end
93
+ end
94
+ end
95
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-linguist
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.1
4
+ version: 9.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-17 00:00:00.000000000 Z
11
+ date: 2024-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -272,13 +272,16 @@ files:
272
272
  - grammars/markdown.rescript.codeblock.json
273
273
  - grammars/markdown.talon.codeblock.json
274
274
  - grammars/markdown.textproto.codeblock.json
275
+ - grammars/markdown.vue.codeblock.json
275
276
  - grammars/mdx.move.codeblock.json
277
+ - grammars/mdx.vue.codeblock.json
276
278
  - grammars/objdump.x86asm.json
277
279
  - grammars/source.2da.json
278
280
  - grammars/source.4dm.json
279
281
  - grammars/source.8xp.json
280
282
  - grammars/source.Caddyfile-test.json
281
283
  - grammars/source.Caddyfile.json
284
+ - grammars/source.QB64.json
282
285
  - grammars/source.abap.json
283
286
  - grammars/source.abapcds.json
284
287
  - grammars/source.abl.json
@@ -345,7 +348,6 @@ files:
345
348
  - grammars/source.c.platform.json
346
349
  - grammars/source.c2hs.json
347
350
  - grammars/source.cabal.json
348
- - grammars/source.cache.cmake.json
349
351
  - grammars/source.cadence.json
350
352
  - grammars/source.cairo.json
351
353
  - grammars/source.cairo0.json
@@ -369,6 +371,7 @@ files:
369
371
  - grammars/source.clojure.json
370
372
  - grammars/source.cm.json
371
373
  - grammars/source.cmake.json
374
+ - grammars/source.cmakecache.json
372
375
  - grammars/source.cmd.json
373
376
  - grammars/source.cobol.json
374
377
  - grammars/source.cobol_acu_listfile.json
@@ -623,6 +626,7 @@ files:
623
626
  - grammars/source.maxscript.json
624
627
  - grammars/source.mc.json
625
628
  - grammars/source.mcfunction.json
629
+ - grammars/source.mdx.astro.json
626
630
  - grammars/source.mdx.json
627
631
  - grammars/source.mercury.json
628
632
  - grammars/source.mermaid.c4c-diagram.json
@@ -654,9 +658,11 @@ files:
654
658
  - grammars/source.modula2.json
655
659
  - grammars/source.mojo.json
656
660
  - grammars/source.monkey.json
661
+ - grammars/source.moonbit.json
657
662
  - grammars/source.moonscript.json
658
663
  - grammars/source.move.json
659
664
  - grammars/source.mql5.json
665
+ - grammars/source.msg.json
660
666
  - grammars/source.msl.json
661
667
  - grammars/source.mupad.json
662
668
  - grammars/source.nanorc.json
@@ -664,6 +670,7 @@ files:
664
670
  - grammars/source.nasl.json
665
671
  - grammars/source.ncl.json
666
672
  - grammars/source.ne.json
673
+ - grammars/source.ned.json
667
674
  - grammars/source.nemerle.json
668
675
  - grammars/source.neon.json
669
676
  - grammars/source.nesc.json
@@ -699,6 +706,7 @@ files:
699
706
  - grammars/source.opal.json
700
707
  - grammars/source.opalsysdefs.json
701
708
  - grammars/source.openbsd-pkg.contents.json
709
+ - grammars/source.openesql.json
702
710
  - grammars/source.opentype.json
703
711
  - grammars/source.opts.json
704
712
  - grammars/source.ox.json
@@ -854,6 +862,7 @@ files:
854
862
  - grammars/source.swift.json
855
863
  - grammars/source.sy.json
856
864
  - grammars/source.systemverilog.json
865
+ - grammars/source.tact.json
857
866
  - grammars/source.tags.json
858
867
  - grammars/source.talon.json
859
868
  - grammars/source.tcl.json
@@ -873,6 +882,7 @@ files:
873
882
  - grammars/source.toml.json
874
883
  - grammars/source.ts.json
875
884
  - grammars/source.ts.prismaClientRawSQL.json
885
+ - grammars/source.tsp.json
876
886
  - grammars/source.tsql.json
877
887
  - grammars/source.tsx.json
878
888
  - grammars/source.turing.json
@@ -896,6 +906,7 @@ files:
896
906
  - grammars/source.vhdl.json
897
907
  - grammars/source.vim-snippet.json
898
908
  - grammars/source.viml.json
909
+ - grammars/source.vue.json
899
910
  - grammars/source.vyper.json
900
911
  - grammars/source.wavefront.mtl.json
901
912
  - grammars/source.wavefront.obj.json
@@ -994,7 +1005,6 @@ files:
994
1005
  - grammars/text.html.statamic.json
995
1006
  - grammars/text.html.tcl.json
996
1007
  - grammars/text.html.twig.json
997
- - grammars/text.html.vue.json
998
1008
  - grammars/text.idl-idldoc.json
999
1009
  - grammars/text.info.json
1000
1010
  - grammars/text.jade.json
@@ -1003,7 +1013,6 @@ files:
1003
1013
  - grammars/text.log.latex.json
1004
1014
  - grammars/text.marko.json
1005
1015
  - grammars/text.md.json
1006
- - grammars/text.mdx.astro.codeblock.json
1007
1016
  - grammars/text.muse.json
1008
1017
  - grammars/text.openbsd-pkg.desc.json
1009
1018
  - grammars/text.plain.json
@@ -1047,6 +1056,9 @@ files:
1047
1056
  - grammars/text.zone_file.json
1048
1057
  - grammars/textmate.format-string.json
1049
1058
  - grammars/version
1059
+ - grammars/vue.directives.json
1060
+ - grammars/vue.interpolations.json
1061
+ - grammars/vue.sfc.style.variable.injection.json
1050
1062
  - lib/linguist.rb
1051
1063
  - lib/linguist/VERSION
1052
1064
  - lib/linguist/blob.rb
@@ -1069,6 +1081,9 @@ files:
1069
1081
  - lib/linguist/samples.rb
1070
1082
  - lib/linguist/sha256.rb
1071
1083
  - lib/linguist/shebang.rb
1084
+ - lib/linguist/source/diff.rb
1085
+ - lib/linguist/source/repository.rb
1086
+ - lib/linguist/source/rugged.rb
1072
1087
  - lib/linguist/strategy/extension.rb
1073
1088
  - lib/linguist/strategy/filename.rb
1074
1089
  - lib/linguist/strategy/manpage.rb
@@ -1098,7 +1113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1098
1113
  - !ruby/object:Gem::Version
1099
1114
  version: '0'
1100
1115
  requirements: []
1101
- rubygems_version: 3.5.11
1116
+ rubygems_version: 3.5.16
1102
1117
  signing_key:
1103
1118
  specification_version: 4
1104
1119
  summary: GitHub Language detection
@@ -1 +0,0 @@
1
- {"name":"CMake Cache","scopeName":"source.cache.cmake","patterns":[{"include":"#comments"},{"include":"#assignation"}],"repository":{"assignation":{"name":"variable.other.cmake","match":"([a-zA-Z0-9_\\-\\d]+)(:)(STRING|FILE|FILEPATH|BOOL|INTERNAL|STATIC)(\\=)(.*)","captures":{"1":{"name":"variable.language.cache.cmake"},"2":{"name":"keyword.other.argument-separator.cmake"},"3":{"name":"constant.language.cache.cmake"},"4":{"name":"keyword.operator.cmake"},"5":{"name":"string.unquoted.cmake"}}},"comments":{"patterns":[{"begin":"(^[ \\t]+)?(?=//|\\#)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.cmake","begin":"//","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.cmake"}}},{"name":"comment.line.sign-line.cmake","begin":"\\#","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.cmake"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.cmake"}}}]}}}
@@ -1 +0,0 @@
1
- {"name":"Vue Component","scopeName":"text.html.vue","patterns":[{"include":"#vue-interpolations"},{"name":"meta.tag.any.html","begin":"(\u003c)([a-zA-Z0-9:-]++)(?=[^\u003e]*\u003e\u003c/\\2\u003e)","end":"(\u003e)(\u003c)(/)(\\2)(\u003e)","patterns":[{"include":"#tag-stuff"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"},"2":{"name":"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html"},"3":{"name":"punctuation.definition.tag.begin.html"},"4":{"name":"entity.name.tag.html"},"5":{"name":"punctuation.definition.tag.end.html"}}},{"name":"meta.tag.preprocessor.xml.html","begin":"(\u003c\\?)(xml)","end":"(\\?\u003e)","patterns":[{"include":"#tag-generic-attribute"},{"include":"#string-double-quoted"},{"include":"#string-single-quoted"}],"captures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.xml.html"}}},{"name":"comment.block.html","begin":"\u003c!--","end":"--\\s*\u003e","patterns":[{"name":"invalid.illegal.bad-comments-or-CDATA.html","match":"--"}],"captures":{"0":{"name":"punctuation.definition.comment.html"}}},{"name":"meta.tag.sgml.html","begin":"\u003c!","end":"\u003e","patterns":[{"name":"meta.tag.sgml.doctype.html","begin":"(?i:DOCTYPE)","end":"(?=\u003e)","patterns":[{"name":"string.quoted.double.doctype.identifiers-and-DTDs.html","match":"\"[^\"\u003e]*\""}],"captures":{"1":{"name":"entity.name.tag.doctype.html"}}},{"name":"constant.other.inline-data.html","begin":"\\[CDATA\\[","end":"]](?=\u003e)"},{"name":"invalid.illegal.bad-comments-or-CDATA.html","match":"(\\s*)(?!--|\u003e)\\S(\\s*)"}],"captures":{"0":{"name":"punctuation.definition.tag.html"}}},{"name":"text.slm.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:template))\\b(?=[^\u003e]*lang=(['\"])slm\\1?)","end":"(\u003c/)((?i:template))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(\u003e)","end":"(?=\u003c/(?i:template))","patterns":[{"include":"text.slim"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.style.html"},"3":{"name":"punctuation.definition.tag.html"}}},{"name":"text.jade.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:template))\\b(?=[^\u003e]*lang=(['\"])jade\\1?)","end":"(\u003c/)((?i:template))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(\u003e)","end":"(?=\u003c/(?i:template))","patterns":[{"include":"text.jade"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.style.html"},"3":{"name":"punctuation.definition.tag.html"}}},{"name":"text.pug.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:template))\\b(?=[^\u003e]*lang=(['\"])pug\\1?)","end":"(\u003c/)((?i:template))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(\u003e)","end":"(?=\u003c/(?i:template))","patterns":[{"include":"text.jade"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.style.html"},"3":{"name":"punctuation.definition.tag.html"}}},{"name":"source.stylus.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:style))\\b(?=[^\u003e]*lang=(['\"])stylus\\1?)","end":"(\u003c/)((?i:style))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(\u003e)","end":"(?=\u003c/(?i:style))","patterns":[{"include":"source.stylus"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.style.html"},"3":{"name":"punctuation.definition.tag.html"}}},{"name":"source.postcss.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:style))\\b(?=[^\u003e]*lang=(['\"])postcss\\1?)","end":"(\u003c/)((?i:style))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(\u003e)","end":"(?=\u003c/(?i:style))","patterns":[{"include":"source.postcss"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.style.html"},"3":{"name":"punctuation.definition.tag.html"}}},{"name":"source.sass.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:style))\\b(?=[^\u003e]*lang=(['\"])sass\\1?)","end":"(\u003c/)((?i:style))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(\u003e)","end":"(?=\u003c/(?i:style))","patterns":[{"include":"source.sass"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.style.html"},"3":{"name":"punctuation.definition.tag.html"}}},{"name":"source.scss.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:style))\\b(?=[^\u003e]*lang=(['\"])scss\\1?)","end":"(\u003c/)((?i:style))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(\u003e)","end":"(?=\u003c/(?i:style))","patterns":[{"include":"source.css.scss"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.style.html"},"3":{"name":"punctuation.definition.tag.html"}}},{"name":"source.less.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:style))\\b(?=[^\u003e]*lang=(['\"])less\\1?)","end":"(\u003c/)((?i:style))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(\u003e)","end":"(?=\u003c/(?i:style))","patterns":[{"include":"source.css.less"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.style.html"},"3":{"name":"punctuation.definition.tag.html"}}},{"name":"source.css.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:style))\\b(?![^\u003e]*/\u003e)","end":"(\u003c/)((?i:style))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(\u003e)","end":"(?=\u003c/(?i:style))","patterns":[{"include":"source.css"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.style.html"},"3":{"name":"punctuation.definition.tag.html"}}},{"name":"source.ts.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:script))\\b(?=[^\u003e]*lang=(['\"])ts\\1?)","end":"(?\u003c=\u003c/(script|SCRIPT))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(?\u003c!\u003c/(?:script|SCRIPT))(\u003e)","end":"(\u003c/)((?i:script))","patterns":[{"include":"source.ts"}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.script.html"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.script.html"}},"endCaptures":{"2":{"name":"punctuation.definition.tag.html"}}},{"name":"source.coffee.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:script))\\b(?=[^\u003e]*lang=(['\"])coffee\\1?)","end":"(?\u003c=\u003c/(script|SCRIPT))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(?\u003c!\u003c/(?:script|SCRIPT))(\u003e)","end":"(\u003c/)((?i:script))","patterns":[{"include":"source.coffee"}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.script.html"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.script.html"}},"endCaptures":{"2":{"name":"punctuation.definition.tag.html"}}},{"name":"source.livescript.embedded.html","begin":"(?:^\\s+)?(\u003c)((?i:script))\\b(?=[^\u003e]*lang=(['\"])livescript\\1?)","end":"(?\u003c=\u003c/(script|SCRIPT))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(?\u003c!\u003c/(?:script|SCRIPT))(\u003e)","end":"(\u003c/)((?i:script))","patterns":[{"include":"source.livescript"}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.script.html"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.script.html"}},"endCaptures":{"2":{"name":"punctuation.definition.tag.html"}}},{"name":"source.js.embedded.html","begin":"(\u003c)((?i:script))\\b(?![^\u003e]*/\u003e)(?![^\u003e]*(?i:type.?=.?text/((?!javascript|babel|ecmascript).*)))","end":"(?\u003c=\u003c/(script|SCRIPT))(\u003e)(?:\\s*\\n)?","patterns":[{"include":"#tag-stuff"},{"begin":"(?\u003c!\u003c/(?:script|SCRIPT))(\u003e)","end":"(\u003c/)((?i:script))","patterns":[{"name":"comment.line.double-slash.js","match":"(//).*?((?=\u003c/script)|$\\n?)","captures":{"1":{"name":"punctuation.definition.comment.js"}}},{"name":"comment.block.js","begin":"/\\*","end":"\\*/|(?=\u003c/script)","captures":{"0":{"name":"punctuation.definition.comment.js"}}},{"include":"source.js"}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.script.html"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.script.html"}},"endCaptures":{"2":{"name":"punctuation.definition.tag.html"}}},{"name":"meta.tag.structure.any.html","begin":"(\u003c/?)((?i:body|head|html)\\b)","end":"(\u003e)","patterns":[{"include":"#tag-stuff"}],"captures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.structure.any.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}},{"name":"meta.tag.block.any.html","begin":"(\u003c/?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)","end":"(\u003e)","patterns":[{"include":"#tag-stuff"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.block.any.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}},{"name":"meta.tag.inline.any.html","begin":"(\u003c/?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)","end":"((?: ?/)?\u003e)","patterns":[{"include":"#tag-stuff"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.inline.any.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}},{"name":"meta.tag.other.html","begin":"(\u003c/?)([a-zA-Z0-9:-]+)","end":"(\u003e)","patterns":[{"include":"#tag-stuff"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.other.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}}},{"include":"#entities"},{"name":"invalid.illegal.incomplete.html","match":"\u003c\u003e"},{"name":"invalid.illegal.bad-angle-bracket.html","match":"\u003c"}],"repository":{"entities":{"patterns":[{"name":"constant.character.entity.html","match":"(\u0026)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)","captures":{"1":{"name":"punctuation.definition.entity.html"},"3":{"name":"punctuation.definition.entity.html"}}},{"name":"invalid.illegal.bad-ampersand.html","match":"\u0026"}]},"string-double-quoted":{"name":"string.quoted.double.html","begin":"\"","end":"\"","patterns":[{"include":"#vue-interpolations"},{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}},"string-single-quoted":{"name":"string.quoted.single.html","begin":"'","end":"'","patterns":[{"include":"#vue-interpolations"},{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}},"tag-generic-attribute":{"name":"entity.other.attribute-name.html","match":"\\b([a-zA-Z\\-:]+)"},"tag-id-attribute":{"name":"meta.attribute-with-value.id.html","begin":"\\b(id)\\b\\s*(=)","end":"(?\u003c='|\")","patterns":[{"name":"string.quoted.double.html","contentName":"meta.toc-list.id.html","begin":"\"","end":"\"","patterns":[{"include":"#vue-interpolations"},{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}},{"name":"string.quoted.single.html","contentName":"meta.toc-list.id.html","begin":"'","end":"'","patterns":[{"include":"#vue-interpolations"},{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}}],"captures":{"1":{"name":"entity.other.attribute-name.id.html"},"2":{"name":"punctuation.separator.key-value.html"}}},"tag-stuff":{"patterns":[{"include":"#vue-directives"},{"include":"#tag-id-attribute"},{"include":"#tag-generic-attribute"},{"include":"#string-double-quoted"},{"include":"#string-single-quoted"}]},"vue-directives":{"name":"meta.directive.vue","begin":"(?:\\b(v-)|(:|@))([a-zA-Z\\-]+)(?:\\:([a-zA-Z\\-]+))?(?:\\.([a-zA-Z\\-]+))*\\s*(=)","end":"(?\u003c='|\")","patterns":[{"name":"source.directive.vue","begin":"\"","end":"\"","patterns":[{"include":"source.js"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}},{"name":"source.directive.vue","begin":"'","end":"'","patterns":[{"include":"source.js"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}}],"captures":{"1":{"name":"entity.other.attribute-name.html"},"2":{"name":"punctuation.separator.key-value.html"},"3":{"name":"entity.other.attribute-name.html"},"4":{"name":"entity.other.attribute-name.html"},"5":{"name":"entity.other.attribute-name.html"},"6":{"name":"punctuation.separator.key-value.html"}}},"vue-interpolations":{"patterns":[{"name":"expression.embbeded.vue","begin":"\\{\\{\\{?","end":"\\}\\}\\}?","patterns":[{"include":"source.js"}],"beginCaptures":{"0":{"name":"punctuation.definition.generic.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.generic.end.html"}}}]}}}
@@ -1 +0,0 @@
1
- {"scopeName":"text.mdx.astro.codeblock","patterns":[{"name":"markup.code.astro.mdx","contentName":"meta.embedded.astro","begin":"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?astro))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)","end":"(\\1)(?:[\\t ]*$)","patterns":[{"include":"#astro-code-block"}],"beginCaptures":{"1":{"name":"string.other.begin.code.fenced.mdx"},"2":{"name":"entity.name.function.mdx"}},"endCaptures":{"1":{"name":"string.other.end.code.fenced.mdx"}}},{"name":"markup.code.astro.mdx","contentName":"meta.embedded.astro","begin":"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?astro))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)","end":"(\\1)(?:[\\t ]*$)","patterns":[{"include":"#astro-code-block"}],"beginCaptures":{"1":{"name":"string.other.begin.code.fenced.mdx"},"2":{"name":"entity.name.function.mdx"}},"endCaptures":{"1":{"name":"string.other.end.code.fenced.mdx"}}}],"repository":{"astro-code-block":{"patterns":[{"contentName":"meta.embedded.block.astro.frontmatter","begin":"^\\s*---\\s*$","end":"^\\s*---\\s*$","patterns":[{"include":"source.tsx"}],"beginCaptures":{"0":{"name":"punctuation.definition.tag.xi.begin.t"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.xi.end.t"}}},{"include":"source.astro"}]}}}