github-linguist 9.2.0 → 9.4.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 (175) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +23 -4
  3. data/grammars/dart.inline.edgeql.json +1 -0
  4. data/grammars/go.inline.edgeql.json +1 -0
  5. data/grammars/injection.interpolated-ruby.json +1 -0
  6. data/grammars/injections.etc.json +1 -1
  7. data/grammars/inline.surrealql-js-literal.json +1 -0
  8. data/grammars/js.inline.edgeql.json +1 -0
  9. data/grammars/markdown.move.codeblock.json +1 -1
  10. data/grammars/markdown.surrealql.codeblock.json +1 -0
  11. data/grammars/markdown.vue.codeblock.json +1 -1
  12. data/grammars/markdown.wesl.codeblock.json +1 -0
  13. data/grammars/markdown.wgsl.codeblock.json +1 -0
  14. data/grammars/mdx.vue.codeblock.json +1 -1
  15. data/grammars/res.inline.edgeql.json +1 -0
  16. data/grammars/source.abl.json +1 -1
  17. data/grammars/source.agda.json +1 -1
  18. data/grammars/source.al.json +1 -1
  19. data/grammars/source.algol60.json +1 -0
  20. data/grammars/source.apex.json +1 -1
  21. data/grammars/source.ash.json +1 -0
  22. data/grammars/source.ats.json +1 -1
  23. data/grammars/source.b.json +1 -0
  24. data/grammars/source.bicep.json +1 -1
  25. data/grammars/source.brs.json +1 -1
  26. data/grammars/source.bru.json +1 -0
  27. data/grammars/source.c++.json +1 -1
  28. data/grammars/source.c.json +1 -1
  29. data/grammars/source.c.linker.json +1 -1
  30. data/grammars/source.c3.json +1 -0
  31. data/grammars/source.cadence.json +1 -1
  32. data/grammars/source.cj.json +1 -0
  33. data/grammars/source.clar.json +1 -1
  34. data/grammars/source.clean.json +1 -1
  35. data/grammars/source.cmake.json +1 -1
  36. data/grammars/source.cmakecache.json +1 -1
  37. data/grammars/source.cobol.json +1 -1
  38. data/grammars/source.comment-string.wesl.json +1 -0
  39. data/grammars/source.comment-string.wgsl.json +1 -0
  40. data/grammars/source.cooklang.json +1 -0
  41. data/grammars/source.cql.json +1 -0
  42. data/grammars/source.cs.json +1 -1
  43. data/grammars/source.csv.json +1 -0
  44. data/grammars/source.curlrc.json +1 -1
  45. data/grammars/source.data-weave.json +1 -1
  46. data/grammars/source.dotenv.json +1 -1
  47. data/grammars/source.dsv.json +1 -0
  48. data/grammars/source.edgeql.json +1 -1
  49. data/grammars/source.erlang.json +1 -1
  50. data/grammars/source.flix.json +1 -0
  51. data/grammars/source.fsharp.json +1 -1
  52. data/grammars/source.gdscript.json +1 -1
  53. data/grammars/source.gfm.blade.json +1 -1
  54. data/grammars/source.gitignore.json +1 -1
  55. data/grammars/source.go-template.json +1 -0
  56. data/grammars/source.go.injection.double.go-template.json +1 -0
  57. data/grammars/source.go.injection.raw.go-template.json +1 -0
  58. data/grammars/source.hack.json +1 -1
  59. data/grammars/source.harbour.json +1 -1
  60. data/grammars/source.httpspec.json +1 -1
  61. data/grammars/source.hurl.json +1 -0
  62. data/grammars/source.hx.json +1 -1
  63. data/grammars/source.ilecobol.json +1 -1
  64. data/grammars/source.inputrc.json +1 -1
  65. data/grammars/source.isabelle.theory.json +1 -1
  66. data/grammars/source.jac.json +1 -0
  67. data/grammars/source.jai.json +1 -1
  68. data/grammars/source.jq.json +1 -1
  69. data/grammars/source.json.comments.json +1 -1
  70. data/grammars/source.julia.json +1 -1
  71. data/grammars/source.just.json +1 -1
  72. data/grammars/source.kcl.json +1 -0
  73. data/grammars/source.langium.json +1 -0
  74. data/grammars/source.lean.markdown.json +1 -1
  75. data/grammars/source.lean4.json +1 -1
  76. data/grammars/source.lean4.markdown.json +1 -1
  77. data/grammars/source.lp.json +1 -0
  78. data/grammars/source.lua.json +1 -1
  79. data/grammars/source.luau.json +1 -1
  80. data/grammars/source.m2.json +1 -1
  81. data/grammars/source.mask.json +1 -1
  82. data/grammars/source.mdx.json +1 -1
  83. data/grammars/source.mermaid.flowchart.json +1 -1
  84. data/grammars/source.mermaid.gantt.json +1 -1
  85. data/grammars/source.mermaid.json +1 -1
  86. data/grammars/source.mermaid.pie-chart.json +1 -1
  87. data/grammars/source.mermaid.quad-chart.json +1 -0
  88. data/grammars/source.mermaid.sankey.json +1 -0
  89. data/grammars/source.mermaid.timeline.json +1 -0
  90. data/grammars/source.mermaid.user-journey.json +1 -1
  91. data/grammars/source.mermaid.zenuml.json +1 -0
  92. data/grammars/source.mo.json +1 -1
  93. data/grammars/source.mojo.json +1 -1
  94. data/grammars/source.moonbit.json +1 -1
  95. data/grammars/source.move.json +1 -1
  96. data/grammars/source.ned.json +1 -1
  97. data/grammars/source.nginx.json +1 -1
  98. data/grammars/source.nickel.json +1 -0
  99. data/grammars/source.nim.json +1 -1
  100. data/grammars/source.nr.json +1 -1
  101. data/grammars/source.nushell.json +1 -1
  102. data/grammars/source.odin-ehr.json +1 -1
  103. data/grammars/source.openqasm.json +1 -1
  104. data/grammars/source.postscript.json +1 -1
  105. data/grammars/source.proto.json +1 -1
  106. data/grammars/source.psl.json +1 -0
  107. data/grammars/source.pyjade.json +1 -1
  108. data/grammars/source.quakec.json +1 -0
  109. data/grammars/source.rascript.json +1 -0
  110. data/grammars/source.record-jar.json +1 -1
  111. data/grammars/source.rego.json +1 -1
  112. data/grammars/source.roc.json +1 -1
  113. data/grammars/source.rosmsg.json +1 -0
  114. data/grammars/source.rpgle.json +1 -1
  115. data/grammars/source.shell.json +1 -1
  116. data/grammars/source.sieve.json +1 -1
  117. data/grammars/source.singularity.json +1 -1
  118. data/grammars/source.slang.json +1 -1
  119. data/grammars/source.slint.json +1 -1
  120. data/grammars/source.soql.json +1 -1
  121. data/grammars/source.sqf.json +1 -1
  122. data/grammars/source.stan.json +1 -1
  123. data/grammars/source.surrealql.json +1 -0
  124. data/grammars/source.swift.json +1 -1
  125. data/grammars/source.teal.json +1 -0
  126. data/grammars/source.templ.json +1 -1
  127. data/grammars/source.tmdl.json +1 -0
  128. data/grammars/source.tsp.json +1 -1
  129. data/grammars/source.tsv.json +1 -0
  130. data/grammars/source.vb6.json +1 -0
  131. data/grammars/source.vba.json +1 -1
  132. data/grammars/source.vcl.json +1 -0
  133. data/grammars/source.vento.json +1 -1
  134. data/grammars/source.vhdl.json +1 -1
  135. data/grammars/source.vscode.c3.json +1 -0
  136. data/grammars/source.wdl.json +1 -1
  137. data/grammars/source.wesl.json +1 -0
  138. data/grammars/source.wgsl.json +1 -1
  139. data/grammars/source.wit.json +1 -1
  140. data/grammars/source.wwb.json +1 -1
  141. data/grammars/text.codeowners.json +1 -1
  142. data/grammars/text.git-commit.json +1 -0
  143. data/grammars/text.haml.json +1 -1
  144. data/grammars/text.html.jte.json +1 -1
  145. data/grammars/text.html.markdown.d2.json +1 -1
  146. data/grammars/text.html.vue.json +1 -0
  147. data/grammars/text.injection.go-template.json +1 -0
  148. data/grammars/text.jira.json +1 -0
  149. data/grammars/text.k.json +1 -0
  150. data/grammars/text.markdown.go-template.codeblock.json +1 -0
  151. data/grammars/text.marko.json +1 -1
  152. data/grammars/text.md.json +1 -1
  153. data/grammars/text.slim.json +1 -1
  154. data/grammars/text.source.mps.json +1 -0
  155. data/grammars/text.srt.json +1 -1
  156. data/grammars/text.valve-cfg.json +1 -1
  157. data/grammars/text.xml.svg.json +1 -1
  158. data/grammars/v.mod.json +1 -0
  159. data/grammars/version +1 -1
  160. data/grammars/vue.directives.json +1 -1
  161. data/grammars/vue.interpolations.json +1 -1
  162. data/grammars/vue.sfc.script.leading-operator-fix.json +1 -0
  163. data/lib/linguist/VERSION +1 -1
  164. data/lib/linguist/generated.rb +29 -5
  165. data/lib/linguist/generic.yml +3 -0
  166. data/lib/linguist/heuristics.yml +98 -11
  167. data/lib/linguist/instrumenter.rb +19 -0
  168. data/lib/linguist/languages.json +1 -1
  169. data/lib/linguist/languages.yml +405 -117
  170. data/lib/linguist/samples.json +1 -1
  171. data/lib/linguist.rb +1 -0
  172. metadata +59 -5
  173. data/grammars/inline.edgeql.json +0 -1
  174. data/grammars/source.varnish.vcl.json +0 -1
  175. data/grammars/source.vue.json +0 -1
