github-linguist 8.0.1 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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"}]}}}