@@ -1 +1 @@
1
- {"name":"Ruby Slim","scopeName":"text.slim","patterns":[{"name":"text.ruby.filter.slim","begin":"^(\\s*)(ruby):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.ruby"}],"beginCaptures":{"2":{"name":"constant.language.name.ruby.filter.slim"}}},{"name":"source.js.filter.slim","begin":"^(\\s*)(javascript):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.js"}],"beginCaptures":{"2":{"name":"constant.language.name.javascript.filter.slim"}}},{"name":"source.yaml.meta.slim","begin":"^(---)\\s*\\n","end":"^(---)\\s*\\n","patterns":[{"include":"source.yaml"}],"beginCaptures":{"1":{"name":"storage.frontmatter.slim"}},"endCaptures":{"1":{"name":"storage.frontmatter.slim"}}},{"name":"text.coffeescript.filter.slim","begin":"^(\\s*)(coffee):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.coffee"}],"beginCaptures":{"2":{"name":"constant.language.name.coffeescript.filter.slim"}}},{"name":"text.markdown.filter.slim","begin":"^(\\s*)(markdown):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"2":{"name":"constant.language.name.markdown.filter.slim"}}},{"name":"text.css.filter.slim","begin":"^(\\s*)(css):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.css"}],"beginCaptures":{"2":{"name":"constant.language.name.css.filter.slim"}}},{"name":"text.sass.filter.slim","begin":"^(\\s*)(sass):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.sass"}],"beginCaptures":{"2":{"name":"constant.language.name.sass.filter.slim"}}},{"name":"text.scss.filter.slim","begin":"^(\\s*)(scss):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.css.scss"}],"beginCaptures":{"2":{"name":"constant.language.name.scss.filter.slim"}}},{"name":"text.less.filter.slim","begin":"^(\\s*)(less):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.css.less"}],"beginCaptures":{"2":{"name":"constant.language.name.less.filter.slim"}}},{"name":"text.erb.filter.slim","begin":"^(\\s*)(erb):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"text.html.erb"}],"beginCaptures":{"2":{"name":"constant.language.name.erb.filter.slim"}}},{"name":"meta.prolog.slim","match":"^(! )($|\\s.*)","captures":{"1":{"name":"punctuation.definition.prolog.slim"}}},{"name":"comment.block.slim","begin":"^(\\s*)(/)\\s*.*$","end":"^(?!(\\1\\s)|\\s*$)","beginCaptures":{"2":{"name":"comment.line.slash.slim"}}},{"begin":"^\\s*(?=-)","end":"$","patterns":[{"include":"#rubyline"}]},{"begin":"(?==+|~)","end":"$","patterns":[{"include":"#rubyline"}]},{"include":"#tag-attribute"},{"include":"#embedded-ruby"},{"begin":"^(\\s*)(\\||')\\s*","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"text.html.basic"},{"include":"#embedded-ruby"}]},{"name":"meta.tag","begin":"^\\s*(\\.|#|[-a-zA-Z0-9]+)([\\w-]+)?","end":"$|(?!\\.|#|:|-|~|/|\\}|\\]|\\*|\\s?[\\*\\{])","patterns":[{"name":"entity.name.tag.slim","begin":"(:[\\w\\d]+)+","end":"$|\\s"},{"begin":"(:\\s)(\\.|#|[a-zA-Z0-9]+)([\\w-]+)?","end":"$|(?!\\.|#|=|-|~|/|\\}|\\]|\\*|\\s?[\\*\\{])","patterns":[{"include":"#root-class-id-tag"},{"include":"#tag-attribute"}],"captures":{"1":{"name":"punctuation.definition.tag.end.slim"},"2":{"name":"entity.name.tag.slim"},"3":{"name":"entity.other.attribute-name.event.slim"}}},{"name":"source.ruby.embedded.slim","begin":"(\\*\\{)(?=.*\\}|.*\\|\\s*$)","end":"(\\})|$|^(?!.*\\|\\s*$)","patterns":[{"include":"#embedded-ruby"}],"beginCaptures":{"1":{"name":"punctuation.section.embedded.ruby"}},"endCaptures":{"1":{"name":"punctuation.section.embedded.ruby"}}},{"include":"#root-class-id-tag"},{"include":"#rubyline"},{"name":"punctuation.terminator.tag.slim","match":"/"}],"captures":{"1":{"name":"entity.name.tag.slim"},"2":{"name":"entity.other.attribute-name.event.slim"}}},{"match":"^\\s*(\\\\.)","captures":{"1":{"name":"meta.escape.slim"}}},{"begin":"^\\s*(?=\\||')","end":"$","patterns":[{"include":"#embedded-ruby"},{"include":"text.html.basic"}]},{"begin":"(?=\u003c[\\w\\d\\:]+)","end":"$|\\/\\\u003e","patterns":[{"include":"text.html.basic"}]}],"repository":{"continuation":{"match":"([\\\\,])\\s*\\n","captures":{"1":{"name":"punctuation.separator.continuation.slim"}}},"delimited-ruby-a":{"name":"source.ruby.embedded.slim","begin":"=\\(","end":"\\)(?=( \\w|$))","patterns":[{}]},"delimited-ruby-b":{"name":"source.ruby.embedded.slim","begin":"=\\[","end":"\\](?=( \\w|$))","patterns":[{}]},"delimited-ruby-c":{"name":"source.ruby.embedded.slim","begin":"=\\{","end":"\\}(?=( \\w|$))","patterns":[{}]},"embedded-ruby":{"name":"source.ruby.embedded.html","begin":"(?\u003c!\\\\)#\\{{1,2}","end":"\\}{1,2}","patterns":[{}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.ruby"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.ruby"}}},"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"}]},"interpolated-ruby":{"name":"source.ruby.embedded.html","begin":"=(?=\\b)","end":"\\s|\\w$"},"root-class-id-tag":{"match":"(\\.|#)([\\w\\d\\-]+)","captures":{"1":{"name":"punctuation.separator.key-value.html"},"2":{"name":"entity.other.attribute-name.html"}}},"rubyline":{"name":"meta.line.ruby.slim","contentName":"source.ruby.embedded.slim","begin":"(==|=)(\u003c\u003e|\u003e\u003c|\u003c'|'\u003c|\u003c|\u003e)?|-","end":"(do\\s*\\n$)|(?\u003c!\\\\|,|,\\n|\\\\\\n)$","patterns":[{"name":"comment.line.number-sign.ruby","match":"#.*$"},{"include":"#continuation"},{}],"endCaptures":{"1":{"name":"keyword.control.start-block.ruby"}}},"string-double-quoted":{"name":"string.quoted.double.html","contentName":"meta.toc-list.id.html","begin":"(\")(?=.*\")","end":"\"","patterns":[{"include":"#embedded-ruby"},{"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","contentName":"meta.toc-list.id.html","begin":"(')(?=.*')","end":"'","patterns":[{"include":"#embedded-ruby"},{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}},"tag-attribute":{"name":"meta.attribute-with-value.slim","begin":"([\\w.#_-]+)(=)(?!\\s)(true|false|nil)?(\\s*\\(|\\{)?","end":"\\}|\\)|$","patterns":[{"include":"#tag-stuff"},{"include":"#string-double-quoted"},{"include":"#string-single-quoted"}],"captures":{"1":{"name":"entity.other.attribute-name.event.slim"},"2":{"name":"punctuation.separator.key-value.html"},"3":{"name":"constant.language.slim"}}},"tag-stuff":{"patterns":[{"include":"#tag-attribute"},{"include":"#interpolated-ruby"},{"include":"#delimited-ruby-a"},{"include":"#delimited-ruby-b"},{"include":"#delimited-ruby-c"},{"include":"#rubyline"},{"include":"#embedded-ruby"}]}}}
1
+ {"name":"Slim","scopeName":"text.slim","patterns":[{"name":"meta.filter.slim source.ruby.embedded.slim","begin":"^(\\s*)(ruby):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.ruby"}],"beginCaptures":{"2":{"name":"constant.language.name.ruby.filter.slim"}}},{"name":"meta.filter.slim source.js.embedded.slim","begin":"^(\\s*)(javascript).*:$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.js"}],"beginCaptures":{"2":{"name":"constant.language.name.javascript.filter.slim"}}},{"name":"meta.filter.slim source.coffee.embedded.slim","begin":"^(\\s*)(coffee).*:$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.coffee"}],"beginCaptures":{"2":{"name":"constant.language.name.coffeescript.filter.slim"}}},{"name":"meta.filter.slim text.html.markdown.embedded.slim","begin":"^(\\s*)(markdown):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"text.md"}],"beginCaptures":{"2":{"name":"constant.language.name.markdown.filter.slim"}}},{"name":"meta.filter.slim source.css.embedded.slim","begin":"^(\\s*)(css).*:$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.css"}],"beginCaptures":{"2":{"name":"constant.language.name.css.filter.slim"}}},{"name":"meta.filter.slim source.sass.embedded.slim","begin":"^(\\s*)(sass).*:$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.sass"}],"beginCaptures":{"2":{"name":"constant.language.name.sass.filter.slim"}}},{"name":"meta.filter.slim source.scss.embedded.slim","begin":"^(\\s*)(scss).*:$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.css.scss"}],"beginCaptures":{"2":{"name":"constant.language.name.scss.filter.slim"}}},{"name":"meta.filter.slim source.less.embedded.slim","begin":"^(\\s*)(less).*:$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"source.css.less"}],"beginCaptures":{"2":{"name":"constant.language.name.less.filter.slim"}}},{"name":"meta.filter.slim text.html.erb.embedded.slim","begin":"^(\\s*)(erb):$","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"text.html.erb"}],"beginCaptures":{"2":{"name":"constant.language.name.erb.filter.slim"}}},{"name":"comment.block.html.slim","begin":"^(\\s*)((/!)\\s*.*)$","end":"^(?!(\\1\\s)|\\s*$)","beginCaptures":{"2":{"name":"comment.line.slash.slim"},"3":{"name":"punctuation.definition.comment.slim"}}},{"name":"comment.block.slim","begin":"^(\\s*)((/)((\\[).*(\\])).*)$","end":"^(?!(\\1\\s)|\\s*$)","beginCaptures":{"2":{"name":"comment.line.slash.slim"},"3":{"name":"punctuation.definition.comment.slim"},"4":{"name":"meta.brackets.slim"},"5":{"name":"punctuation.section.brackets.begin.slim"},"6":{"name":"punctuation.section.brackets.end.slim"}}},{"name":"comment.block.slim","begin":"^(\\s*)((/)\\s*.*)$","end":"^(?!(\\1\\s)|\\s*$)","beginCaptures":{"2":{"name":"comment.line.slash.slim"},"3":{"name":"punctuation.definition.comment.slim"}}},{"begin":"^\\s*(?=-)","end":"$","patterns":[{"include":"#rubyline"}]},{"begin":"^\\s*(?==+|~)","end":"$","patterns":[{"include":"#rubyline"}]},{"include":"#splat-attribute"},{"include":"#interpolated-ruby"},{"include":"#verbatim-text"},{"match":"^\\s*(doctype)\\s+.*(\\n|$)","captures":{"0":{"name":"meta.tag.sgml.doctype.slim"}}},{"name":"meta.tag.slim","begin":"(\\s*)(?:([\\w-]+)|(\\.)((?:[\\w-]|(?::(?!\\s)))+(?:/\\d+)?)|(#)((?:[\\w-]|(?::(?!\\s)))+(?:/\\d+)?))","end":"$|(:)(?=\\s)","patterns":[{"include":"#xml-namespace"},{"include":"#class-id-shortcut"},{"include":"#attribute-wrapper"},{"include":"#splat-attribute"},{"include":"#whitespace-modifier"},{"include":"#rubyline"},{"include":"#tag-attribute"},{"include":"#whitespace"},{"include":"#closed-tag-terminator"},{"include":"#inline-text"}],"beginCaptures":{"2":{"name":"entity.name.tag.slim"},"3":{"name":"punctuation.definition.attribute.class.slim"},"4":{"name":"entity.other.attribute-name.class.html"},"5":{"name":"punctuation.definition.attribute.id.slim"},"6":{"name":"entity.other.attribute-name.id.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.slim"}}},{"match":"^\\s*(\\\\.)","captures":{"1":{"name":"meta.escape.slim"}}},{"include":"#inline-text"}],"repository":{"attribute-wrapper":{"patterns":[{"include":"#attribute-wrapper-parens"},{"include":"#attribute-wrapper-brackets"},{"include":"#attribute-wrapper-braces"}]},"attribute-wrapper-braces":{"name":"meta.braces.slim","begin":"\\{","end":"\\}","patterns":[{"include":"#tag-attribute-wrapped"},{"include":"#tag-boolean-attribute"}],"beginCaptures":{"0":{"name":"punctuation.section.braces.begin.slim"}},"endCaptures":{"0":{"name":"punctuation.section.braces.end.slim"}}},"attribute-wrapper-brackets":{"name":"meta.brackets.slim","begin":"\\[","end":"\\]","patterns":[{"include":"#tag-attribute-wrapped"},{"include":"#tag-boolean-attribute"}],"beginCaptures":{"0":{"name":"punctuation.section.brackets.begin.slim"}},"endCaptures":{"0":{"name":"punctuation.section.brackets.end.slim"}}},"attribute-wrapper-parens":{"name":"meta.parens.slim","begin":"\\(","end":"\\)","patterns":[{"include":"#tag-attribute-wrapped"},{"include":"#tag-boolean-attribute"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.slim"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.slim"}}},"boolean-attribute-value":{"name":"constant.language.slim","begin":"true|false|nil","end":"(?=\\s)|$"},"class-id-shortcut":{"patterns":[{"include":"#class-shortcut"},{"include":"#id-shortcut"}]},"class-shortcut":{"match":"(\\.)((?:[\\w-]|(?::(?!\\s)))+(?:/\\d+)?)","captures":{"1":{"name":"punctuation.definition.attribute.class.slim"},"2":{"name":"entity.other.attribute-name.class.html"}}},"closed-tag-terminator":{"name":"punctuation.terminator.tag.slim","match":"\\s*/\\s*"},"continuation":{"match":"([\\\\,])\\s*\\n","captures":{"1":{"name":"punctuation.separator.continuation.slim"}}},"delimited-ruby-group":{"name":"meta.embedded.slim meta.string.ruby source.ruby.embedded.slim entity.other.slim.ruby-attribute-delimited","contentName":"meta.source.ruby","begin":"\\(","end":"(\\))(?=(\\s|\\]|\\}$))","patterns":[{"include":"source.ruby"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.begin.slim"}},"endCaptures":{"1":{"name":"punctuation.definition.group.end.slim"}}},"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"}]},"id-shortcut":{"match":"(#)((?:[\\w-]|(?::(?!\\s)))+(?:/\\d+)?)","captures":{"1":{"name":"punctuation.definition.attribute.id.slim"},"2":{"name":"entity.other.attribute-name.id.html"}}},"inline-text":{"name":"meta.embedded.slim text.html.embedded.slim entity.other.slim.inline-text","begin":"(?=.)","end":"(?\u003c!\\\\\\n)$","patterns":[{"include":"text.html.basic"},{"include":"#interpolated-ruby"},{"match":"([^#\u003c]|\\\\#|\\\\\\\u003c)*\\n"}]},"interpolated-ruby":{"name":"meta.interpolation.slim meta.string.ruby source.ruby.embedded.slim","begin":"(?\u003c!\\\\)#\\{{1,2}","end":"\\}{1,2}","patterns":[{"include":"source.ruby"}],"beginCaptures":{"0":{"name":"punctuation.section.interpolation.begin.slim"}},"endCaptures":{"0":{"name":"punctuation.section.interpolation.end.slim"}}},"ruby-attribute-array":{"name":"meta.embedded.slim meta.string.ruby source.ruby.embedded.slim entity.other.slim.ruby-attribute-array","begin":"(?=\\[)","end":"(?\u003c=\\])","patterns":[{"include":"source.ruby"}]},"ruby-attribute-hash":{"name":"meta.embedded.slim meta.string.ruby source.ruby.embedded.slim entity.other.slim.ruby-attribute-hash","begin":"(?=\\{)","end":"(?\u003c=\\})","patterns":[{"include":"source.ruby"}]},"ruby-attribute-symbol-array":{"name":"meta.embedded.slim meta.string.ruby source.ruby.embedded.slim entity.other.slim.ruby-attribute-symbol-array","begin":"=?(?=:)","end":"(?=\\s|\\)|\\]|\\})|$","patterns":[{"include":"source.ruby"}]},"ruby-attribute-value":{"name":"meta.embedded.slim meta.string.ruby source.ruby.embedded.slim entity.other.slim.ruby-attribute-value","begin":"(?=\\b)","end":"(?=\\s)|$","patterns":[{"include":"source.ruby"}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.slim"}}},"ruby-attribute-value-wrapped":{"name":"meta.embedded.slim meta.string.ruby source.ruby.embedded.slim entity.other.slim.ruby-attribute-value-wrapped","begin":"(?=\\b)","end":"(?=\\)|\\]|\\})|$","patterns":[{"include":"source.ruby"}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.slim"}}},"rubyline":{"name":"meta.embedded.slim meta.line.ruby.slim","contentName":"meta.embedded.slim meta.string.ruby source.ruby.embedded.slim entity.other.slim.ruby-line","begin":"(==|=)(\u003c\u003e|\u003e\u003c|\u003c'|'\u003c|\u003c|\u003e)?|-\\s*","end":"(do\\s*\\n$)|(?\u003c!\\\\|,|,\\n|\\\\\\n)$","patterns":[{"name":"comment.line.number-sign.ruby","match":"#.*$"},{"include":"#continuation"},{"include":"source.ruby"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.slim"},"2":{"name":"keyword.operator.whitespace.slim"}},"endCaptures":{"1":{"name":"keyword.control.start-block.ruby"}}},"splat-attribute":{"patterns":[{"include":"#splat-attribute-hash"},{"include":"#splat-attribute-direct"}]},"splat-attribute-direct":{"name":"meta.embedded.slim source.ruby.embedded.slim entity.other.slim.splat-attribute","begin":"\\*","end":"(?=\\s)|$","patterns":[{"include":"source.ruby"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.ruby"}}},"splat-attribute-hash":{"name":"meta.embedded.slim source.ruby.embedded.slim entity.other.slim.splat-attribute","begin":"\\*\\{","end":"\\}","patterns":[{"include":"source.ruby"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.ruby"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.ruby"}}},"string-double-quoted":{"name":"meta.string.html string.quoted.double.html","begin":"(\")(?=.*(\"|\\\\?$))","end":"\"","patterns":[{"include":"#interpolated-ruby"},{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}},"string-single-quoted":{"name":"meta.string.html string.quoted.single.html","begin":"(')(?=.*('|\\\\$))","end":"'","patterns":[{"include":"#interpolated-ruby"},{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}},"tag-attribute":{"name":"meta.attribute-with-value.slim","begin":"([\\w-]+)\\s*(==?)\\s*","end":"(?=(?::?\\s))|$","patterns":[{"include":"#string-double-quoted"},{"include":"#string-single-quoted"},{"include":"#boolean-attribute-value"},{"include":"#delimited-ruby-group"},{"include":"#ruby-attribute-array"},{"include":"#ruby-attribute-hash"},{"include":"#ruby-attribute-symbol-array"},{"include":"#ruby-attribute-value"}],"captures":{"1":{"name":"entity.other.attribute-name.slim"},"2":{"name":"punctuation.separator.key-value.slim"}}},"tag-attribute-wrapped":{"name":"meta.attribute-with-value.slim","begin":"([\\w-]+)\\s*(==?)\\s*","end":"(?=(?:\\)|\\]|\\}))|$","patterns":[{"include":"#string-double-quoted"},{"include":"#string-single-quoted"},{"include":"#boolean-attribute-value"},{"include":"#delimited-ruby-group"},{"include":"#ruby-attribute-array"},{"include":"#ruby-attribute-hash"},{"include":"#ruby-attribute-symbol-array"},{"include":"#ruby-attribute-value-wrapped"}],"captures":{"1":{"name":"entity.other.attribute-name.slim"},"2":{"name":"punctuation.separator.key-value.slim"}}},"tag-boolean-attribute":{"name":"meta.attribute-with-value.slim entity.other.attribute-name.slim","begin":"([\\w-]+)\\s*","end":"(?=(?::?\\s|\\)|\\]|\\}))|$"},"verbatim-text":{"contentName":"text.html.embedded.slim","begin":"^(\\s*)([|'](\u003c |\u003e |\u003c\u003e |\u003e\u003c )?)\\s*","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"text.html.basic"},{"include":"#interpolated-ruby"}],"beginCaptures":{"2":{"name":"punctuation.section.verbatim.slim"}}},"whitespace":{"name":"text.html.embedded.whitespace.slim","match":"\\s+"},"whitespace-modifier":{"name":"keyword.operator.whitespace.slim","match":"(?\u003c!\\s)(?:\\\u003e|\\\u003c|\\\u003c\\\u003e|\\\u003e\\\u003c)"},"xml-namespace":{"name":"entity.name.tag.slim","match":"(:[\\w-]+)+"}}}
@@ -0,0 +1 @@
1
+ {"name":"Mathematical Programming System","scopeName":"text.source.mps","patterns":[{"include":"#sections"},{"include":"#constraints"},{"include":"#bounds"},{"include":"#columns"},{"include":"#infinity"},{"include":"#variables"},{"include":"#numbers"},{"include":"#comments"},{"include":"#braces"},{"include":"#parentheses"}],"repository":{"bounds":{"patterns":[{"name":"keyword.bound.mps","match":"(?i)\\b(UP|LO|FX|FR|MI|PL)\\b"}]},"braces":{"patterns":[{"name":"punctuation.definition.block.mps","match":"[{}]"}]},"columns":{"patterns":[{"name":"meta.column.mps","match":"^(\\s{0,2}[A-Za-z0-9]+)\\s+([A-Za-z0-9_]+)\\s+(-?\\d+(\\.\\d+)?|Infinity)\\b","captures":{"1":{"name":"variable.mps"},"2":{"name":"keyword.constraint.mps"},"3":{"name":"constant.numeric.mps"}}}]},"comments":{"patterns":[{"name":"comment.line.mps","begin":"\\*","end":"$"}]},"constraints":{"patterns":[{"name":"keyword.constraint.mps","match":"(?i)\\b(E|L|G|N)\\b"}]},"infinity":{"patterns":[{"name":"constant.language.infinity.mps","match":"(?i)\\bInfinity\\b"}]},"numbers":{"patterns":[{"name":"constant.numeric.mps","match":"\\b\\d+(\\.\\d+)?\\b"}]},"parentheses":{"patterns":[{"name":"punctuation.definition.group.mps","match":"[()]"}]},"sections":{"patterns":[{"name":"keyword.section.mps","match":"(?i)\\b(NAME|ROWS|COLUMNS|RHS|BOUNDS|ENDATA|RANGES)\\b"}]},"variables":{"patterns":[{"name":"variable.mps","match":"\\b[A-Za-z_][A-Za-z0-9_]*\\b"}]}}}
@@ -1 +1 @@
1
- {"name":"SubRip Text","scopeName":"text.srt","patterns":[{"include":"#main"}],"repository":{"action":{"patterns":[{"name":"string.quoted.other.sound.action.square-brackets.srt","begin":"\\[","end":"\\]|(?=^[ \\t]*$)","patterns":[{"include":"#formatting"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.srt"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.srt"}}},{"name":"string.quoted.other.sound.action.round-brackets.srt","begin":"\\(","end":"\\)|(?=^[ \\t]*$)","patterns":[{"include":"#formatting"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.srt"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.srt"}}}]},"align":{"name":"meta.tag.override.line-alignment.srt","match":"({)(\\\\a(?:n[1-9]|(10|11|(?!4|8)\\d)))(})","captures":{"1":{"name":"punctuation.definition.tag.begin.srt"},"2":{"name":"entity.name.tag.srt"},"3":{"name":"invalid.deprecated.syntax.tag.srt"},"4":{"name":"punctuation.definition.tag.end.srt"}}},"arrow":{"name":"keyword.operator.timespan.srt","match":"--\u003e","captures":{"0":{"name":"punctuation.definition.separator.srt"}}},"bold":{"contentName":"markup.bold.srt","begin":"(\u003c)([Bb])(?=$|\u003e|\\s)([^\u003e]*)(\u003e)","end":"(\u003c/)([Bb])[ \\t]*(\u003e)|(?=^[ \\t]*$)","patterns":[{"include":"#text"}],"beginCaptures":{"0":{"name":"meta.tag.inline.b.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.b.html.srt"},"3":{"patterns":[{"include":"text.html.basic#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html.srt"}},"endCaptures":{"0":{"name":"meta.tag.inline.b.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.b.html"},"3":{"name":"punctuation.definition.tag.end.html.srt"}}},"dash":{"name":"markup.quote.quotation-dash.srt","match":"(?:^|\\G)(-)","captures":{"1":{"name":"punctuation.section.quote.srt"}}},"escapes":{"patterns":[{"name":"constant.character.whitespace.escape.hard-space.srt","match":"(\\\\)h","captures":{"1":{"name":"punctuation.definition.escape.backslash.srt"}}},{"name":"constant.character.whitespace.escape.forced-newline.srt","match":"(\\\\)N","captures":{"1":{"name":"punctuation.definition.escape.backslash.srt"}}}]},"font":{"contentName":"markup.other.font.srt","begin":"(?i)(\u003c)(font)(?=$|\u003e|\\s)([^\u003e]*)(\u003e)","end":"(?i)(\u003c/)(font)[ \\t]*(\u003e)|(?=^[ \\t]*$)","patterns":[{"include":"#text"}],"beginCaptures":{"0":{"name":"meta.tag.inline.font.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.font.html.srt"},"3":{"patterns":[{"include":"text.html.basic#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html.srt"}},"endCaptures":{"0":{"name":"meta.tag.inline.font.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.font.html.srt"},"3":{"name":"punctuation.definition.tag.end.html.srt"}}},"formatting":{"patterns":[{"include":"#bold"},{"include":"#italic"},{"include":"#underline"},{"include":"#strike"},{"include":"#font"},{"include":"#align"}]},"italic":{"contentName":"markup.italic.srt","begin":"(\u003c)([Ii])(?=$|\u003e|\\s)([^\u003e]*)(\u003e)","end":"(\u003c/)([Ii])[ \\t]*(\u003e)|(?=^[ \\t]*$)","patterns":[{"include":"#text"}],"beginCaptures":{"0":{"name":"meta.tag.inline.i.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.i.html.srt"},"3":{"patterns":[{"include":"text.html.basic#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html.srt"}},"endCaptures":{"0":{"name":"meta.tag.inline.i.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.i.html"},"3":{"name":"punctuation.definition.tag.end.html.srt"}}},"linePosition":{"name":"meta.line-position.${2:/downcase}-axis.srt","match":"\\b(([XY])[0-9]+)(:)(?:([-+]?[0-9]+\\.[0-9]+)|([-+]?[0-9]+))\\b","captures":{"1":{"name":"variable.parameter.position.srt"},"3":{"name":"keyword.operator.assignment.key-value.colon.srt"},"4":{"name":"constant.numeric.float.srt"},"5":{"name":"constant.numeric.integer.srt"}}},"lyrics":{"name":"markup.quote.lyrics.srt","begin":"(♪+)[ \\t]*","end":"[ \\t]*(♪+)|(?=^-|^[ \\t]*$|\\s*\u003c/)","patterns":[{"include":"#formatting"}],"beginCaptures":{"1":{"name":"punctuation.definition.lyrics.begin.srt"}},"endCaptures":{"1":{"name":"punctuation.definition.lyrics.end.srt"}}},"main":{"patterns":[{"include":"#subtitle"}]},"speaker":{"match":"(?:^|\\G)(-[ \\t]*)?((?:[^-\u003c\u003e\\s:][^:]*(?=:[ \\t]*\\S)|[^-\u003c\u003e\\s:a-z][^:a-z]*)(:))(?=$|\\s)","captures":{"1":{"patterns":[{"include":"#dash"}]},"2":{"name":"entity.name.speaker.srt","patterns":[{"include":"#formatting"},{"include":"#action"}]},"3":{"name":"punctuation.separator.speaker.colon.srt"}}},"strike":{"contentName":"markup.strike.srt","begin":"(\u003c)([Ss])(?=$|\u003e|\\s)([^\u003e]*)(\u003e)","end":"(\u003c/)([Ss])[ \\t]*(\u003e)|(?=^[ \\t]*$)","patterns":[{"include":"#text"}],"beginCaptures":{"0":{"name":"meta.tag.inline.s.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.s.html.srt"},"3":{"patterns":[{"include":"text.html.basic#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html.srt"}},"endCaptures":{"0":{"name":"meta.tag.inline.s.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.s.html"},"3":{"name":"punctuation.definition.tag.end.html.srt"}}},"subtitle":{"name":"meta.subtitle.srt","begin":"^(?:?)(\\d+)$","end":"^[ \\t]*$","patterns":[{"begin":"\\G\\s*","end":"(?!\\G)$","patterns":[{"name":"meta.timespan.empty.srt","contentName":"comment.block.ignored.hidden-subtitle.srt","begin":"(?x) ^\n([0-9]{2}:[0-9]{2}:[0-9]{2}[,.][0-9]{3}) \\x20(--\u003e)\\x20 (\\1)\n((?:\\s*[XY][0-9]+:[-+]?[0-9]+(?:\\.[0-9]+)?)++)?\n[ \\t]* $ ","end":"(?=^[ \\t]*$)","beginCaptures":{"1":{"name":"constant.numeric.time.timecode.start.srt","patterns":[{"include":"#timecode"}]},"2":{"patterns":[{"include":"#arrow"}]},"3":{"name":"constant.numeric.time.timecode.end.srt","patterns":[{"include":"#timecode"}]},"4":{"patterns":[{"include":"#linePosition"}]}}},{"name":"meta.timespan.srt","match":"(?x) ^\n([0-9]{2}:[0-9]{2}:[0-9]{2}[,.][0-9]{3}) \\x20(--\u003e)\\x20\n([0-9]{2}:[0-9]{2}:[0-9]{2}[,.][0-9]{3})\n((?:\\s*[XY][0-9]+:[-+]?[0-9]+(?:\\.[0-9]+)?)++)?\n[ \\t]* $ ","captures":{"1":{"name":"constant.numeric.time.timecode.start.srt","patterns":[{"include":"#timecode"}]},"2":{"patterns":[{"include":"#arrow"}]},"3":{"name":"constant.numeric.time.timecode.end.srt","patterns":[{"include":"#timecode"}]},"4":{"patterns":[{"include":"#linePosition"}]}}},{"include":"#text"}]},{"include":"#text"}],"beginCaptures":{"1":{"name":"entity.name.section.srt"}}},"text":{"patterns":[{"include":"#speaker"},{"include":"#dash"},{"include":"#action"},{"include":"#lyrics"},{"include":"#formatting"},{"include":"#escapes"}]},"timecode":{"patterns":[{"name":"invalid.illegal.syntax.decimal-separator.srt","match":"\\."},{"name":"invalid.illegal.value.out-of-range.vtt","match":"(?\u003c=:)([6-9][0-9])"}]},"underline":{"contentName":"markup.underline.srt","begin":"(\u003c)([Uu])(?=$|\u003e|\\s)([^\u003e]*)(\u003e)","end":"(\u003c/)([Uu])[ \\t]*(\u003e)|(?=^[ \\t]*$)","patterns":[{"include":"#text"}],"beginCaptures":{"0":{"name":"meta.tag.inline.u.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.u.html.srt"},"3":{"patterns":[{"include":"text.html.basic#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html.srt"}},"endCaptures":{"0":{"name":"meta.tag.inline.u.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.u.html"},"3":{"name":"punctuation.definition.tag.end.html.srt"}}}}}
1
+ {"name":"SubRip Text","scopeName":"text.srt","patterns":[{"include":"#main"}],"repository":{"action":{"patterns":[{"name":"string.quoted.other.sound.action.square-brackets.srt","begin":"\\[","end":"\\]|(?=^[ \\t]*$)","patterns":[{"include":"#formatting"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.srt"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.srt"}}},{"name":"string.quoted.other.sound.action.round-brackets.srt","begin":"\\(","end":"\\)|(?=^[ \\t]*$)","patterns":[{"include":"#formatting"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.srt"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.srt"}}}]},"align":{"name":"meta.tag.override.line-alignment.srt","match":"({)(\\\\a(?:n[1-9]|(10|11|(?!4|8)\\d)))(})","captures":{"1":{"name":"punctuation.definition.tag.begin.srt"},"2":{"name":"entity.name.tag.srt"},"3":{"name":"invalid.deprecated.syntax.tag.srt"},"4":{"name":"punctuation.definition.tag.end.srt"}}},"arrow":{"name":"keyword.operator.timespan.srt","match":"--\u003e","captures":{"0":{"name":"punctuation.definition.separator.srt"}}},"bold":{"contentName":"markup.bold.srt","begin":"(\u003c)([Bb])(?=$|\u003e|\\s)([^\u003e]*)(\u003e)","end":"(\u003c/)([Bb])[ \\t]*(\u003e)|(?=^[ \\t]*$)","patterns":[{"include":"#text"}],"beginCaptures":{"0":{"name":"meta.tag.inline.b.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.b.html.srt"},"3":{"patterns":[{"include":"text.html.basic#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html.srt"}},"endCaptures":{"0":{"name":"meta.tag.inline.b.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.b.html"},"3":{"name":"punctuation.definition.tag.end.html.srt"}}},"dash":{"name":"markup.quote.quotation-dash.srt","match":"(?:^|\\G)(-)","captures":{"1":{"name":"punctuation.section.quote.srt"}}},"escapes":{"patterns":[{"name":"constant.character.whitespace.escape.hard-space.srt","match":"(\\\\)h","captures":{"1":{"name":"punctuation.definition.escape.backslash.srt"}}},{"name":"constant.character.whitespace.escape.forced-newline.srt","match":"(\\\\)N","captures":{"1":{"name":"punctuation.definition.escape.backslash.srt"}}}]},"font":{"contentName":"markup.other.font.srt","begin":"(?i)(\u003c)(font)(?=$|\u003e|\\s)([^\u003e]*)(\u003e)","end":"(?i)(\u003c/)(font)[ \\t]*(\u003e)|(?=^[ \\t]*$)","patterns":[{"include":"#text"}],"beginCaptures":{"0":{"name":"meta.tag.inline.font.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.font.html.srt"},"3":{"patterns":[{"include":"text.html.basic#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html.srt"}},"endCaptures":{"0":{"name":"meta.tag.inline.font.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.font.html.srt"},"3":{"name":"punctuation.definition.tag.end.html.srt"}}},"formatting":{"patterns":[{"include":"#bold"},{"include":"#italic"},{"include":"#underline"},{"include":"#strike"},{"include":"#font"},{"include":"#align"},{"include":"#unknownTag"}]},"italic":{"contentName":"markup.italic.srt","begin":"(\u003c)([Ii])(?=$|\u003e|\\s)([^\u003e]*)(\u003e)","end":"(\u003c/)([Ii])[ \\t]*(\u003e)|(?=^[ \\t]*$)","patterns":[{"include":"#text"}],"beginCaptures":{"0":{"name":"meta.tag.inline.i.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.i.html.srt"},"3":{"patterns":[{"include":"text.html.basic#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html.srt"}},"endCaptures":{"0":{"name":"meta.tag.inline.i.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.i.html"},"3":{"name":"punctuation.definition.tag.end.html.srt"}}},"linePosition":{"name":"meta.line-position.${2:/downcase}-axis.srt","match":"\\b(([XY])[0-9]+)(:)(?:([-+]?[0-9]+\\.[0-9]+)|([-+]?[0-9]+))\\b","captures":{"1":{"name":"variable.parameter.position.srt"},"3":{"name":"keyword.operator.assignment.key-value.colon.srt"},"4":{"name":"constant.numeric.float.srt"},"5":{"name":"constant.numeric.integer.srt"}}},"lyrics":{"name":"markup.quote.lyrics.srt","begin":"(♪+)[ \\t]*","end":"[ \\t]*(♪+)|(?=^-|^[ \\t]*$|\\s*\u003c/)","patterns":[{"include":"#formatting"}],"beginCaptures":{"1":{"name":"punctuation.definition.lyrics.begin.srt"}},"endCaptures":{"1":{"name":"punctuation.definition.lyrics.end.srt"}}},"main":{"patterns":[{"include":"#subtitle"}]},"speaker":{"match":"(?x)\n(?:^|\\G)\n(-[ \\t]*)?\n(\n\t(?: [^-\u003c\u003e\\s:] [^\u003c\u003e:]* (?=:[ \\t]*\\S)\n\t| [^-\u003c\u003e\\s:a-z] [^\u003c\u003e:a-z]*\n\t| \u003c(?!/(?i:[bisu]|font)\u003e\\s*:)\n\t)++\n\t(?:\n\t\t(?=(?:\\s*\u003c/(?i:[bisu]|font)\u003e)++\\s*:)\n\t\t|\n\t\t(:)\n\t)\n)(?=$|\\s|\u003c/)","captures":{"1":{"patterns":[{"include":"#dash"}]},"2":{"name":"entity.name.speaker.srt","patterns":[{"include":"#formatting"},{"include":"#action"}]},"3":{"name":"punctuation.separator.speaker.colon.srt"}}},"strike":{"contentName":"markup.strike.srt","begin":"(\u003c)([Ss])(?=$|\u003e|\\s)([^\u003e]*)(\u003e)","end":"(\u003c/)([Ss])[ \\t]*(\u003e)|(?=^[ \\t]*$)","patterns":[{"include":"#text"}],"beginCaptures":{"0":{"name":"meta.tag.inline.s.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.s.html.srt"},"3":{"patterns":[{"include":"text.html.basic#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html.srt"}},"endCaptures":{"0":{"name":"meta.tag.inline.s.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.s.html"},"3":{"name":"punctuation.definition.tag.end.html.srt"}}},"subtitle":{"name":"meta.subtitle.srt","begin":"^(?:?)(\\d+)$","end":"^[ \\t]*$","patterns":[{"begin":"\\G\\s*","end":"(?!\\G)$","patterns":[{"name":"meta.timespan.empty.srt","contentName":"comment.block.ignored.hidden-subtitle.srt","begin":"(?x) ^\n([0-9]{2}:[0-9]{2}:[0-9]{2}[,.][0-9]{3}) \\x20(--\u003e)\\x20 (\\1)\n((?:\\s*[XY][0-9]+:[-+]?[0-9]+(?:\\.[0-9]+)?)++)?\n[ \\t]* $ ","end":"(?=^[ \\t]*$)","beginCaptures":{"1":{"name":"constant.numeric.time.timecode.start.srt","patterns":[{"include":"#timecode"}]},"2":{"patterns":[{"include":"#arrow"}]},"3":{"name":"constant.numeric.time.timecode.end.srt","patterns":[{"include":"#timecode"}]},"4":{"patterns":[{"include":"#linePosition"}]}}},{"name":"meta.timespan.srt","match":"(?x) ^\n([0-9]{2}:[0-9]{2}:[0-9]{2}[,.][0-9]{3}) \\x20(--\u003e)\\x20\n([0-9]{2}:[0-9]{2}:[0-9]{2}[,.][0-9]{3})\n((?:\\s*[XY][0-9]+:[-+]?[0-9]+(?:\\.[0-9]+)?)++)?\n[ \\t]* $ ","captures":{"1":{"name":"constant.numeric.time.timecode.start.srt","patterns":[{"include":"#timecode"}]},"2":{"patterns":[{"include":"#arrow"}]},"3":{"name":"constant.numeric.time.timecode.end.srt","patterns":[{"include":"#timecode"}]},"4":{"patterns":[{"include":"#linePosition"}]}}},{"include":"#text"}]},{"include":"#text"}],"beginCaptures":{"1":{"name":"entity.name.section.srt"}}},"text":{"patterns":[{"include":"#speaker"},{"include":"#dash"},{"include":"#action"},{"include":"#lyrics"},{"include":"#formatting"},{"include":"#escapes"}]},"timecode":{"patterns":[{"name":"invalid.illegal.syntax.decimal-separator.srt","match":"\\."},{"name":"invalid.illegal.value.out-of-range.vtt","match":"(?\u003c=:)([6-9][0-9])"}]},"underline":{"contentName":"markup.underline.srt","begin":"(\u003c)([Uu])(?=$|\u003e|\\s)([^\u003e]*)(\u003e)","end":"(\u003c/)([Uu])[ \\t]*(\u003e)|(?=^[ \\t]*$)","patterns":[{"include":"#text"}],"beginCaptures":{"0":{"name":"meta.tag.inline.u.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.u.html.srt"},"3":{"patterns":[{"include":"text.html.basic#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html.srt"}},"endCaptures":{"0":{"name":"meta.tag.inline.u.html.srt"},"1":{"name":"punctuation.definition.tag.begin.html.srt"},"2":{"name":"entity.name.tag.inline.u.html"},"3":{"name":"punctuation.definition.tag.end.html.srt"}}},"unknownTag":{"name":"meta.tag.override.unsupported.srt","match":"({)(?:.:[^}]*|\\\\[^}]*)(})","captures":{"0":{"name":"invalid.unimplemented.syntax.tag.srt"},"1":{"name":"punctuation.definition.tag.begin.srt"},"2":{"name":"punctuation.definition.tag.end.srt"}}}}}
@@ -1 +1 @@
1
- {"scopeName":"text.valve-cfg","patterns":[{"include":"#comments"},{"include":"#function"},{"include":"#cvar"},{"include":"#value"}],"repository":{"comments":{"patterns":[{"name":"comment.valve-cfg","match":"\\/\\/.*"},{"name":"comment.block.valve-cfg","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"comment.valve-cfg"}}}]},"cvar":{"patterns":[{"match":"^\\s*(\"[A-Za-z0-9_-]*\")","captures":{"1":{"name":"support.type.property-name.valve-cfg"}}},{"match":"^\\s*('[A-Za-z0-9_-]*')","captures":{"1":{"name":"support.type.property-name.valve-cfg"}}},{"match":"^\\s*([A-Za-z0-9_-]*)","captures":{"1":{"name":"support.type.property-name.valve-cfg"}}}]},"function":{"patterns":[{"name":"support.function.valve-cfg","match":"^\\s*\\b(alias|bind_osx|bind|clear|echo|execifexists|execwithwhitelist|exec|host_writeconfig_ss|host_writeconfig|key_updatelayout|playvol|say_team|say|unbindalljoystick|unbindallmousekeyboard|unbindall)","captures":{"1":{"name":"support.function.valve-cfg"}}}]},"numeric-literal":{"patterns":[{"name":"constant.numeric.float.valve-cfg","match":"[0-9]+\\.[0-9]+"},{"name":"constant.numeric.valve-cfg","match":"\\b0b[0-1]+\\b"},{"name":"constant.numeric.valve-cfg","match":"\\b0o[0-7]+\\b"},{"name":"constant.numeric.valve-cfg","match":"\\b0x[0-9a-fA-F]+\\b"},{"name":"constant.numeric.integer.valve-cfg","match":"\\b\\d+\\b"},{"name":"invalid.illegal.constant.valve-cfg","match":"\\b\\d+\\w+\\b"}]},"strings":{"name":"string.quoted.double.valve-cfg","begin":"\"","end":"\"","patterns":[{"name":"variable","match":"\\\\."}]},"value":{"begin":".","end":"\\n","patterns":[{"include":"#numeric-literal"},{"include":"#strings"}]}}}
1
+ {"scopeName":"text.valve-cfg","patterns":[{"include":"#comments"},{"include":"#function"},{"include":"#cvar"},{"include":"#value"}],"repository":{"comments":{"patterns":[{"name":"comment.valve-cfg","match":"\\/\\/.*"},{"name":"comment.block.valve-cfg","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"comment.valve-cfg"}}}]},"cvar":{"patterns":[{"match":"^\\s*(\"[A-Za-z0-9_-]*\")","captures":{"1":{"name":"support.type.property-name.valve-cfg"}}},{"match":"^\\s*('[A-Za-z0-9_-]*')","captures":{"1":{"name":"support.type.property-name.valve-cfg"}}},{"match":"^\\s*([A-Za-z0-9_-]*)","captures":{"1":{"name":"support.type.property-name.valve-cfg"}}}]},"function":{"patterns":[{"name":"support.function.valve-cfg","match":"^\\s*\\b(alias|bind_osx|bind|clear|echo|execifexists|execwithwhitelist|exec|host_writeconfig_ss|host_writeconfig|key_updatelayout|playvol|say_team|say|unbindalljoystick|unbindallmousekeyboard|unbindall)","captures":{"1":{"name":"support.function.valve-cfg"}}}]},"numeric-literal":{"patterns":[{"name":"constant.numeric.float.sourcepawn","match":"[0-9]+\\.[0-9]+"},{"name":"constant.numeric.sourcepawn","match":"\\b0b[0-1]+\\b"},{"name":"constant.numeric.sourcepawn","match":"\\b0o[0-7]+\\b"},{"name":"constant.numeric.sourcepawn","match":"\\b0x[0-9a-fA-F]+\\b"},{"name":"constant.numeric.integer.sourcepawn","match":"\\b\\d+\\b"},{"name":"invalid.illegal.constant.sourcepawn","match":"\\b\\d+\\w+\\b"}]},"strings":{"name":"string.quoted.double.valve-cfg","begin":"\"","end":"\"","patterns":[{"name":"variable","match":"\\\\."}]},"value":{"begin":".","end":"\\n","patterns":[{"include":"#numeric-literal"},{"include":"#strings"}]}}}
@@ -1 +1 @@
1
- {"name":"SVG","scopeName":"text.xml.svg","patterns":[{"include":"#main"}],"repository":{"attr":{"name":"meta.attribute.${0:/downcase}.xml.svg","begin":"[A-Za-z_:][-\\w.:]*","end":"(?=\\s*(?:/?\u003e|[^\\s=]))|(?\u003c=[\"'])","patterns":[{"include":"#attrValueCSS"},{"include":"#attrValuePlain"}],"beginCaptures":{"0":{"patterns":[{"include":"#attrName"}]}}},"attrName":{"patterns":[{"match":"(?:^|\\G)([-\\w.]+)(:)(?=[-\\w.:])","captures":{"1":{"name":"entity.other.attribute-name.namespace.xml.svg"},"2":{"name":"punctuation.separator.namespace.xml.svg"}}},{"name":"entity.other.attribute-name.localname.xml.svg","match":"[A-Za-z_:][-\\w.:]*"}]},"attrValueCSS":{"begin":"(?i)(?\u003c=style)\\G\\s*(=)","end":"(?=\\s*(?:[%?/]?\u003e))|(?\u003c=[\"'])([^\\s\u003e]*)|(?:\\G|^)\\s*([^\\s\"'\u003e]+)","patterns":[{"match":"(?:\\G|^)\\s+(?!/?\u003e)"},{"name":"string.quoted.double.xml.svg","begin":"\"","end":"\"","patterns":[{"name":"source.css.style.xml.svg","match":"[^\"]+","captures":{"0":{"patterns":[{"include":"#entity"},{"include":"source.css#rule-list-innards"}]}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},{"name":"string.quoted.single.xml.svg","begin":"'","end":"'","patterns":[{"name":"source.css.style.xml.svg","match":"[^']+","captures":{"0":{"patterns":[{"include":"#entity"},{"include":"source.css#rule-list-innards"}]}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.xml.svg"}},"endCaptures":{"1":{"name":"invalid.illegal.syntax.xml.svg"},"2":{"name":"string.unquoted.xml.svg","patterns":[{"include":"source.css#rule-list-innards"}]}}},"attrValuePlain":{"begin":"\\s*(=)","end":"(?=\\s*(?:[%?/]?\u003e))|(?\u003c=[\"'])([^\\s\u003e]*)|(?:\\G|^)\\s*([^\\s\"'\u003e]+)","patterns":[{"match":"(?:\\G|^)\\s+(?!/?\u003e)"},{"name":"string.quoted.double.xml.svg","begin":"\"","end":"\"","patterns":[{"include":"#entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},{"name":"string.quoted.single.xml.svg","begin":"'","end":"'","patterns":[{"include":"#entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.xml.svg"}},"endCaptures":{"1":{"name":"invalid.illegal.syntax.xml.svg"},"2":{"name":"string.unquoted.xml.svg"}}},"cdata":{"name":"string.unquoted.cdata.xml.svg","begin":"\u003c!\\[CDATA\\[","end":"\\]\\]\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},"commands":{"patterns":[{"name":"keyword.operator.drawing-command.xml.svg","match":"(?i)[MLHVCSQTAZ]"},{"name":"constant.numeric.number.xml.svg","match":"-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)"},{"name":"punctuation.separator.coordinates.comma.xml.svg","match":","}]},"comment":{"name":"comment.block.xml.svg","begin":"\u003c!--","end":"--\u003e","patterns":[{"name":"invalid.illegal.bad-comment.xml.svg","match":"--(?!\u003e)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.xml.svg"}}},"doctype":{"name":"meta.tag.sgml.doctype.xml.svg","begin":"(\u003c!)(DOCTYPE)\\s+([:a-zA-Z_][-:\\w.]*)","end":"\\s*(\u003e)","patterns":[{"include":"text.xml#internalSubset"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.xml.svg"},"2":{"name":"keyword.other.doctype.xml.svg"},"3":{"name":"variable.language.documentroot.xml.svg"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.xml.svg"}}},"entity":{"patterns":[{"include":"text.xml#entity"},{"include":"text.xml#bare-ampersand"}]},"main":{"patterns":[{"include":"#comment"},{"include":"#cdata"},{"include":"#doctype"},{"include":"text.xml#EntityDecl"},{"include":"text.xml#parameterEntity"},{"include":"#entity"},{"include":"#preprocessor"},{"include":"#scriptTag"},{"include":"#styleTag"},{"include":"#tag"},{"include":"#unescapedBracket"},{"include":"#unmatchedTag"}]},"preprocessor":{"name":"meta.tag.preprocessor.xml.svg","begin":"(\u003c\\?)\\s*","end":"\\?\u003e","patterns":[{"begin":"\\G","end":"([-\\w]+)|(?=\\s*\\?\u003e)","endCaptures":{"1":{"name":"entity.name.tag.xml.svg"}}},{"include":"#attr"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.xml.svg"}}},"scriptTag":{"patterns":[{"include":"#scriptTagPlain"},{"include":"#scriptTagJS"}]},"scriptTagJS":{"name":"meta.tag.script.xml.svg","begin":"(?i)(\u003c)(script)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(script)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"contentName":"source.js.embedded.xml.svg","begin":"(?\u003c=\u003e)","end":"(?i)(?=\\s*\u003c/script\\s*\u003e)","patterns":[{"include":"source.js"},{"include":"#entity"}]}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"scriptTagPlain":{"name":"meta.tag.script.xml.svg","begin":"(?x)\n(\u003c)((?i)script)\n(\n\t\\s+[^\u003e]*?\n\t(?\u003c=\\s)(?i:type)\\s*=\\s*\n\t([\"'])?\n\t(?! module\n\t| application/(?:x-)?(?:ecma|java)script\n\t| text/\n\t\t(?: javascript(?:1.[0-5])?\n\t\t| (?:j|ecma|live)script\n\t\t| x-(?:ecma|java)script\n\t\t)\n\t)\n\t(?: (?\u003c=\")(?:[^\"\u003e]+)\"\n\t| (?\u003c=')(?:[^'\u003e]+)'\n\t| [^\\s\"'\u003e]+\n\t)\n\t(?=\\s|/?\u003e)\n)","end":"(?i)(\u003c/)(script)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"include":"#main"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"patterns":[{"include":"#attr"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"styleTag":{"name":"meta.tag.style.xml.svg","begin":"(?i)(\u003c)(style)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(style)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"contentName":"source.css.embedded.xml.svg","begin":"(?\u003c=\u003e)","end":"(?i)(?=\\s*\u003c/style\\s*\u003e)","patterns":[{"include":"source.css"},{"include":"#entity"}]}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"tag":{"name":"meta.tag.${2:/downcase}.xml.svg","begin":"(?i)(\u003c)([A-Za-z_:][-\\w.:]*)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(\\2)(?:\\s*(\u003e)|(?=\\s*$))|(/\u003e)","patterns":[{"include":"#tagAttr"},{"include":"#main"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"tagAttr":{"begin":"\\G(?!\\s*/\u003e)","end":"\u003e|(?=\\s*/\u003e)","patterns":[{"include":"#attr"}],"endCaptures":{"0":{"name":"punctuation.definition.tag.opening.end.xml.svg"}}},"tagName":{"patterns":[{"match":"(?:^|\\G)([A-Za-z_][-\\w.]*)(:)(?=[-\\w.:])","captures":{"1":{"name":"entity.name.tag.namespace.xml.svg"},"2":{"name":"punctuation.separator.namespace.xml.svg"}}},{"name":"entity.name.tag.localname.xml.svg","match":"[A-Za-z_:][-\\w.:]*"}]},"unescapedBracket":{"name":"punctuation.definition.tag.closing.end.xml.svg","match":"^\\s*(\u003e)"},"unmatchedTag":{"name":"invalid.illegal.unmatched-tag.xml.svg","match":"(\u003c/)([A-Za-z_:][-\\w.:]*)\\s*(\u003e)"}},"injections":{"R:meta.attribute.d.xml.svg string":{"patterns":[{"include":"#commands"}]}}}
1
+ {"name":"SVG","scopeName":"text.xml.svg","patterns":[{"include":"#main"}],"repository":{"attr":{"name":"meta.attribute.${0:/downcase}.xml.svg","begin":"[A-Za-z_:][-\\w.:]*","end":"(?=\\s*(?:/?\u003e|[^\\s=]))|(?\u003c=[\"'])","patterns":[{"include":"#attrValueCSS"},{"include":"#attrValuePlain"}],"beginCaptures":{"0":{"patterns":[{"include":"#attrName"}]}}},"attrName":{"patterns":[{"match":"(?:^|\\G)([-\\w.]+)(:)(?=[-\\w.:])","captures":{"1":{"name":"entity.other.attribute-name.namespace.xml.svg"},"2":{"name":"punctuation.separator.namespace.xml.svg"}}},{"name":"entity.other.attribute-name.localname.xml.svg","match":"[A-Za-z_:][-\\w.:]*"}]},"attrValueCSS":{"begin":"(?i)(?\u003c=style)\\G\\s*(=)","end":"(?=\\s*(?:[%?/]?\u003e))|(?\u003c=[\"'])([^\\s\u003e]*)|(?:\\G|^)\\s*([^\\s\"'\u003e]+)","patterns":[{"match":"(?:\\G|^)\\s+(?!/?\u003e)"},{"name":"string.quoted.double.xml.svg","begin":"\"","end":"\"","patterns":[{"name":"source.css.style.xml.svg","match":"[^\"]+","captures":{"0":{"patterns":[{"include":"#entity"},{"include":"source.css#rule-list-innards"}]}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},{"name":"string.quoted.single.xml.svg","begin":"'","end":"'","patterns":[{"name":"source.css.style.xml.svg","match":"[^']+","captures":{"0":{"patterns":[{"include":"#entity"},{"include":"source.css#rule-list-innards"}]}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.xml.svg"}},"endCaptures":{"1":{"name":"invalid.illegal.syntax.xml.svg"},"2":{"name":"string.unquoted.xml.svg","patterns":[{"include":"source.css#rule-list-innards"}]}}},"attrValuePlain":{"begin":"\\s*(=)","end":"(?=\\s*(?:[%?/]?\u003e))|(?\u003c=[\"'])([^\\s\u003e]*)|(?:\\G|^)\\s*([^\\s\"'\u003e]+)","patterns":[{"match":"(?:\\G|^)\\s+(?!/?\u003e)"},{"name":"string.quoted.double.xml.svg","begin":"\"","end":"\"","patterns":[{"include":"#entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},{"name":"string.quoted.single.xml.svg","begin":"'","end":"'","patterns":[{"include":"#entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.xml.svg"}},"endCaptures":{"1":{"name":"invalid.illegal.syntax.xml.svg"},"2":{"name":"string.unquoted.xml.svg"}}},"cdata":{"name":"string.unquoted.cdata.xml.svg","begin":"\u003c!\\[CDATA\\[","end":"\\]\\]\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},"commands":{"patterns":[{"name":"keyword.operator.drawing-command.xml.svg","match":"(?i)[MLHVCSQTAZ]"},{"name":"constant.numeric.number.xml.svg","match":"-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[Ee][-+]?\\d+)?"},{"name":"punctuation.separator.coordinates.comma.xml.svg","match":","}]},"comment":{"name":"comment.block.xml.svg","begin":"\u003c!--","end":"--\u003e","patterns":[{"name":"invalid.illegal.bad-comment.xml.svg","match":"--(?!\u003e)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.xml.svg"}}},"doctype":{"name":"meta.tag.sgml.doctype.xml.svg","begin":"(\u003c!)(DOCTYPE)\\s+([:a-zA-Z_][-:\\w.]*)","end":"\\s*(\u003e)","patterns":[{"include":"text.xml#internalSubset"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.xml.svg"},"2":{"name":"keyword.other.doctype.xml.svg"},"3":{"name":"variable.language.documentroot.xml.svg"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.xml.svg"}}},"entity":{"patterns":[{"include":"text.xml#entity"},{"include":"text.xml#bare-ampersand"}]},"main":{"patterns":[{"include":"#comment"},{"include":"#cdata"},{"include":"#doctype"},{"include":"text.xml#EntityDecl"},{"include":"text.xml#parameterEntity"},{"include":"#entity"},{"include":"#preprocessor"},{"include":"#scriptTag"},{"include":"#styleTag"},{"include":"#tag"},{"include":"#unescapedBracket"},{"include":"#unmatchedTag"}]},"preprocessor":{"name":"meta.tag.preprocessor.xml.svg","begin":"(\u003c\\?)\\s*","end":"\\?\u003e","patterns":[{"begin":"\\G","end":"([-\\w]+)|(?=\\s*\\?\u003e)","endCaptures":{"1":{"name":"entity.name.tag.xml.svg"}}},{"include":"#attr"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.xml.svg"}}},"scriptTag":{"patterns":[{"include":"#scriptTagPlain"},{"include":"#scriptTagJS"}]},"scriptTagJS":{"name":"meta.tag.script.xml.svg","begin":"(?i)(\u003c)(script)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(script)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"contentName":"source.js.embedded.xml.svg","begin":"(?\u003c=\u003e)","end":"(?i)(?=\\s*\u003c/script\\s*\u003e)","patterns":[{"include":"source.js"},{"include":"#entity"}]}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"scriptTagPlain":{"name":"meta.tag.script.xml.svg","begin":"(?x)\n(\u003c)((?i)script)\n(\n\t\\s+[^\u003e]*?\n\t(?\u003c=\\s)(?i:type)\\s*=\\s*\n\t([\"'])?\n\t(?! module\n\t| application/(?:x-)?(?:ecma|java)script\n\t| text/\n\t\t(?: javascript(?:1.[0-5])?\n\t\t| (?:j|ecma|live)script\n\t\t| x-(?:ecma|java)script\n\t\t)\n\t)\n\t(?: (?\u003c=\")(?:[^\"\u003e]+)\"\n\t| (?\u003c=')(?:[^'\u003e]+)'\n\t| [^\\s\"'\u003e]+\n\t)\n\t(?=\\s|/?\u003e)\n)","end":"(?i)(\u003c/)(script)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"include":"#main"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"patterns":[{"include":"#attr"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"styleTag":{"name":"meta.tag.style.xml.svg","begin":"(?i)(\u003c)(style)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(style)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"contentName":"source.css.embedded.xml.svg","begin":"(?\u003c=\u003e)","end":"(?i)(?=\\s*\u003c/style\\s*\u003e)","patterns":[{"include":"source.css"},{"include":"#entity"}]}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"tag":{"name":"meta.tag.${2:/downcase}.xml.svg","begin":"(?i)(\u003c)([A-Za-z_:][-\\w.:]*)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(\\2)(?:\\s*(\u003e)|(?=\\s*$))|(/\u003e)","patterns":[{"include":"#tagAttr"},{"include":"#main"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"tagAttr":{"begin":"\\G(?!\\s*/\u003e)","end":"\u003e|(?=\\s*/\u003e)","patterns":[{"include":"#attr"}],"endCaptures":{"0":{"name":"punctuation.definition.tag.opening.end.xml.svg"}}},"tagName":{"patterns":[{"match":"(?:^|\\G)([A-Za-z_][-\\w.]*)(:)(?=[-\\w.:])","captures":{"1":{"name":"entity.name.tag.namespace.xml.svg"},"2":{"name":"punctuation.separator.namespace.xml.svg"}}},{"name":"entity.name.tag.localname.xml.svg","match":"[A-Za-z_:][-\\w.:]*"}]},"unescapedBracket":{"name":"punctuation.definition.tag.closing.end.xml.svg","match":"^\\s*(\u003e)"},"unmatchedTag":{"name":"invalid.illegal.unmatched-tag.xml.svg","match":"(\u003c/)([A-Za-z_:][-\\w.:]*)\\s*(\u003e)"}},"injections":{"R:meta.attribute.d.xml.svg string":{"patterns":[{"include":"#commands"}]}}}
@@ -0,0 +1 @@
1
+ {"scopeName":"v.mod","patterns":[{"include":"#module-decl"},{"include":"#brackets"},{"include":"#field"},{"include":"#string-placeholder"}],"repository":{"brackets":{"patterns":[{"begin":"{","end":"}","beginCaptures":{"0":{"name":"punctuation.definition.bracket.curly.begin.v.mod"}},"endCaptures":{"0":{"name":"punctuation.definition.bracket.curly.end.v.mod"}}}]},"field":{"name":"meta.definition.field.$1.v.mod","match":"\\b'([\\w]+)':\\s*'([\\w]*)'\\s*"},"module-decl":{"name":"keyword.module.v.mod","match":"(\\bModule)"},"string":{"name":"meta.definition.string.v.mod","begin":"'","end":"'","patterns":[{"include":"#string-placeholder"}],"beginCaptures":{"0":{"name":"storage.type.string.v.mod"}},"endCaptures":{"0":{"name":"storage.type.string.v.mod"}}},"string-placeholder":{"name":"constant.other.placeholder.v.mod","match":"%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]"}}}
data/grammars/version CHANGED
@@ -1 +1 @@
1
- 9.2.0
1
+ 9.4.0
@@ -1 +1 @@
1
- {"scopeName":"vue.directives","patterns":[{"include":"source.vue#vue-directives"}]}
1
+ {"scopeName":"vue.directives","patterns":[{"include":"text.html.vue#vue-directives"}]}
@@ -1 +1 @@
1
- {"scopeName":"vue.interpolations","patterns":[{"include":"source.vue#vue-interpolations"}]}
1
+ {"scopeName":"vue.interpolations","patterns":[{"include":"text.html.vue#vue-interpolations"}]}
@@ -0,0 +1 @@
1
+ {"scopeName":"vue.sfc.script.leading-operator-fix","patterns":[{"match":"^\\s*(\u003c)(?=\\s+[_$[:alpha:]])","captures":{"1":{"name":"keyword.operator.relational.js"}}}]}
data/lib/linguist/VERSION CHANGED
@@ -1 +1 @@
1
- 9.2.0
1
+ 9.4.0
@@ -75,6 +75,7 @@ module Linguist
75
75
  esy_lock? ||
76
76
  npm_shrinkwrap_or_package_lock? ||
77
77
  pnpm_lock? ||
78
+ bun_lock? ||
78
79
  terraform_lock? ||
79
80
  generated_yarn_plugnplay? ||
80
81
  godeps? ||
@@ -89,6 +90,8 @@ module Linguist
89
90
  generated_postscript? ||
90
91
  compiled_cython_file? ||
91
92
  pipenv_lock? ||
93
+ gradle_wrapper? ||
94
+ maven_wrapper? ||
92
95
  generated_go? ||
93
96
  generated_protocol_buffer_from_go? ||
94
97
  generated_protocol_buffer? ||
@@ -501,6 +504,13 @@ module Linguist
501
504
  !!name.match(/pnpm-lock\.yaml/)
502
505
  end
503
506
 
507
+ # Internal: Is the blob a generated bun lockfile?
508
+ #
509
+ # Returns true or false.
510
+ def bun_lock?
511
+ !!name.match(/(?:^|\/)bun\.lockb?$/)
512
+ end
513
+
504
514
  # Internal: Is the blob a generated Yarn Plug'n'Play?
505
515
  #
506
516
  # Returns true or false.
@@ -558,6 +568,20 @@ module Linguist
558
568
  !!name.match(/(^|\/)MODULE\.bazel\.lock$/)
559
569
  end
560
570
 
571
+ # Internal: Is the blob a generated gradle wrapper file?
572
+ #
573
+ # Returns true or false.
574
+ def gradle_wrapper?
575
+ !!name.match(/(?:^|\/)gradlew(?:\.bat)?$/i)
576
+ end
577
+
578
+ # Internal: Is the blob a generated maven wrapper file?
579
+ #
580
+ # Returns true or false.
581
+ def maven_wrapper?
582
+ !!name.match(/(?:^|\/)mvnw(?:\.cmd)?$/i)
583
+ end
584
+
561
585
  # Is the blob a VCR Cassette file?
562
586
  #
563
587
  # Returns true or false
@@ -722,19 +746,19 @@ module Linguist
722
746
 
723
747
  # Internal: Is this a generated Dart file?
724
748
  #
725
- # A dart-lang/appengine generated file contains:
749
+ # A google/protoc-plugin generated file contains:
726
750
  # // Generated code. Do not modify.
727
- # on the first line.
751
+ # on the second line.
728
752
  #
729
- # An owl generated file contains:
753
+ # A source_gen generated file may contain:
730
754
  # // GENERATED CODE - DO NOT MODIFY
731
- # on the first line.
755
+ # on the first, second, or third line.
732
756
  #
733
757
  # Return true or false
734
758
  def generated_dart?
735
759
  return false unless extname == '.dart'
736
760
  return false unless lines.count > 1
737
- return lines.first.downcase =~ /generated code\W{2,3}do not modify/
761
+ return lines.first(3).any? { |l| l.downcase.match(/generated code\W{2,3}do not modify/) }
738
762
  end
739
763
 
740
764
  # Internal: Is the file a generated Perl/Pollution/Portability header file?
@@ -14,11 +14,14 @@ extensions:
14
14
  - ".7"
15
15
  - ".8"
16
16
  - ".9"
17
+ - ".action"
18
+ - ".alg"
17
19
  - ".app"
18
20
  - ".cmp"
19
21
  - ".msg"
20
22
  - ".resource"
21
23
  - ".sol"
24
+ - ".srv"
22
25
  - ".stl"
23
26
  - ".tag"
24
27
  - ".url"
@@ -41,6 +41,7 @@ disambiguations:
41
41
  - named_pattern: man-heading
42
42
  - language: Roff
43
43
  pattern: '^\.(?:[A-Za-z]{2}(?:\s|$)|\\")'
44
+ - language: Text
44
45
  - extensions: ['.1in', '.1m', '.1x', '.3in', '.3m', '.3p', '.3pm', '.3qt', '.3x', '.man', '.mdoc']
45
46
  rules:
46
47
  - language: Roff Manpage
@@ -53,6 +54,13 @@ disambiguations:
53
54
  - named_pattern: man-title
54
55
  - named_pattern: man-heading
55
56
  - language: Roff
57
+ - extensions: ['.action']
58
+ rules:
59
+ - language: ROS Interface
60
+ and:
61
+ - pattern: '(?i)^[a-z]\w*(?:\/[a-z]\w*)?(?:<=\d+)?(?:\[(?:<=\d+)?\])?\s+\w+\b'
62
+ - pattern: '^---\s*$'
63
+ - negative_pattern: '^\s*[^\s@#\w-]'
56
64
  - extensions: ['.al']
57
65
  rules:
58
66
  # AL pattern source from https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage - keyword.other.applicationobject.al
@@ -61,6 +69,17 @@ disambiguations:
61
69
  - pattern: '\b(?i:(CODEUNIT|PAGE|PAGEEXTENSION|PAGECUSTOMIZATION|DOTNET|ENUM|ENUMEXTENSION|VALUE|QUERY|REPORT|TABLE|TABLEEXTENSION|XMLPORT|PROFILE|CONTROLADDIN|REPORTEXTENSION|INTERFACE|PERMISSIONSET|PERMISSIONSETEXTENSION|ENTITLEMENT))\b'
62
70
  # Open-ended fallback to Perl AutoLoader
63
71
  - language: Perl
72
+ - extensions: ['.alg']
73
+ rules:
74
+ - language: ALGOL
75
+ pattern:
76
+ # ALGOL 60 comments
77
+ - '(?i)^comment\b.*(;|comment)'
78
+ # ALGOL 68 comments
79
+ - '^#[^#\r\n]+#$'
80
+ # ALGOL 60/68 keywords
81
+ - '(?i)\b(integer|real|boolean|string)\b\s+\w+\s*:=\s*'
82
+ - '(?i)^begin[\s\S]*^end'
64
83
  - extensions: ['.app']
65
84
  rules:
66
85
  - language: Erlang
@@ -132,6 +151,8 @@ disambiguations:
132
151
  and:
133
152
  - pattern: '(?i)^[ \t]*return '
134
153
  - negative_pattern: '(?i)[ \t]*gosub '
154
+ - language: QuickBASIC
155
+ named_pattern: quickbasic
135
156
  - extensions: ['.bs']
136
157
  rules:
137
158
  - language: Bikeshed
@@ -182,6 +203,8 @@ disambiguations:
182
203
  pattern: '^\s*\\(?:NeedsTeXFormat|ProvidesClass)\{'
183
204
  - language: ObjectScript
184
205
  pattern: '^Class\s'
206
+ - language: OpenEdge ABL
207
+ pattern: '(?i)^\s*(?:end\s+(?:class|interface)\.|(?:class|interface)\s+[a-z_][a-z0-9_#$%&-]*:)'
185
208
  - extensions: ['.cmp']
186
209
  rules:
187
210
  - language: Gerber Image
@@ -418,6 +441,18 @@ disambiguations:
418
441
  - language: OASv3-json
419
442
  pattern: '"openapi":\s?"3.[0-9.]+"'
420
443
  - language: JSON
444
+ - extensions: ['.k']
445
+ rules:
446
+ - language: KCL
447
+ pattern:
448
+ - '^schema [A-Za-z0-9_-]+'
449
+ - '^\}$'
450
+ - '\s*\}\s*'
451
+ - language: KFramework
452
+ pattern:
453
+ - '^requires\s+"[^"]+"$'
454
+ - '^syntax\s+\w+\s+::=.*'
455
+ - '^endmodule$'
421
456
  - extensions: ['.l']
422
457
  rules:
423
458
  - language: Common Lisp
@@ -436,9 +471,15 @@ disambiguations:
436
471
  pattern: '^import [A-Z]'
437
472
  - extensions: ['.lp']
438
473
  rules:
474
+ - language: Lambdapi
475
+ pattern: '(?:^|\s)symbol(?:$|\s)|(?:^|\s)rule(?:$|\s)'
439
476
  - language: Linear Programming
440
- pattern: '^(?i:minimize|minimum|min|maximize|maximum|max)(?i:\s+multi-objectives)?$'
477
+ pattern: '(?i)^\s*(?:minimize|minimum|min|maximize|maximum|max)(?:\s+multi-objectives)?\s*$'
441
478
  - language: Answer Set Programming
479
+ pattern:
480
+ - '^\s*#(?:include|const|program|script|show|minimize|maximize|heuristic|project|edge|theory|defined)\b'
481
+ - '^\s*(?:[A-Za-z_]\w*(?:\([^)]*\))?\s*:-|:-)\s[^.]*\.'
482
+ - '^\s*[a-z_][a-zA-Z0-9_]*(?:\([^)]*\))?\s*\.\s*$'
442
483
  - extensions: ['.ls']
443
484
  rules:
444
485
  - language: LoomScript
@@ -460,7 +501,7 @@ disambiguations:
460
501
  pattern: '^: '
461
502
  - language: M
462
503
  pattern: '^\s*;'
463
- - language: Mathematica
504
+ - language: Wolfram Language
464
505
  and:
465
506
  - pattern: '\(\*'
466
507
  - pattern: '\*\)$'
@@ -517,6 +558,12 @@ disambiguations:
517
558
  pattern: '^\s*(alias|def|from|fn|import|struct|trait)\s'
518
559
  - language: XML
519
560
  pattern: '^\s*<\?xml'
561
+ - extensions: ['.mps']
562
+ rules:
563
+ - language: JetBrains MPS
564
+ pattern: '<persistence'
565
+ - language: Mathematical Programming System
566
+ pattern: '(?i)^\s*(ROWS|COLUMNS)\s*$'
520
567
  - extensions: ['.ms']
521
568
  rules:
522
569
  - language: Roff
@@ -530,6 +577,10 @@ disambiguations:
530
577
  rules:
531
578
  - language: OMNeT++ MSG
532
579
  pattern: '^cplusplus\(?[\S]*\)?[\s]*\{?\{?|^namespace[\s]+([^.\s]*\.)*[^.\s]*;|^struct[\s]+[\S]+|^message[\s]+[\S]+(extends )?[\S]*[\s]*|^packet[\s]+[\S]+|^class[\s]+[\S]+(extends )?[\S]*[\s]*|^enum[\s]+[\S]+|^import ([^.\s]*\.)*[^.\s]*;'
580
+ - language: ROS Interface
581
+ and:
582
+ - pattern: '(?i)^[a-z]\w*(?:\/[a-z]\w*)?(?:<=\d+)?(?:\[(?:<=\d+)?\])?\s+\w+\b'
583
+ - negative_pattern: '^\s*[^\s@#\w-]'
533
584
  - extensions: ['.n']
534
585
  rules:
535
586
  - language: Roff
@@ -542,8 +593,19 @@ disambiguations:
542
593
  pattern: '^\s*<\?xml\s+version'
543
594
  - language: Gerber Image
544
595
  pattern: '^[DGMT][0-9]{2}\*(?:\r?\n|\r)'
596
+ - language: Nickel
597
+ pattern:
598
+ - '^let(?:\srec)?(?:\s[a-zA-Z_][a-zA-Z0-9_]*)?'
599
+ - '^import\s"[^"]+"\s+as\s'
600
+ - 'std\.[a-zA-Z_][a-zA-Z0-9_]*\.'
545
601
  - language: Text
546
602
  pattern: 'THE_TITLE'
603
+ - language: NCL
604
+ pattern:
605
+ - '^load "'
606
+ - '^begin$'
607
+ - '[0-9]\.$'
608
+ - '^;'
547
609
  - extensions: ['.nl']
548
610
  rules:
549
611
  - language: NL
@@ -572,6 +634,9 @@ disambiguations:
572
634
  - '^s?plot\b'
573
635
  - '^set\s+(term|terminal|out|output|[xy]tics|[xy]label|[xy]range|style)\b'
574
636
  - language: OpenEdge ABL
637
+ pattern:
638
+ - '(?i)\bDEFINE\s+(?:VARIABLE|TEMP-TABLE|BUFFER|QUERY|INPUT\s+PARAMETER|OUTPUT\s+PARAMETER)\b'
639
+ - '(?i)\bEND(?:\s+(?:PROCEDURE|FUNCTION|DO|FOR\s+EACH))?\.'
575
640
  - extensions: ['.php']
576
641
  rules:
577
642
  - language: Hack
@@ -737,21 +802,23 @@ disambiguations:
737
802
  pattern: '^#+\s+(NAME|SYNOPSIS|DESCRIPTION)'
738
803
  - extensions: ['.scm']
739
804
  rules:
740
- - language: Scheme
741
- pattern:
742
- - '(?:''[\(\*#]|\w->\w|\.\.\.[\s\)]|\([+\-:<>\/=~\)]|~>|[#`]\(|#:\w)'
743
- - '^\s*\((?:define\*?|import|library|lambda)'
744
- negative_pattern:
745
- - '\(#[\w-]+[!\?]'
746
- - '[\)\]"_]\s*(?:[\*\+\?]|@\w)'
747
805
  - language: Tree-sitter Query
748
806
  pattern:
749
807
  - '\(#[\w-]+[!\?]'
750
- - '[\)\]"_]\s*(?:[\*\+\?]|@\w)'
808
+ - '(?:[\)\]]\s*[\*\+\?](?:\s|$))'
751
809
  - '(?:^\s*\w+:\s*[\(\[\"])'
752
810
  - '\(#(?:set!|(?:not-)?(?:any-of|match)\?)'
811
+ - '@[\w.-]+(?:\)\s|$)'
753
812
  negative_pattern:
754
813
  - '\([+\-:<>\/=~\)]'
814
+ - language: Scheme
815
+ pattern:
816
+ - '(?:''[\(\*#]|\w->\w|\.\.\.[\s\)]|\([+\-:<>\/=~\)]|~>|[#`]\(|#:\w)'
817
+ - '^\s*\((?:define\*?|import|library|lambda)'
818
+ negative_pattern:
819
+ - '\(#[\w-]+[!\?]'
820
+ - '(?:[\)\]]\s*[\*\+\?](?:\s|$))'
821
+ - '@[\w.-]+(?:\)\s|$)'
755
822
  - extensions: ['.sol']
756
823
  rules:
757
824
  - language: Solidity
@@ -777,6 +844,13 @@ disambiguations:
777
844
  rules:
778
845
  - language: SubRip Text
779
846
  pattern: '^(\d{2}:\d{2}:\d{2},\d{3})\s*(-->)\s*(\d{2}:\d{2}:\d{2},\d{3})$'
847
+ - extensions: ['.srv']
848
+ rules:
849
+ - language: ROS Interface
850
+ and:
851
+ - pattern: '(?i)^[a-z]\w*(?:\/[a-z]\w*)?(?:<=\d+)?(?:\[(?:<=\d+)?\])?\s+\w+\b'
852
+ - pattern: '^---\s*$'
853
+ - negative_pattern: '^\s*[^\s@#\w-]'
780
854
  - extensions: ['.st']
781
855
  rules:
782
856
  - language: StringTemplate
@@ -822,6 +896,13 @@ disambiguations:
822
896
  rules:
823
897
  - language: Java Server Pages
824
898
  pattern: '<%[@!=\s]?\s*(taglib|tag|include|attribute|variable)\s'
899
+ - extensions: ['.tl']
900
+ rules:
901
+ - language: Teal
902
+ and:
903
+ - pattern: '--.*'
904
+ - pattern: '\b(local|function|end|record|interface|enum)\b'
905
+ - language: Type Language
825
906
  - extensions: ['.tlv']
826
907
  rules:
827
908
  - language: TL-Verilog
@@ -832,6 +913,12 @@ disambiguations:
832
913
  pattern: '^## |@no-lib-strip@'
833
914
  - language: TeX
834
915
  pattern: '^\\(contentsline|defcounter|beamer|boolfalse)'
916
+ - extensions: ['.tpl']
917
+ rules:
918
+ - language: Go Template
919
+ pattern: '\{\{-?\s*(\`?\"\\?\"?|\/\*\s|\w*)\b'
920
+ - language: Smarty
921
+ pattern: '(?<!\{)\{(\*\s|\$|\/)?\w*\b'
835
922
  - extensions: ['.ts']
836
923
  rules:
837
924
  - language: XML
@@ -924,7 +1011,7 @@ disambiguations:
924
1011
  - language: Rocq Prover
925
1012
  pattern: '(?:^|\s)(?:Proof|Qed)\.(?:$|\s)|(?:^|\s)Require[ \t]+(Import|Export)\s'
926
1013
  - language: Verilog
927
- pattern: '^[ \t]*module\s+[^\s()]+\s+\#?\(|^[ \t]*`(?:define|ifdef|ifndef|include|timescale)|^[ \t]*always[ \t]+@|^[ \t]*initial[ \t]+(begin|@)'
1014
+ pattern: '^[ \t]*module\s+[^\s()]+\s*\#?\(|^[ \t]*`(?:define|ifdef|ifndef|include|timescale|pragma)|^[ \t]*always[ \t]*@|^[ \t]*initial[ \t]*(begin|@)'
928
1015
  - language: V
929
1016
  pattern: '\$(?:if|else)[ \t]|^[ \t]*fn\s+[^\s()]+\(.*?\).*?\{|^[ \t]*for\s*\{'
930
1017
  - extensions: ['.vba']
@@ -0,0 +1,19 @@
1
+ module Linguist
2
+ class BasicInstrumenter
3
+ attr_reader :detected_info
4
+
5
+ def initialize
6
+ @detected_info = {}
7
+ end
8
+
9
+ def instrument(name, payload = {})
10
+ if name == "linguist.detected" && payload[:blob]
11
+ @detected_info[payload[:blob].name] = {
12
+ strategy: payload[:strategy].name.split("::").last,
13
+ language: payload[:language]&.name
14
+ }
15
+ end
16
+ yield if block_given?
17
+ end
18
+ end
19
+ end