github-linguist 7.28.0 → 7.30.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-linguist +7 -3
  3. data/bin/github-linguist +6 -3
  4. data/grammars/etc.json +1 -1
  5. data/grammars/inline.graphql.json +1 -1
  6. data/grammars/inline.graphql.markdown.codeblock.json +1 -0
  7. data/grammars/inline.hbs.json +1 -1
  8. data/grammars/markdown.commonlisp.codeblock.json +1 -0
  9. data/grammars/markdown.gleam.codeblock.json +1 -0
  10. data/grammars/markdown.glimmer.codeblock.json +1 -0
  11. data/grammars/markdown.move.codeblock.json +1 -1
  12. data/grammars/markdown.rego.codeblock.json +1 -0
  13. data/grammars/source.8xp.json +1 -0
  14. data/grammars/source.Caddyfile-test.json +1 -0
  15. data/grammars/source.Caddyfile.json +1 -0
  16. data/grammars/source.abl.json +1 -1
  17. data/grammars/source.amxxpawn.json +1 -0
  18. data/grammars/source.astro.json +1 -1
  19. data/grammars/source.bb.json +1 -0
  20. data/grammars/source.bh.json +1 -0
  21. data/grammars/source.bicep.json +1 -1
  22. data/grammars/source.bms.json +1 -1
  23. data/grammars/source.bqn.json +1 -0
  24. data/grammars/source.brs.json +1 -1
  25. data/grammars/source.clarion.json +1 -1
  26. data/grammars/source.cobol.json +1 -1
  27. data/grammars/source.commonlisp.json +1 -0
  28. data/grammars/source.cs.json +1 -1
  29. data/grammars/source.csound.json +1 -1
  30. data/grammars/source.d2.json +1 -1
  31. data/grammars/source.dart.json +1 -1
  32. data/grammars/source.did.json +1 -1
  33. data/grammars/source.elvish-transcript.json +1 -1
  34. data/grammars/source.firrtl.json +1 -0
  35. data/grammars/source.fsharp.json +1 -1
  36. data/grammars/source.gdscript.json +1 -1
  37. data/grammars/source.generic-db.json +1 -1
  38. data/grammars/source.gjs.json +1 -1
  39. data/grammars/source.gleam.json +1 -1
  40. data/grammars/source.gts.json +1 -1
  41. data/grammars/source.hcl.json +1 -1
  42. data/grammars/source.hcl.terraform.json +1 -1
  43. data/grammars/source.hx.json +1 -1
  44. data/grammars/source.ice.json +1 -1
  45. data/grammars/source.julia.json +1 -1
  46. data/grammars/source.kotlin.json +1 -1
  47. data/grammars/source.lean4.json +1 -1
  48. data/grammars/source.lua.json +1 -1
  49. data/grammars/source.luau.json +1 -0
  50. data/grammars/source.m2.json +1 -1
  51. data/grammars/source.markdown.caddy.codeblock.json +1 -0
  52. data/grammars/source.matlab.json +1 -1
  53. data/grammars/source.mdx.json +1 -1
  54. data/grammars/source.mojo.json +1 -0
  55. data/grammars/source.move.json +1 -1
  56. data/grammars/source.nasal.json +1 -1
  57. data/grammars/source.nim.json +1 -1
  58. data/grammars/source.nushell.json +1 -1
  59. data/grammars/source.odin.json +1 -1
  60. data/grammars/source.p4.json +1 -1
  61. data/grammars/source.pip-requirements.json +1 -0
  62. data/grammars/source.pkl.json +1 -0
  63. data/grammars/source.praat.json +1 -1
  64. data/grammars/source.rego.json +1 -1
  65. data/grammars/source.rescript.json +1 -1
  66. data/grammars/source.roc.json +1 -0
  67. data/grammars/source.ron.json +1 -0
  68. data/grammars/source.rust.json +1 -1
  69. data/grammars/source.scala.json +1 -1
  70. data/grammars/source.slice.json +1 -1
  71. data/grammars/source.slint.json +1 -0
  72. data/grammars/source.solidity.json +1 -1
  73. data/grammars/source.sourcepawn.json +1 -1
  74. data/grammars/source.sqf.json +1 -1
  75. data/grammars/source.swift.json +1 -1
  76. data/grammars/source.templ.json +1 -0
  77. data/grammars/source.toit.json +1 -1
  78. data/grammars/source.ts.json +1 -1
  79. data/grammars/source.tsx.json +1 -1
  80. data/grammars/source.vba.json +1 -1
  81. data/grammars/source.wsd.json +1 -1
  82. data/grammars/sp-jsdoc.injection.json +1 -0
  83. data/grammars/text.adblock.json +1 -1
  84. data/grammars/text.crontab.json +1 -0
  85. data/grammars/text.html.edge.json +1 -0
  86. data/grammars/text.html.ember-handlebars.json +1 -1
  87. data/grammars/text.html.statamic.json +1 -1
  88. data/grammars/text.md.json +1 -1
  89. data/grammars/text.srt.json +1 -1
  90. data/grammars/text.valve-cfg.json +1 -0
  91. data/grammars/text.valve-kv.json +1 -0
  92. data/grammars/version +1 -1
  93. data/lib/linguist/VERSION +1 -1
  94. data/lib/linguist/generated.rb +39 -1
  95. data/lib/linguist/heuristics.yml +26 -2
  96. data/lib/linguist/languages.json +1 -1
  97. data/lib/linguist/languages.yml +195 -9
  98. data/lib/linguist/repository.rb +8 -6
  99. data/lib/linguist/samples.json +1 -1
  100. metadata +31 -5
  101. data/grammars/markdown.graphql.codeblock.json +0 -1
  102. data/grammars/source.terraform.json +0 -1
@@ -1 +1 @@
1
- {"name":"Astro","scopeName":"source.astro","patterns":[{"include":"#scope"},{"include":"#frontmatter"}],"repository":{"attributes":{"patterns":[{"include":"#attributes-events"},{"include":"#attributes-keyvalue"},{"include":"#attributes-interpolated"}]},"attributes-events":{"name":"meta.attribute.$1.astro","begin":"(on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur)))(?![\\\\w:-])","end":"(?=\\s*+[^=\\s])","patterns":[{"begin":"=","end":"(?\u003c=[^\\s=])(?!\\s*=)|(?=/?\u003e)","patterns":[{"name":"meta.embedded.line.js","begin":"(?=[^\\s=\u003c\u003e`/]|/(?!\u003e))","end":"(?!\\G)","patterns":[{"name":"string.unquoted.astro","match":"(([^\\s\\\"'=\u003c\u003e`/]|/(?!\u003e))+)","captures":{"0":{"name":"source.js"},"1":{"patterns":[{"include":"source.js"}]}}},{"name":"string.quoted.astro","begin":"([\"])","end":"\\1","patterns":[{"match":"([^\\n\\\"/]|/(?![/*]))+","captures":{"0":{"patterns":[{"include":"source.js"}]}}},{"name":"comment.line.double-slash.js","begin":"//","end":"(?=\\\")|\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}}},{"name":"comment.block.js","begin":"/\\*","end":"(?=\\\")|\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.js"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.astro"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.astro"}}},{"name":"string.quoted.astro","begin":"(['])","end":"\\1","patterns":[{"match":"([^\\n\\'/]|/(?![/*]))+","captures":{"0":{"patterns":[{"include":"source.js"}]}}},{"name":"comment.line.double-slash.js","begin":"//","end":"(?=\\')|\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}}},{"name":"comment.block.js","begin":"/\\*","end":"(?=\\')|\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.js"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.astro"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.astro"}}}]}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.astro"}}}],"beginCaptures":{"0":{"patterns":[{"name":"entity.other.attribute-name.astro","match":".*"}]}}},"attributes-interpolated":{"contentName":"meta.embedded.expression.astro source.tsx","begin":"(?\u003c!:|=)\\s*({)","end":"(\\})","patterns":[{"include":"source.tsx"}]},"attributes-keyvalue":{"name":"meta.attribute.$1.astro","begin":"([_@$[:alpha:]][:._\\-$[:alnum:]]*)","end":"(?=\\s*+[^=\\s])","patterns":[{"begin":"=","end":"(?\u003c=[^\\s=])(?!\\s*=)|(?=/?\u003e)","patterns":[{"include":"#attributes-value"}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.astro"}}}],"beginCaptures":{"0":{"patterns":[{"name":"entity.other.attribute-name.astro","match":".*"}]}}},"attributes-value":{"patterns":[{"include":"#interpolation"},{"name":"string.unquoted.astro","match":"([^\\s\"'=\u003c\u003e`/]|/(?!\u003e))+"},{"name":"string.quoted.astro","begin":"(['\"])","end":"\\1","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.astro"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.astro"}}},{"name":"string.template.astro","begin":"(`)","end":"\\1","patterns":[{"include":"source.tsx#template-substitution-element"}]}]},"comments":{"name":"comment.block.astro","begin":"\u003c!--","end":"--\u003e","patterns":[{"name":"invalid.illegal.characters-not-allowed-here.astro","match":"\\G-?\u003e|\u003c!--(?!\u003e)|\u003c!-(?=--\u003e)|--!\u003e"}],"captures":{"0":{"name":"punctuation.definition.comment.astro"}}},"frontmatter":{"contentName":"source.ts","begin":"\\A(-{3})\\s*$","end":"(^|\\G)(-{3})|\\.{3}\\s*$","patterns":[{"include":"source.ts"}],"beginCaptures":{"1":{"name":"comment"}},"endCaptures":{"2":{"name":"comment"}}},"interpolation":{"patterns":[{"contentName":"meta.embedded.expression.astro source.tsx","begin":"\\{","end":"\\}","patterns":[{"begin":"\\G\\s*(?={)","end":"(?\u003c=})","patterns":[{"include":"source.tsx#object-literal"}]},{"include":"source.tsx"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.astro"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.astro"}}}]},"scope":{"patterns":[{"include":"#comments"},{"include":"#tags"},{"include":"#interpolation"},{"name":"text.astro","begin":"(?\u003c=\u003e|})","end":"(?=\u003c|{)"}]},"tags":{"patterns":[{"include":"#tags-raw"},{"include":"#tags-lang"},{"include":"#tags-void"},{"include":"#tags-general-end"},{"include":"#tags-general-start"}]},"tags-end-node":{"match":"(\u003c/)(.*?)\\s*(\u003e)|(/\u003e)","captures":{"1":{"name":"meta.tag.end.astro punctuation.definition.tag.begin.astro"},"2":{"name":"meta.tag.end.astro","patterns":[{"include":"#tags-name"}]},"3":{"name":"meta.tag.end.astro punctuation.definition.tag.end.astro"},"4":{"name":"meta.tag.start.astro punctuation.definition.tag.end.astro"}}},"tags-general-end":{"name":"meta.scope.tag.$2.astro","begin":"(\u003c/)([^/\\s\u003e]*)","end":"(\u003e)","beginCaptures":{"1":{"name":"meta.tag.end.astro punctuation.definition.tag.begin.astro"},"2":{"name":"meta.tag.end.astro","patterns":[{"include":"#tags-name"}]}},"endCaptures":{"1":{"name":"meta.tag.end.astro punctuation.definition.tag.end.astro"}}},"tags-general-start":{"name":"meta.scope.tag.$2.astro","begin":"(\u003c)([^/\\s\u003e/]*)","end":"(/?\u003e)","patterns":[{"include":"#tags-start-attributes"}],"beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"endCaptures":{"1":{"name":"meta.tag.start.astro punctuation.definition.tag.end.astro"}}},"tags-lang":{"name":"meta.scope.tag.$1.astro meta.$1.astro","begin":"\u003c(script|style)","end":"\u003c/\\1\\s*\u003e|/\u003e","patterns":[{"name":"meta.lang.json.astro","begin":"\\G(?=\\s*[^\u003e]*?(type|lang)\\s*=\\s*(['\"]|)(?:text\\/)?(application\\/ld\\+json)\\2)","end":"(?=\u003c/|/\u003e)","patterns":[{"include":"#tags-lang-start-attributes"}]},{"name":"meta.lang.javascript.astro","begin":"\\G(?=\\s*[^\u003e]*?(type|lang)\\s*=\\s*(['\"]|)(module)\\2)","end":"(?=\u003c/|/\u003e)","patterns":[{"include":"#tags-lang-start-attributes"}]},{"name":"meta.lang.$3.astro","begin":"\\G(?=\\s*[^\u003e]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/|application/)?([\\w\\/+]+)\\2)","end":"(?=\u003c/|/\u003e)","patterns":[{"include":"#tags-lang-start-attributes"}]},{"include":"#tags-lang-start-attributes"}],"beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"endCaptures":{"0":{"patterns":[{"include":"#tags-end-node"}]}}},"tags-lang-start-attributes":{"name":"meta.tag.start.astro","begin":"\\G","end":"(?=/\u003e)|\u003e","patterns":[{"include":"#attributes"}],"endCaptures":{"0":{"name":"punctuation.definition.tag.end.astro"}}},"tags-name":{"patterns":[{"name":"support.class.component.astro","match":"[A-Z][a-zA-Z0-9_]*"},{"name":"meta.tag.custom.astro entity.name.tag.astro","match":"[a-z][\\w0-9:]*-[\\w0-9:-]*"},{"name":"entity.name.tag.astro","match":"[a-z][\\w0-9:-]*"}]},"tags-raw":{"name":"meta.scope.tag.$1.astro meta.raw.astro","contentName":"source.unknown","begin":"\u003c([^/?!\\s\u003c\u003e]+)(?=[^\u003e]+is:raw).*?","end":"\u003c/\\1\\s*\u003e|/\u003e","patterns":[{"include":"#tags-lang-start-attributes"}],"beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"endCaptures":{"0":{"patterns":[{"include":"#tags-end-node"}]}}},"tags-start-attributes":{"name":"meta.tag.start.astro","begin":"\\G","end":"(?=/?\u003e)","patterns":[{"include":"#attributes"}]},"tags-start-node":{"name":"meta.tag.start.astro","match":"(\u003c)([^/\\s\u003e/]*)","captures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"patterns":[{"include":"#tags-name"}]}}},"tags-void":{"name":"meta.tag.void.astro","begin":"(\u003c)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?\u003e)","end":"/?\u003e","patterns":[{"include":"#attributes"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"name":"entity.name.tag.astro"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.begin.astro"}}}},"injections":{"L:(meta.script.astro) (meta.lang.js | meta.lang.javascript | meta.lang.partytown | meta.lang.node) - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.js","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.js"}]}]},"L:(meta.script.astro) (meta.lang.json) - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.json","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.json"}]}]},"L:(meta.script.astro) (meta.lang.ts | meta.lang.typescript) - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.ts","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.ts"}]}]},"L:meta.script.astro - meta.lang - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.js","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.js"}]}]},"L:meta.style.astro - meta.lang - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.css","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css"}]}]},"L:meta.style.astro meta.lang.css - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.css","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css"}]}]},"L:meta.style.astro meta.lang.less - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.css.less","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css.less"}]}]},"L:meta.style.astro meta.lang.postcss - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.css.postcss","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{}]}]},"L:meta.style.astro meta.lang.sass - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.sass","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.sass"}]}]},"L:meta.style.astro meta.lang.scss - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.css.scss","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css.scss"}]}]},"L:meta.style.astro meta.lang.stylus - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.stylus","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.stylus"}]}]}}}
1
+ {"name":"Astro","scopeName":"source.astro","patterns":[{"include":"#scope"},{"include":"#frontmatter"},{"include":"#text"}],"repository":{"attribute-literal":{"name":"string.template.astro","begin":"(`)","end":"\\1","patterns":[{"include":"source.tsx#template-substitution-element"},{"include":"source.tsx#string-character-escape"}]},"attributes":{"patterns":[{"include":"#attributes-events"},{"include":"#attributes-keyvalue"},{"include":"#attributes-interpolated"}]},"attributes-events":{"name":"meta.attribute.$1.astro","begin":"(on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur)))(?![\\\\w:-])","end":"(?=\\s*+[^=\\s])","patterns":[{"begin":"=","end":"(?\u003c=[^\\s=])(?!\\s*=)|(?=/?\u003e)","patterns":[{"include":"#interpolation"},{"include":"#attribute-literal"},{"name":"meta.embedded.line.js","begin":"(?=[^\\s=\u003c\u003e`/]|/(?!\u003e))","end":"(?!\\G)","patterns":[{"name":"string.unquoted.astro","match":"(([^\\s\\\"'=\u003c\u003e`/]|/(?!\u003e))+)","captures":{"0":{"name":"source.js"},"1":{"patterns":[{"include":"source.js"}]}}},{"name":"string.quoted.astro","begin":"([\"])","end":"\\1","patterns":[{"match":"([^\\n\\\"/]|/(?![/*]))+","captures":{"0":{"patterns":[{"include":"source.js"}]}}},{"name":"comment.line.double-slash.js","begin":"//","end":"(?=\\\")|\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}}},{"name":"comment.block.js","begin":"/\\*","end":"(?=\\\")|\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.js"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.astro"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.astro"}}},{"name":"string.quoted.astro","begin":"(['])","end":"\\1","patterns":[{"match":"([^\\n\\'/]|/(?![/*]))+","captures":{"0":{"patterns":[{"include":"source.js"}]}}},{"name":"comment.line.double-slash.js","begin":"//","end":"(?=\\')|\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}}},{"name":"comment.block.js","begin":"/\\*","end":"(?=\\')|\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.js"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.astro"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.astro"}}}]}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.astro"}}}],"beginCaptures":{"0":{"patterns":[{"name":"entity.other.attribute-name.astro","match":".*"}]}}},"attributes-interpolated":{"contentName":"meta.embedded.expression.astro source.tsx","begin":"(?\u003c!:|=)\\s*({)","end":"(\\})","patterns":[{"include":"source.tsx"}]},"attributes-keyvalue":{"name":"meta.attribute.$1.astro","begin":"([_@$[:alpha:]][:._\\-$[:alnum:]]*)","end":"(?=\\s*+[^=\\s])","patterns":[{"begin":"=","end":"(?\u003c=[^\\s=])(?!\\s*=)|(?=/?\u003e)","patterns":[{"include":"#attributes-value"}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.astro"}}}],"beginCaptures":{"0":{"patterns":[{"name":"entity.other.attribute-name.astro","match":".*"}]}}},"attributes-value":{"patterns":[{"include":"#interpolation"},{"name":"string.unquoted.astro","match":"([^\\s\"'=\u003c\u003e`/]|/(?!\u003e))+"},{"name":"string.quoted.astro","begin":"(['\"])","end":"\\1","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.astro"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.astro"}}},{"include":"#attribute-literal"}]},"comments":{"name":"comment.block.astro","begin":"\u003c!--","end":"--\u003e","patterns":[{"name":"invalid.illegal.characters-not-allowed-here.astro","match":"\\G-?\u003e|\u003c!--(?!\u003e)|\u003c!-(?=--\u003e)|--!\u003e"}],"captures":{"0":{"name":"punctuation.definition.comment.astro"}}},"entities":{"patterns":[{"name":"constant.character.entity.named.$2.astro","match":"(?x)\n\t\t\t\t\t\t(\u0026)\t(?=[a-zA-Z])\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))\n\t\t\t\t\t\t | (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))\n\t\t\t\t\t\t | (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))\n\t\t\t\t\t\t | (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))\n\t\t\t\t\t\t | (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))\n\t\t\t\t\t\t | (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))\n\t\t\t\t\t\t | (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))\n\t\t\t\t\t\t | (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))\n\t\t\t\t\t\t | (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))\n\t\t\t\t\t\t | (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))\n\t\t\t\t\t\t | (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))\n\t\t\t\t\t\t | (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))\n\t\t\t\t\t\t | (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))\n\t\t\t\t\t\t | (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))\n\t\t\t\t\t\t | (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))\n\t\t\t\t\t\t | (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))\n\t\t\t\t\t\t | (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))\n\t\t\t\t\t\t | (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))\n\t\t\t\t\t\t | (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))\n\t\t\t\t\t\t | (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))\n\t\t\t\t\t\t | (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))\n\t\t\t\t\t\t | (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))\n\t\t\t\t\t\t | (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))\n\t\t\t\t\t\t | (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))\n\t\t\t\t\t\t | (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))\n\t\t\t\t\t\t | (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(;)\n\t\t\t\t\t","captures":{"1":{"name":"punctuation.definition.entity.astro"},"912":{"name":"punctuation.definition.entity.astro"}}},{"name":"constant.character.entity.numeric.decimal.astro","match":"(\u0026)#[0-9]+(;)","captures":{"1":{"name":"punctuation.definition.entity.astro"},"3":{"name":"punctuation.definition.entity.astro"}}},{"name":"constant.character.entity.numeric.hexadecimal.astro","match":"(\u0026)#[xX][0-9a-fA-F]+(;)","captures":{"1":{"name":"punctuation.definition.entity.astro"},"3":{"name":"punctuation.definition.entity.astro"}}},{"name":"invalid.illegal.ambiguous-ampersand.astro","match":"\u0026(?=[a-zA-Z0-9]+;)"}]},"frontmatter":{"contentName":"source.ts","begin":"\\A(-{3})\\s*$","end":"(^|\\G)(-{3})|\\.{3}\\s*$","patterns":[{"include":"source.ts"}],"beginCaptures":{"1":{"name":"comment"}},"endCaptures":{"2":{"name":"comment"}}},"interpolation":{"patterns":[{"contentName":"meta.embedded.expression.astro source.tsx","begin":"\\{","end":"\\}","patterns":[{"begin":"\\G\\s*(?={)","end":"(?\u003c=})","patterns":[{"include":"source.tsx#object-literal"}]},{"include":"source.tsx"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.astro"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.astro"}}}]},"scope":{"patterns":[{"include":"#comments"},{"include":"#tags"},{"include":"#interpolation"},{"include":"#entities"}]},"tags":{"patterns":[{"include":"#tags-raw"},{"include":"#tags-lang"},{"include":"#tags-void"},{"include":"#tags-general-end"},{"include":"#tags-general-start"}]},"tags-end-node":{"match":"(\u003c/)(.*?)\\s*(\u003e)|(/\u003e)","captures":{"1":{"name":"meta.tag.end.astro punctuation.definition.tag.begin.astro"},"2":{"name":"meta.tag.end.astro","patterns":[{"include":"#tags-name"}]},"3":{"name":"meta.tag.end.astro punctuation.definition.tag.end.astro"},"4":{"name":"meta.tag.start.astro punctuation.definition.tag.end.astro"}}},"tags-general-end":{"name":"meta.scope.tag.$2.astro","begin":"(\u003c/)([^/\\s\u003e]*)","end":"(\u003e)","beginCaptures":{"1":{"name":"meta.tag.end.astro punctuation.definition.tag.begin.astro"},"2":{"name":"meta.tag.end.astro","patterns":[{"include":"#tags-name"}]}},"endCaptures":{"1":{"name":"meta.tag.end.astro punctuation.definition.tag.end.astro"}}},"tags-general-start":{"name":"meta.scope.tag.$2.astro","begin":"(\u003c)([^/\\s\u003e/]*)","end":"(/?\u003e)","patterns":[{"include":"#tags-start-attributes"}],"beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"endCaptures":{"1":{"name":"meta.tag.start.astro punctuation.definition.tag.end.astro"}}},"tags-lang":{"name":"meta.scope.tag.$1.astro meta.$1.astro","begin":"\u003c(script|style)","end":"\u003c/\\1\\s*\u003e|/\u003e","patterns":[{"name":"meta.lang.json.astro","begin":"\\G(?=\\s*[^\u003e]*?(type|lang)\\s*=\\s*(['\"]|)(?:text\\/)?(application\\/ld\\+json)\\2)","end":"(?=\u003c/|/\u003e)","patterns":[{"include":"#tags-lang-start-attributes"}]},{"name":"meta.lang.javascript.astro","begin":"\\G(?=\\s*[^\u003e]*?(type|lang)\\s*=\\s*(['\"]|)(module)\\2)","end":"(?=\u003c/|/\u003e)","patterns":[{"include":"#tags-lang-start-attributes"}]},{"name":"meta.lang.$3.astro","begin":"\\G(?=\\s*[^\u003e]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/|application/)?([\\w\\/+]+)\\2)","end":"(?=\u003c/|/\u003e)","patterns":[{"include":"#tags-lang-start-attributes"}]},{"include":"#tags-lang-start-attributes"}],"beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"endCaptures":{"0":{"patterns":[{"include":"#tags-end-node"}]}}},"tags-lang-start-attributes":{"name":"meta.tag.start.astro","begin":"\\G","end":"(?=/\u003e)|\u003e","patterns":[{"include":"#attributes"}],"endCaptures":{"0":{"name":"punctuation.definition.tag.end.astro"}}},"tags-name":{"patterns":[{"name":"support.class.component.astro","match":"[A-Z][a-zA-Z0-9_]*"},{"name":"meta.tag.custom.astro entity.name.tag.astro","match":"[a-z][\\w0-9:]*-[\\w0-9:-]*"},{"name":"entity.name.tag.astro","match":"[a-z][\\w0-9:-]*"}]},"tags-raw":{"name":"meta.scope.tag.$1.astro meta.raw.astro","contentName":"source.unknown","begin":"\u003c([^/?!\\s\u003c\u003e]+)(?=[^\u003e]+is:raw).*?","end":"\u003c/\\1\\s*\u003e|/\u003e","patterns":[{"include":"#tags-lang-start-attributes"}],"beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"endCaptures":{"0":{"patterns":[{"include":"#tags-end-node"}]}}},"tags-start-attributes":{"name":"meta.tag.start.astro","begin":"\\G","end":"(?=/?\u003e)","patterns":[{"include":"#attributes"}]},"tags-start-node":{"name":"meta.tag.start.astro","match":"(\u003c)([^/\\s\u003e/]*)","captures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"patterns":[{"include":"#tags-name"}]}}},"tags-void":{"name":"meta.tag.void.astro","begin":"(\u003c)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?\u003e)","end":"/?\u003e","patterns":[{"include":"#attributes"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"name":"entity.name.tag.astro"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.begin.astro"}}},"text":{"patterns":[{"name":"text.astro","begin":"(?\u003c=^|---|\u003e|})","end":"(?=\u003c|{|$)","patterns":[{"include":"#entities"}]}]}},"injections":{"L:(meta.script.astro) (meta.lang.js | meta.lang.javascript | meta.lang.partytown | meta.lang.node) - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.js","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.js"}]}]},"L:(meta.script.astro) (meta.lang.json) - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.json","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.json"}]}]},"L:(meta.script.astro) (meta.lang.ts | meta.lang.typescript) - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.ts","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.ts"}]}]},"L:meta.script.astro - meta.lang - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.js","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.js"}]}]},"L:meta.style.astro - meta.lang - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.css","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css"}]}]},"L:meta.style.astro meta.lang.css - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.css","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css"}]}]},"L:meta.style.astro meta.lang.less - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.css.less","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css.less"}]}]},"L:meta.style.astro meta.lang.postcss - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.css.postcss","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{}]}]},"L:meta.style.astro meta.lang.sass - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.sass","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.sass"}]}]},"L:meta.style.astro meta.lang.scss - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.css.scss","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css.scss"}]}]},"L:meta.style.astro meta.lang.stylus - (meta source)":{"patterns":[{"name":"meta.embedded.block.astro","contentName":"source.stylus","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.stylus"}]}]}}}
@@ -0,0 +1 @@
1
+ {"name":"BitBake","scopeName":"source.bb","patterns":[{"include":"#escaped-single-quote"},{"include":"#escaped-double-quote"},{"include":"#string"},{"include":"#numeric"},{"include":"#keywords"},{"include":"#comment"},{"include":"#inline-python"},{"include":"#variable-expansion"},{"include":"#functions"},{"include":"#bitbake-operator"},{"include":"#variable-name"},{"include":"#operator"}],"repository":{"bitbake-operator":{"name":"keyword.control.bb","match":"(?\u003c=:)(append|prepend|remove)"},"comment":{"match":"(\\s*)((#)(.*))\\n","captures":{"1":{"name":"punctuation.whitespace.comment.leading.bb"},"2":{"name":"comment.line.bb"},"3":{"name":"comment.line.number-sign.bb"},"4":{"name":"comment.line.text.bb"}}},"escaped-double-quote":{"name":"constant.character.escape.bb","match":"\\\\\""},"escaped-single-quote":{"name":"constant.character.escape.bb","match":"\\\\'"},"functions":{"match":"([a-zA-Z_][\\w_]*)(:([a-zA-Z_][\\w_]*))?(?=\\s*\\()","captures":{"1":{"name":"entity.name.function.python.bb"},"2":{"name":"keyword.operator.bb"},"3":{"name":"keyword.other.bitbake-operator.bb"}}},"inline-python":{"begin":"(\\$\\{(@))","end":"(\\})","patterns":[{"include":"#operator"},{"include":"#keywords"},{"name":"meta.embedded.brackets.begin.bb","match":"(\\[)"},{"name":"meta.embedded.brackets.end.bb","match":"(\\])"},{"include":"#numeric"},{"include":"#functions"},{"include":"#parenthesis-open"},{"include":"#parenthesis-close"},{"include":"#variable-name"},{"include":"#string"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"},"2":{"name":"entity.name.function.decorator.python.bb"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"}}},"keywords":{"patterns":[{"match":"(?\u003c![[:punct:]])\\b(include|require|inherit|inherit_defer|addtask|deltask|after|before|export|echo|if|fi|unset|print|fakeroot|EXPORT_FUNCTIONS|INHERIT)\\b(?![[:punct:]])","captures":{"1":{"name":"keyword.control.bb"}}},{"include":"#python-keywords"},{"match":"\\b(python|def)\\b(\\(?)","captures":{"1":{"name":"storage.type.function.python.bb"}}}]},"numeric":{"name":"constant.numeric.bb","match":"(-|\\.)?[0-9]+(\\.[0-9]+)?"},"operator":{"name":"keyword.operator.bb","match":"(=|\\?=|\\?\\?=|:=|\\+=|=\\+|\\.=|=\\.|\\.|,)"},"parenthesis-close":{"name":"meta.embedded.parenthesis.close.bb","match":"\\)"},"parenthesis-open":{"name":"meta.embedded.parenthesis.open.bb","match":"([\\w])*\\("},"python-keywords":{"patterns":[{"match":"\\b(if|elif|else|for|while|break|continue|return|yield|try|except|finally|raise|assert|import|from|as|pass|del|with|async|await)\\b","captures":{"1":{"name":"keyword.control.bb"}}},{"match":"\\b(def|class|global|nonlocal|and|or|not|in|is|lambda)\\b\\s+","captures":{"1":{"name":"storage.type.function.python.bb"}}},{"name":"constant.language.python.bb","match":"\\b(True|False)\\b"}]},"string":{"patterns":[{"name":"string.quoted.triple.bb","begin":"(\"\"\")","end":"(\"\"\")","patterns":[{"include":"#escaped-single-quote"},{"include":"#escaped-double-quote"},{"include":"#inline-python"},{"include":"#variable-expansion"}]},{"name":"string.quoted.double.bb","begin":"(\")","end":"(\")","patterns":[{"include":"#escaped-double-quote"},{"include":"#inline-python"},{"include":"#variable-expansion"}]},{"name":"string.quoted.single.bb","begin":"(')","end":"(')","patterns":[{"include":"#escaped-single-quote"},{"include":"#inline-python"},{"include":"#variable-expansion"}]}]},"variable-expansion":{"name":"variable.other.names.bb","begin":"(\\$\\{)","end":"(\\})","beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.bb"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"}}},"variable-name":{"match":"([a-zA-Z_][\\w_]*)","captures":{"1":{"name":"variable.other.names.bb"}}}}}
@@ -0,0 +1 @@
1
+ {"name":"bh","scopeName":"source.bh","patterns":[{"include":"#comment_like"},{"include":"#numeric_literals"},{"include":"#string_literal"},{"include":"#char_literal"},{"name":"invalid","match":"(?\u003c!@|#)-\\}"},{"name":"constant.language.unit.bh","match":"(\\()\\s*(\\))","captures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"punctuation.paren.bh"}}},{"name":"constant.language.unit.unboxed.bh","match":"(\\()(#)\\s*(#)(\\))","captures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"keyword.operator.hash.bh"},"3":{"name":"keyword.operator.hash.bh"},"4":{"name":"punctuation.paren.bh"}}},{"name":"support.constant.tuple.bh","match":"(\\()\\s*,[\\s,]*(\\))","captures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"punctuation.paren.bh"}}},{"name":"support.constant.tuple.unboxed.bh","match":"(\\()(#)\\s*,[\\s,]*(#)(\\))","captures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"keyword.operator.hash.bh"},"3":{"name":"keyword.operator.hash.bh"},"4":{"name":"punctuation.paren.bh"}}},{"name":"constant.language.empty-list.bh","match":"(\\[)\\s*(\\])","captures":{"1":{"name":"punctuation.bracket.bh"},"2":{"name":"punctuation.bracket.bh"}}},{"name":"meta.declaration.package.bh","begin":"(\\b(?\u003c!')(package)|^(signature))(\\b(?!'))","end":"(?=\\b(?\u003c!')where\\b(?!'))","patterns":[{"include":"#comment_like"},{"include":"#package_name"},{"include":"#package_exports"},{"name":"invalid","match":"[a-z]+"}],"beginCaptures":{"2":{"name":"keyword.other.package.bh"},"3":{"name":"keyword.other.signature.bh"}}},{"include":"#ffi"},{"name":"meta.declaration.class.bh","begin":"^(\\s*)(class)(\\s+(:?in?)coherent)?(\\b(?!'))","end":"(?x) # Detect end of class declaration:\n # 'where' keyword\n (?=(?\u003c!')\\bwhere\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )","patterns":[{"include":"#comment_like"},{"include":"#where"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.class.bh"},"3":{"name":"keyword.other.coherent.bh"}}},{"include":"#role_annotation"},{"name":"meta.declaration.pattern.type.bh","begin":"^(\\s*)(pattern)\\s+(.*?)\\s+(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])","end":"(?x) # Detect end of pattern type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.pattern.bh"},"3":{"patterns":[{"include":"#comma"},{"include":"#data_constructor"}]},"4":{"name":"keyword.operator.double-colon.bh"}}},{"name":"meta.declaration.pattern.bh","begin":"^\\s*(pattern)\\b(?!')","end":"(?x) # Detect end of pattern type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"$self"}],"captures":{"1":{"name":"keyword.other.pattern.bh"}}},{"name":"meta.declaration.$2.algebraic.bh","begin":"(?x)\n # Data declaration\n ^(\\s*)(data|newtype|interface|struct)\\s+\n # Keep consuming characters until:\n (((?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" or \"deriving\" keywords, or\n | (?:\\b(?\u003c!')(?:where|deriving)\\b(?!'))\n # the start of a block comment.\n | {-\n #\n ).)*)","end":"(?x) # Detect end of data declaration: \n # Decreasing indentation\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )","patterns":[{"include":"#comment_like"},{"include":"#deriving"},{"include":"#forall"},{"include":"#adt_constructor"},{"include":"#data_context"},{"include":"#record_decl"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.$2.bh"},"3":{"name":"keyword.other.$3.bh"},"4":{"patterns":[{"include":"#type_signature"}]}}},{"name":"meta.declaration.type.bh","begin":"(?x)\n # Type declaration\n ^(\\s*)(type)(?:\\s+(instance))?\\s+\n # Keep consuming characters until:\n (((?!\n # the equals symbol, the start of a single-line comment, or a type signature\n (?: \n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+|::|∷)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the start of a block comment.\n | {-\n #\n ).)*)","end":"(?x) # Detect end of type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.type.bh"},"3":{"name":"keyword.other.instance.bh"},"4":{"patterns":[{"include":"#type_signature"}]}}},{"name":"meta.declaration.instance.bh","begin":"^(\\s*)(instance)(\\b(?!'))","end":"(?x) # Detect end of instance declaration:\n # 'where' keyword\n (?=\\b(?\u003c!')(where)\\b(?!'))\n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#comment_like"},{"include":"#where"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.instance.bh"}}},{"name":"meta.import.bh","begin":"^(\\s*)(import)(\\b(?!'))","end":"(?x) # Detect end of import\n # 'where' keyword\n (?=\\b(?\u003c!')(where)\\b(?!'))\n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#comment_like"},{"include":"#where"},{"match":"(qualified|as|hiding)","captures":{"1":{"name":"keyword.other.$1.bh"}}},{"include":"#package_name"},{"include":"#package_exports"}],"beginCaptures":{"2":{"name":"keyword.other.import.bh"}}},{"include":"#deriving"},{"include":"#layout_herald"},{"include":"#keyword"},{"name":"meta.fixity-declaration.bh","match":"^\\s*(infix[lr]?)\\s+(.*)","captures":{"1":{"name":"keyword.other.fixity.$1.bh"},"2":{"patterns":[{"include":"#comment_like"},{"include":"#integer_literals"},{"name":"constant.other.operator.infix.bh","match":":[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*"},{"include":"#infix_op"}]}}},{"include":"#start_type_signature"},{"include":"#overloaded_label"},{"include":"#type_application"},{"include":"#reserved_symbol"},{"include":"#fun_decl"},{"include":"#qualifier"},{"name":"constant.other.operator.infix.bh","match":":[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*"},{"include":"#data_constructor"},{"include":"#prefix_op"},{"include":"#infix_op"},{"begin":"(\\()(#)\\s","end":"(#)(\\))","patterns":[{"include":"#comma"},{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"keyword.operator.hash.bh"}},"endCaptures":{"1":{"name":"keyword.operator.hash.bh"},"2":{"name":"punctuation.paren.bh"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#comma"},{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.paren.bh"}},"endCaptures":{"1":{"name":"punctuation.paren.bh"}}},{"include":"#quasi_quote"},{"begin":"(\\[)","end":"(\\])","patterns":[{"include":"#comma"},{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.bracket.bh"}},"endCaptures":{"1":{"name":"punctuation.bracket.bh"}}},{"include":"#record"}],"repository":{"adt_constructor":{"patterns":[{"include":"#comment_like"},{"begin":"(?x)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:(=)|(\\|))\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol","end":"(?x)\n (?: # Infix data constructor\n # First argument\n (?:\n # Simple type\n (?\u003c!')\\b((?:[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.])+)\n # Type inside balanced parentheses\n | ('? # Optional promotion tick\n (?\u003cparen\u003e\n \\( # Opening parenthesis\n (?:\n [^\\(\\)]* # Match non-parentheses\n | \\g\u003cparen\u003e # or recurse into further depth\n )*\n \\) # Closing parenthesis\n )\n )\n # Type inside balanced brackets\n | ('? # Optional promotion tick\n (?\u003cbrac\u003e\n \\[ # Opening bracket\n (?:\n [^\\[\\]]* # Match non-brackets\n | \\g\u003cbrac\u003e # or recurse into further depth\n )*\n \\] # Closing bracket\n )\n )\n )\n # Then either\n \\s*\n # - a symbolic infix constructor, or\n (?:(?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\n # - an alphabetic infix constructor\n | (`)([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(`)\n )\n ) # Otherwise, prefix data constructor, either:\n | # - an alphabetic data constructor e.g. \"Cons_123\"\n (?:(?\u003c!')\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))\n | # - a symbolic (prefix) data constructor\n (\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\))\n | # Otherwise, try to fail early to avoid excessive backtracking (https://github.com/JustusAdam/language-bh/issues/161)\n # Fail when detecting a lowercase identifier and then something not starting with a tick or colon\n (?=\\b(?\u003c!')(?!(?:forall|deriving)\\s)[\\p{Ll}_]\\S+\\s+[^`:])\n # Fail when seeing another equal signs or pipe symbol\n |(?=\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|\\|)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n )","patterns":[{"include":"#comment_like"},{"include":"#deriving"},{"include":"#record_decl"},{"include":"#forall"},{"include":"#data_context"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.eq.bh"},"2":{"name":"keyword.operator.pipe.bh"}},"endCaptures":{"1":{"patterns":[{"include":"#type_signature"}]},"10":{"name":"constant.other.bh"},"11":{"name":"punctuation.paren.bh"},"12":{"name":"constant.other.operator.prefix.bh"},"13":{"name":"punctuation.paren.bh"},"2":{"patterns":[{"include":"#type_signature"}]},"4":{"patterns":[{"include":"#type_signature"}]},"6":{"name":"constant.other.operator.infix.bh"},"7":{"name":"punctuation.backtick.bh"},"8":{"name":"constant.other.infix.bh"},"9":{"name":"punctuation.backtick.bh"}}}]},"block_comment":{"name":"comment.block.bh","begin":"\\{-","end":"-\\}","patterns":[{"include":"#block_comment"}],"captures":{"0":{"name":"punctuation.definition.comment.bh"}},"applyEndPatternLast":true},"char_literal":{"name":"string.quoted.single.bh","match":"(?x)\n (?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])\n (')\n (?:\n [\\ -\\[\\]-~] # Basic Char\n | (\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE\n |DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS\n |US|SP|DEL|[abfnrtv\\\\\\\"'\\\\\u0026])) # Escapes\n | (\\\\o[0-7]+) # Octal Escapes\n | (\\\\x[0-9A-Fa-f]+) # Hexadecimal Escapes\n | (\\\\\\^[A-Z@\\[\\]\\\\\\^_]) # Control Chars\n )\n (')\n","captures":{"1":{"name":"punctuation.definition.string.begin.bh"},"2":{"name":"constant.character.escape.bh"},"3":{"name":"constant.character.escape.octal.bh"},"4":{"name":"constant.character.escape.hexadecimal.bh"},"5":{"name":"constant.character.escape.control.bh"},"6":{"name":"punctuation.definition.string.end.bh"}}},"comma":{"name":"punctuation.separator.comma.bh","match":","},"comment_like":{"patterns":[{"include":"#cpp"},{"include":"#pragma"},{"include":"#comments"}]},"comments":{"patterns":[{"name":"comment.block.documentation.bh","begin":"^(\\s*)(--\\s[\\|\\$])","end":"(?=^(?!\\1--+(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])))","beginCaptures":{"2":{"name":"punctuation.whitespace.comment.leading.bh"}}},{"name":"comment.line.documentation.bh","begin":"(^[ \\t]+)?(--(@)\\s)","end":"\\n","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.bh"}}},{"name":"comment.block.documentation.bh","begin":"\\{-\\s?[\\|\\$\\*\\^]","end":"-\\}","patterns":[{"include":"#block_comment"}],"captures":{"0":{"name":"punctuation.definition.comment.bh"}},"applyEndPatternLast":true},{"begin":"(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]))","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.bh","begin":"--","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.bh"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.bh"}}},{"include":"#block_comment"}]},"cpp":{"name":"meta.preprocessor.c","match":"^(#).*$","captures":{"1":{"name":"punctuation.definition.preprocessor.c"}}},"data_constructor":{"patterns":[{"name":"constant.other.bh","match":"\\b(?\u003c!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?![\\.'\\w])"},{"name":"constant.other.operator.bh","match":"(\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\))"}]},"data_context":{"match":"(?x)\n (.*)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n (=\u003e|⇒)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n","captures":{"1":{"patterns":[{"include":"#comment_like"},{"include":"#forall"},{"begin":"(?='?\\()","end":"(?=\\))","patterns":[{"include":"#type_signature"}]},{"begin":"(?='?\\[)","end":"(?=\\])","patterns":[{"include":"#type_signature"}]},{"match":"(?x)\n (\\S*)\\s*\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n (::|∷|=)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])","captures":{"1":{"patterns":[{"include":"#comment_like"},{"include":"#forall"},{"include":"#record_decl_field"}]},"2":{"patterns":[{"include":"#reserved_symbol"}]},"3":{"patterns":[{"include":"#type_signature"}]}}},{"include":"#type_signature"}]},"2":{"name":"keyword.operator.big-arrow.bh"}}},"deriving":{"patterns":[{"name":"meta.deriving.bh","begin":"^(\\s*)(deriving)\\s+(?:(via|stock|newtype|anyclass)\\s+)?","end":"(?x) # Detect end of deriving statement\n # Decreasing indentation\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )","patterns":[{"include":"#comment_like"},{"name":"keyword.other.instance.bh","match":"(?\u003c!')\\b(instance)\\b(?!')"},{"match":"(?\u003c!')\\b(via|stock|newtype|anyclass)\\b(?!')","captures":{"1":{"name":"keyword.other.deriving.strategy.$1.bh"}}},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.deriving.bh"},"3":{"name":"keyword.other.deriving.strategy.$3.bh"}}},{"name":"meta.deriving.bh","begin":"(deriving)(?:\\s+(stock|newtype|anyclass))?\\s*(\\()","end":"(\\))","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.deriving.bh"},"2":{"name":"keyword.other.deriving.strategy.$2.bh"},"3":{"name":"punctuation.paren.bh"}},"endCaptures":{"1":{"name":"punctuation.paren.bh"}}},{"name":"meta.deriving.bh","match":"(?x)\n (deriving)(?:\\s+(stock|newtype|anyclass))?\\s+\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n (\\s+(via)\\s+(.*)$)?\n","captures":{"1":{"name":"keyword.other.deriving.bh"},"2":{"name":"keyword.other.deriving.strategy.$2.bh"},"3":{"patterns":[{"include":"#type_signature"}]},"5":{"name":"keyword.other.deriving.strategy.via.bh"},"6":{"patterns":[{"include":"#type_signature"}]}}},{"name":"keyword.other.deriving.strategy.via.bh","match":"(?\u003c!')\\b(via)\\b(?!')"}]},"double_colon":{"match":"\\s*(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\\s*","captures":{"1":{"name":"keyword.operator.double-colon.bh"}}},"export_constructs":{"patterns":[{"include":"#comment_like"},{"begin":"\\b(?\u003c!')(pattern)\\b(?!')","end":"(?x)\n # Data constructor\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Prefix form of symbolic constructor\n | (\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\\s*(\\))","patterns":[{"include":"#comment_like"}],"beginCaptures":{"1":{"name":"keyword.other.pattern.bh"}},"endCaptures":{"1":{"name":"constant.other.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"constant.other.operator.prefix.bh"},"4":{"name":"punctuation.paren.bh"}}},{"begin":"\\b(?\u003c!')(type)\\b(?!')","end":"(?=,|\\))","patterns":[{"include":"#comment_like"},{"include":"#reserved_symbol"},{"include":"#type_constructor"},{"include":"#type_operator"}],"beginCaptures":{"1":{"name":"keyword.other.type.bh"}}},{"include":"#record_wildcard"},{"include":"#reserved_symbol"},{"name":"storage.type.operator.bh","match":"(\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\))"},{"name":"entity.name.function.bh","match":"(?\u003c!')\\b[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*"},{"name":"storage.type.bh","match":"(?\u003c!')\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*"},{"include":"#prefix_op"}]},"ffi":{"name":"meta.$3.foreign.bh","begin":"^(\\s*)(foreign)\\s+(import|export)\\s+","end":"(?x) # Detect end of FFI block by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#comment_like"},{"match":"\\b(?\u003c!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\\s+","captures":{"1":{"name":"keyword.other.calling-convention.$1.bh"}}},{"begin":"(?=\")|(?=\\b(?\u003c!')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))","end":"(?=(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]))","patterns":[{"include":"#comment_like"},{"match":"(?x)\n \\b(?\u003c!')(safe|unsafe|interruptible)\\b(?!')\n \\s*\n (\"(?:\\\\\"|[^\"])*\")?\n \\s*\n (?:\n (?:\\b(?\u003c!'')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))\n |(?:\\(\\s*(?!--+\\))([\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\\s*\\))\n )\n","captures":{"1":{"name":"keyword.other.safety.$1.bh"},"2":{"name":"entity.name.foreign.bh","patterns":[{"include":"#string_literal"}]},"3":{"name":"entity.name.function.bh"},"4":{"name":"entity.name.function.infix.bh"}}},{"match":"(?x)\n \\b(?\u003c!')(safe|unsafe|interruptible)\\b(?!')\n \\s*\n (\"(?:\\\\\"|[^\"])*\")?\n \\s*$\n","captures":{"1":{"name":"keyword.other.safety.$1.bh"},"2":{"name":"entity.name.foreign.bh","patterns":[{"include":"#string_literal"}]}}},{"match":"(?x)\n \"(?:\\\\\"|[^\"])*\"","captures":{"0":{"name":"entity.name.foreign.bh","patterns":[{"include":"#string_literal"}]}}},{"match":"(?x)\n (?:\\b(?\u003c!'')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))\n |(?:(\\()\\s*(?!--+\\))([\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\\s*(\\)))\n","captures":{"1":{"name":"entity.name.function.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"entity.name.function.infix.bh"},"4":{"name":"punctuation.paren.bh"}}}]},{"include":"#double_colon"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.foreign.bh"},"3":{"name":"keyword.other.$3.bh"}}},"float_literals":{"match":"(?x)\n \\b(?\u003c!')\n (?: # Decimal\n ([0-9][_0-9]*\\.[0-9][_0-9]*(?:[eE][-+]?[0-9][_0-9]*)?\n |[0-9][_0-9]*[eE][-+]?[0-9][_0-9]*\n )\n | # Hexadecimal\n (0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*\\.[0-9a-fA-F][_0-9a-fA-F]*(?:[pP][-+]?[0-9][_0-9]*)?\n |0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[pP][-+]?[0-9][_0-9]*\n )\n )\\b(?!')","captures":{"1":{"name":"constant.numeric.floating.decimal.bh"},"2":{"name":"constant.numeric.floating.hexadecimal.bh"}}},"forall":{"begin":"(?x)\n # Alphabetic forall\n (?:\n \\b(?\u003c!')\n (forall)\n \\b(?!')\n )\n |\n # Symbolic forall\n (?:\n # Not preceded by a symbol except reserved symbols\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"'']])\n (∀)\n # Not followed by a symbol except reserved symbols\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"'']])\n )","end":"(\\.)|(-\u003e|→)","patterns":[{"include":"#comment_like"},{"include":"#type_variable"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.forall.bh"},"2":{"name":"keyword.other.forall.bh"}},"endCaptures":{"1":{"name":"keyword.operator.period.bh"},"2":{"name":"keyword.operator.arrow.bh"}}},"fun_decl":{"name":"meta.function.type-declaration.bh","begin":"(?x)^(\\s*)\n (primitive\\s+)?\n (type\\s+)?\n (?\u003cfn\u003e\n (?:\n [\\p{Ll}_\\p{Lu}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\#*\n | \\(\\s*\n (?!--+\\))\n [\\p{S}\\p{P}\u0026\u0026[^(),:;\\[\\]`{}_\"']]\n [\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*\n \\s*\\)\n )\n (?:\\s*,\\s*\\g\u003cfn\u003e)?\n )\n \\s*(?\u003c![\\p{S}\\p{P}\u0026\u0026[^\\),;\\]`}_\"']])(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^\\(,;\\[`{_\"']])\n","end":"(?x)\n # End of type annotation:\n # To the left of a reserved symbolic keyword such as = or \u003c-\n (?= \n # non-symbolic character\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n # symbolic keyword except (-\u003e)\n ((\u003c-|←)|(=)|(-\u003c|↢)|(-\u003c\u003c|⤛))\n # non-symbolic character\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n )\n # Decreasing indentation:\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.primitive.bh"},"3":{"name":"keyword.other.type.bh"},"4":{"name":"entity.name.function.bh","patterns":[{"include":"#reserved_symbol"},{"include":"#prefix_op"}]},"5":{"name":"keyword.operator.double-colon.bh"}}},"gadt_constructor":{"patterns":[{"begin":"(?x)\n ^(\\s*)\n (?:\n (\\b(?\u003c!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n |(\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\))\n )","end":"(?x)\n # GADT constructor ends\n (?=\\b(?\u003c!'')deriving\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#comment_like"},{"include":"#deriving"},{"include":"#double_colon"},{"include":"#record_decl"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"constant.other.bh"},"3":{"name":"punctuation.paren.bh"},"4":{"name":"constant.other.operator.prefix.bh"},"5":{"name":"punctuation.paren.bh"}}},{"begin":"(?x)\n (\\b(?\u003c!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}]*) # named constructor\n |(\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\)) # prefix operator","end":"(?=;|\\}|$)","patterns":[{"include":"#comment_like"},{"include":"#deriving"},{"include":"#double_colon"},{"include":"#record_decl"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"constant.other.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"constant.other.operator.prefix.bh"},"4":{"name":"punctuation.paren.bh"}}}]},"infix_op":{"patterns":[{"match":"(?x)\n ((?:(?\u003c!'')('')?[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*\\.)*)\n (\\#+|[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+(?\u003c!\\#))","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"entity.name.namespace.bh"},"3":{"name":"keyword.operator.infix.bh"}}},{"name":"keyword.operator.function.infix.bh","match":"(`)((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*\\.)*)([\\p{Ll}\\p{Lu}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*)(`)","captures":{"1":{"name":"punctuation.backtick.bh"},"2":{"name":"entity.name.namespace.bh"},"3":{"patterns":[{"include":"#data_constructor"}]},"4":{"name":"punctuation.backtick.bh"}}}]},"inline_phase":{"name":"meta.inlining-phase.bh","begin":"\\[","end":"\\]","patterns":[{"name":"punctuation.tilde.bh","match":"~"},{"include":"#integer_literals"},{"name":"invalid","match":"\\w*"}],"beginCaptures":{"0":{"name":"punctuation.bracket.bh"}},"endCaptures":{"0":{"name":"punctuation.bracket.bh"}}},"integer_literals":{"match":"(?x)\n \\b(?\u003c!')\n (?:\n ([0-9][_0-9]*) # Decimal integer\n | (0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*) # Hexadecimal integer\n | (0[oO]_*[0-7][_0-7]*) # Octal integer\n | (0[bB]_*[01][_01]*) # Binary integer\n )\n \\b(?!')","captures":{"1":{"name":"constant.numeric.integral.decimal.bh"},"2":{"name":"constant.numeric.integral.hexadecimal.bh"},"3":{"name":"constant.numeric.integral.octal.bh"},"4":{"name":"constant.numeric.integral.binary.bh"}}},"keyword":{"match":"\\b(?\u003c!')(?:(where|when|let|letseq|in)|(do|module|rules|action|if|then|else|case(?:s)?|of|verilog|synthesize))\\b(?!')","captures":{"1":{"name":"keyword.other.$1.bh"},"2":{"name":"keyword.control.$2.bh"}}},"layout_herald":{"begin":"(?x)\n (?:(?\u003c!')\\b(?:(where|let|letseq|do|module|rules|action)|(of))|(\\\\\\s*case(?:s)?))\n \\s*(\\{)(?!-)","end":"(\\})","patterns":[{"include":"$self"},{"name":"punctuation.semicolon.bh","match":";"}],"beginCaptures":{"1":{"name":"keyword.other.$1.bh"},"2":{"name":"keyword.control.of.bh"},"3":{"name":"keyword.control.lambda-case.bh"},"4":{"name":"punctuation.brace.bh"}},"endCaptures":{"1":{"name":"punctuation.brace.bh"}}},"numeric_literals":{"patterns":[{"include":"#float_literals"},{"include":"#integer_literals"}]},"overloaded_label":{"patterns":[{"name":"entity.name.label.bh","match":"(?x) \n (?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}\u0026\u0026[^(,;\\[`{]]) # Disallow closing characters\n (\\#)\n (?:\n # String\n (\"(?:\\\\\"|[^\"])*\")\n # Sequence of allowed label identifiers\n |[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.]+\n )","captures":{"1":{"name":"keyword.operator.prefix.hash.bh"},"2":{"patterns":[{"include":"#string_literal"}]}}}]},"package_exports":{"name":"meta.declaration.exports.bh","begin":"\\(","end":"\\)","patterns":[{"include":"#comment_like"},{"match":"\\b(?\u003c!')(package)\\b(?!')","captures":{"1":{"name":"keyword.other.package.bh"}}},{"include":"#comma"},{"include":"#export_constructs"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#comment_like"},{"include":"#record_wildcard"},{"name":"constant.other.operator.prefix.bh","match":"(\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\))"},{"include":"#export_constructs"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.paren.bh"}},"endCaptures":{"0":{"name":"punctuation.paren.bh"}}}],"beginCaptures":{"0":{"name":"punctuation.paren.bh"}},"endCaptures":{"0":{"name":"punctuation.paren.bh"}},"applyEndPatternLast":true},"package_name":{"name":"entity.name.namespace.bh","match":"(?\u003cconid\u003e[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.\\g\u003cconid\u003e)?)"},"pragma":{"name":"meta.preprocessor.bh","begin":"\\{-#","end":"#-\\}","patterns":[{"include":"#comments"},{"name":"keyword.other.preprocessor.pragma.bh","match":"(?xi) \\b(?\u003c!')\n (synthesize|verilog|noReady|alwaysEnabled|parameter|no_default_clock|no_default_reset|gate_input_clocks|clock_family|clock_prefix|gate_prefix|reset_prefix|alwaysReady|noReady|alwaysEnabled|scanInsert|bitBlast|CLK|RSTN|options|deprecate|properties)\\b(?!')"},{"name":"keyword.other.preprocessor.pragma.bh","match":"(?xi) \\b(?\u003c!')\n (prefixs?|arg_names|ready|enable|result|always_ready|always_enabled)\\b(?!')"}]},"prefix_op":{"patterns":[{"match":"(?x)\n (\\()\\s*(?!(?:--+|\\.\\.)\\))(\\#+|[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+(?\u003c!\\#))\\s*(\\))","captures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"entity.name.function.infix.bh"},"3":{"name":"punctuation.paren.bh"}}}]},"qualifier":{"name":"entity.name.namespace.bh","match":"\\b(?\u003c!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\."},"quasi_quote":{"patterns":[{"name":"meta.quasi-quotation.bh","begin":"(?x)\n (\\[)\n (e|d|p)?\n (\\|(?:\\|(?!\\]))?)","end":"\\3\\]","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.operator.quasi-quotation.begin.bh"},"2":{"name":"entity.name.quasi-quoter.bh"},"3":{"name":"keyword.operator.quasi-quotation.begin.bh"}},"endCaptures":{"0":{"name":"keyword.operator.quasi-quotation.end.bh"}}},{"name":"meta.quasi-quotation.bh","begin":"(?x)\n (\\[)\n (t)\n (\\|(?:\\|(?!\\]))?)","end":"\\3\\]","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.quasi-quotation.begin.bh"},"2":{"name":"entity.name.quasi-quoter.bh"},"3":{"name":"keyword.operator.quasi-quotation.begin.bh"}},"endCaptures":{"0":{"name":"keyword.operator.quasi-quotation.end.bh"}}},{"name":"meta.quasi-quotation.bh meta.embedded.block.$5","begin":"(?x)\n (\\[)\n (?:(\\$\\$)|(\\$))?\n (?!'\\|') # Don't parse ['|'...] as a quasi quotation\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*) # Optional qualifier\n ((?:[^\\s\\p{S}\\p{P}]|['_])*) # Quasi-quoter\n (\\|)","end":"\\|\\]","beginCaptures":{"1":{"name":"keyword.operator.quasi-quotation.begin.bh"},"2":{"name":"keyword.operator.prefix.double-dollar.bh"},"3":{"name":"keyword.operator.prefix.dollar.bh"},"4":{"name":"entity.name.namespace.bh"},"5":{"name":"entity.name.quasi-quoter.bh"},"6":{"name":"keyword.operator.quasi-quotation.begin.bh"}},"endCaptures":{"0":{"name":"keyword.operator.quasi-quotation.end.bh"}}}]},"record":{"name":"meta.record.bh","begin":"({)(?!-)","end":"(?\u003c!-)(})","patterns":[{"include":"#comment_like"},{"include":"#record_field"}],"beginCaptures":{"1":{"name":"punctuation.brace.bh"}},"endCaptures":{"1":{"name":"punctuation.brace.bh"}}},"record_decl":{"name":"meta.record.definition.bh","begin":"({)(?!-)","end":"(?\u003c!-)(})","patterns":[{"include":"#comment_like"},{"include":"#record_decl_field"}],"beginCaptures":{"1":{"name":"punctuation.brace.bh"}},"endCaptures":{"1":{"name":"punctuation.brace.bh"}}},"record_decl_field":{"begin":"(?x)\n (?:([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n |(\\()\\s*([\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\\s*(\\))\n )\n","end":"(,)|(?=})","patterns":[{"include":"#comment_like"},{"include":"#comma"},{"include":"#double_colon"},{"include":"#type_signature"},{"include":"#record_decl_field"}],"beginCaptures":{"1":{"name":"variable.other.member.definition.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"variable.other.member.definition.bh"},"4":{"name":"punctuation.paren.bh"}},"endCaptures":{"1":{"name":"punctuation.comma.bh"}}},"record_field":{"patterns":[{"begin":"(?x)\n (?:([\\p{Ll}\\p{Lu}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\.']*)\n |(\\()\\s*([\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\\s*(\\))\n )\n","end":"(,)|(?=})","patterns":[{"include":"#comment_like"},{"include":"#comma"},{"include":"$self"}],"beginCaptures":{"1":{"name":"variable.other.member.bh","patterns":[{"include":"#qualifier"}]},"2":{"name":"punctuation.paren.bh"},"3":{"name":"variable.other.member.bh"},"4":{"name":"punctuation.paren.bh"}},"endCaptures":{"1":{"name":"punctuation.comma.bh"}}},{"include":"#record_wildcard"}]},"record_wildcard":{"match":"(?x)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n (\\.\\.)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])","captures":{"1":{"name":"variable.other.member.wildcard.bh"}}},"reserved_symbol":{"patterns":[{"match":"(?x)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"'']])\n (?:\n (\\.\\.)\n |(:)\n |(=)\n |(\\\\) # λ not reserved as it is a letter\n |(\\|)\n |(\u003c-|←)\n |(-\u003e|→)\n |(-\u003c|↢)\n |(-\u003c\u003c|⤛)\n |(\u003e-|⤚)\n |(\u003e\u003e-|⤜)\n )\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"'']])","captures":{"1":{"name":"keyword.operator.double-dot.bh"},"10":{"name":"keyword.operator.arrow.tail.bh"},"11":{"name":"keyword.operator.arrow.tail.double.bh"},"2":{"name":"keyword.operator.colon.bh"},"3":{"name":"keyword.operator.eq.bh"},"4":{"name":"keyword.operator.lambda.bh"},"5":{"name":"keyword.operator.pipe.bh"},"6":{"name":"keyword.operator.arrow.left.bh"},"7":{"name":"keyword.operator.arrow.bh"},"8":{"name":"keyword.operator.arrow.left.tail.bh"},"9":{"name":"keyword.operator.arrow.left.tail.double.bh"}}},{"match":"(?x)\n (?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}\u0026\u0026[^\\#,;\\[`{]]) # Require closing characters\n (\\#+)\n (?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}\u0026\u0026[^),;\\]`}]]) # Disallow opening character","captures":{"1":{"name":"keyword.operator.postfix.hash.bh"}}},{"match":"(?x)\n (?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\)\\}\\]]) # Require closing characters\n (@)\n (?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\(\\[\\{]) # Require opening character","captures":{"1":{"name":"keyword.operator.infix.tight.at.bh"}}},{"match":"(?x)\n (?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}\u0026\u0026[^(,;\\[`{]]) # Disallow closing characters\n (?:(~)|(!)|(-)|(\\$\\$)|(\\$)|(%))\n (?=[\\p{Ll}_'\\p{Lu}\\p{Lt}\\p{Nd}\\(\\{\\[]) # Require opening character (non operator symbol)","captures":{"1":{"name":"keyword.operator.prefix.tilde.bh"},"2":{"name":"keyword.operator.prefix.bang.bh"},"3":{"name":"keyword.operator.prefix.minus.bh"},"4":{"name":"keyword.operator.prefix.double-dollar.bh"},"5":{"name":"keyword.operator.prefix.dollar.bh"},"6":{"name":"keyword.operator.prefix.modifier.bh"}}}]},"role_annotation":{"patterns":[{"name":"meta.role-annotation.bh","begin":"^(\\s*)(type)\\s+(role)\\b(?!')","end":"(?x) # Detect end of block by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )","patterns":[{"include":"#comment_like"},{"include":"#type_constructor"},{"match":"\\b(?\u003c!')(nominal|representational|phantom)\\b(?!')","captures":{"1":{"name":"keyword.other.role.$1.bh"}}}],"beginCaptures":{"2":{"name":"keyword.other.type.bh"},"3":{"name":"keyword.other.role.bh"}}}]},"start_type_signature":{"patterns":[{"name":"meta.type-declaration.bh","begin":"^(\\s*)(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^\\(,;\\[`{_\"']])\\s*","end":"(?x)\n # End type annotation when seeing one of:\n (?=\n \\#?\\) # closing parenthesis\n |\\] # closing bracket\n |, # comma\n |(?\u003c!')\\b(in|then|else|of)\\b(?!') # keyword\n | # symbolic keyword except (-\u003e)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n (?:\n (\\\\|λ)\n |(\u003c-|←)\n |(=)\n |(-\u003c|↢)\n |(-\u003c\u003c|⤛)\n )\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n |(\\#|@)-\\} # End of annotation block (pragma)\n # Decreasing indentation:\n | (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s*\\S # - equally indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.operator.double-colon.bh"}}},{"begin":"(?\u003c![\\p{S}\\p{P}\u0026\u0026[^\\(,;\\[`{_\"']])(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^\\(,;\\[`{_\"']])","end":"(?x)\n # End type annotation when seeing one of:\n (?=\n \\#?\\) # closing parenthesis\n |\\] # closing bracket\n |, # comma\n |\\b(?\u003c!')(in|then|else|of)\\b(?!') # keyword\n |(\\#|@)-\\} # End of annotation block (Liquidbh or pragma)\n | # symbolic keyword except (-\u003e)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n (?:\n (\\\\|λ)\n |(\u003c-|←)\n |(=)\n |(-\u003c|↢)\n |(-\u003c\u003c|⤛)\n )\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n # Indentation \n |(?=\\}|;) # Explicit indentation\n |$ # End of line\n )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.double-colon.bh"}}}]},"string_literal":{"name":"string.quoted.double.bh","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.bh","match":"\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\\u0026])"},{"name":"constant.character.escape.octal.bh","match":"\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+"},{"name":"constant.character.escape.control.bh","match":"\\\\\\^[A-Z@\\[\\]\\\\\\^_]"},{"begin":"\\\\\\s","end":"\\\\","patterns":[{"name":"invalid.illegal.character-not-allowed-here.bh","match":"\\S+"}],"beginCaptures":{"0":{"name":"constant.character.escape.begin.bh"}},"endCaptures":{"0":{"name":"constant.character.escape.end.bh"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.bh"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.bh"}}},"type_application":{"patterns":[{"name":"meta.type-application.bh","match":"(?\u003c=[\\s,;\\[\\]{}\"])(@)(\\(\\s*\\))","captures":{"1":{"name":"keyword.operator.prefix.at.bh"},"2":{"name":"support.constant.unit.bh"}}},{"name":"meta.type-application.bh","begin":"(?\u003c=[\\s,;\\[\\]{}\"])(@)(')?(\\()","end":"\\)","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.prefix.at.bh"},"2":{"name":"keyword.operator.promotion.bh"},"3":{"name":"punctuation.paren.bh"}},"endCaptures":{"0":{"name":"punctuation.paren.bh"}}},{"name":"meta.type-application.bh","begin":"(?\u003c=[\\s,;\\[\\]{}\"])(@)(')?(\\[)","end":"\\]","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.prefix.at.bh"},"2":{"name":"keyword.operator.promotion.bh"},"3":{"name":"punctuation.bracket.bh"}},"endCaptures":{"0":{"name":"punctuation.bracket.bh"}}},{"name":"meta.type-application.bh","begin":"(?\u003c=[\\s,;\\[\\]{}\"])(@)(?=\\\")","end":"(?\u003c=\\\")","patterns":[{"include":"#string_literal"}],"beginCaptures":{"1":{"name":"keyword.operator.prefix.at.bh"}}},{"name":"meta.type-application.bh","begin":"(?\u003c=[\\s,;\\[\\]{}\"])(@)(?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])","end":"(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.prefix.at.bh"}}}]},"type_constructor":{"patterns":[{"match":"(?x)\n # Optional promotion tick\n (')?\n # Optional qualified name\n ((?:\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type constructor proper\n (\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"entity.name.namespace.bh"},"3":{"name":"storage.type.bh"}}},{"match":"(?x)\n # Optional promotion tick\n (')?\n # Opening parenthesis\n (\\()\\s*\n # Optional qualified name\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type operator proper\n ([\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\n # Closing parenthesis\n \\s*(\\))","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"entity.name.namespace.bh"},"4":{"name":"storage.type.operator.bh"},"5":{"name":"punctuation.paren.bh"}}}]},"type_operator":{"patterns":[{"match":"(?x)\n # Optional promotion tick\n (?:(?\u003c!')('))?\n # Optional qualified name\n ((?:\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type operator proper\n (?![#@]?-})(\\#+|[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+(?\u003c!\\#))\n #((?:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']\u0026\u0026[^#@]]|[@#](?!-}))+)","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"entity.name.namespace.bh"},"3":{"name":"storage.type.operator.infix.bh"}}},{"match":"(?x)\n # Optional promotion tick\n (')?\n # Opening backtick\n (\\`)\n # Optional qualified name\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type constructor proper\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Closing backtick\n (`)","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.backtick.bh"},"3":{"name":"entity.name.namespace.bh"},"4":{"name":"storage.type.infix.bh"},"5":{"name":"punctuation.backtick.bh"}}}]},"type_signature":{"patterns":[{"include":"#comment_like"},{"name":"support.constant.unit.bh","match":"(')?(\\()\\s*(\\))","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"punctuation.paren.bh"}}},{"name":"support.constant.tuple.bh","match":"(')?(\\()\\s*,[\\s,]*(\\))","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"punctuation.paren.bh"}}},{"name":"support.constant.empty-list.bh","match":"(')?(\\[)\\s*(\\])","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.bracket.bh"},"3":{"name":"punctuation.bracket.bh"}}},{"include":"#integer_literals"},{"name":"keyword.operator.double-colon.bh","match":"(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])"},{"include":"#forall"},{"name":"keyword.operator.big-arrow.bh","match":"=\u003e|⇒"},{"include":"#string_literal"},{"name":"invalid","match":"'[^']'"},{"include":"#type_application"},{"include":"#reserved_symbol"},{"include":"#type_operator"},{"include":"#type_constructor"},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#comma"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"punctuation.paren.bh"}},"endCaptures":{"2":{"name":"punctuation.paren.bh"}}},{"begin":"(')?(\\()","end":"(\\))","patterns":[{"include":"#comma"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.paren.bh"}},"endCaptures":{"1":{"name":"punctuation.paren.bh"}}},{"begin":"(')?(\\[)","end":"(\\])","patterns":[{"include":"#comma"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.bracket.bh"}},"endCaptures":{"1":{"name":"punctuation.bracket.bh"}}},{"include":"#type_variable"}]},"type_variable":{"name":"variable.other.generic-type.bh","match":"\\b(?\u003c!')(?!(?:forall|deriving)\\b(?!'))[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*"},"where":{"patterns":[{"begin":"(?x)\n (?\u003c!')\\b(where)\n \\s*(\\{)(?!-)","end":"(\\})","patterns":[{"include":"$self"},{"name":"punctuation.semicolon.bh","match":";"}],"beginCaptures":{"1":{"name":"keyword.other.where.bh"},"2":{"name":"punctuation.brace.bh"}},"endCaptures":{"1":{"name":"punctuation.brace.bh"}}},{"name":"keyword.other.where.bh","match":"\\b(?\u003c!')(where)\\b(?!')"}]}}}
@@ -1 +1 @@
1
- {"name":"Bicep","scopeName":"source.bicep","patterns":[{"include":"#expression"},{"include":"#comments"}],"repository":{"array-literal":{"name":"meta.array-literal.bicep","begin":"\\[(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\bfor\\b)","end":"]","patterns":[{"include":"#expression"},{"include":"#comments"}]},"block-comment":{"name":"comment.block.bicep","begin":"/\\*","end":"\\*/"},"comments":{"patterns":[{"include":"#line-comment"},{"include":"#block-comment"}]},"decorator":{"name":"meta.decorator.bicep","begin":"@(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(?=\\b[_$[:alpha:]][_$[:alnum:]]*\\b)","patterns":[{"include":"#expression"},{"include":"#comments"}]},"directive":{"name":"meta.directive.bicep","begin":"#\\b[_a-zA-Z-0-9]+\\b","end":"$","patterns":[{"include":"#directive-variable"},{"include":"#comments"}]},"directive-variable":{"name":"keyword.control.declaration.bicep","match":"\\b[_a-zA-Z-0-9]+\\b"},"escape-character":{"name":"constant.character.escape.bicep","match":"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)"},"expression":{"patterns":[{"include":"#string-literal"},{"include":"#string-verbatim"},{"include":"#numeric-literal"},{"include":"#named-literal"},{"include":"#object-literal"},{"include":"#array-literal"},{"include":"#keyword"},{"include":"#identifier"},{"include":"#function-call"},{"include":"#decorator"},{"include":"#lambda-start"},{"include":"#directive"}]},"function-call":{"name":"meta.function-call.bicep","begin":"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"entity.name.function.bicep"}}},"identifier":{"name":"variable.other.readwrite.bicep","match":"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\()"},"keyword":{"name":"keyword.control.declaration.bicep","match":"\\b(metadata|targetScope|resource|module|param|var|output|for|in|if|existing|import|as|type|with|using|func|assert|provider)\\b"},"lambda-start":{"name":"meta.lambda-start.bicep","begin":"(\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(,(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)*\\)|\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\)|(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=\u003e)","end":"(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=\u003e","beginCaptures":{"1":{"name":"meta.undefined.bicep","patterns":[{"include":"#identifier"},{"include":"#comments"}]}}},"line-comment":{"name":"comment.line.double-slash.bicep","match":"//.*(?=$)"},"named-literal":{"name":"constant.language.bicep","match":"\\b(true|false|null)\\b"},"numeric-literal":{"name":"constant.numeric.bicep","match":"[0-9]+"},"object-literal":{"name":"meta.object-literal.bicep","begin":"{","end":"}","patterns":[{"include":"#object-property-key"},{"include":"#expression"},{"include":"#comments"}]},"object-property-key":{"name":"variable.other.property.bicep","match":"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*:)"},"string-literal":{"name":"string.quoted.single.bicep","begin":"'(?!'')","end":"'","patterns":[{"include":"#escape-character"},{"include":"#string-literal-subst"}]},"string-literal-subst":{"name":"meta.string-literal-subst.bicep","begin":"(?\u003c!\\\\)(\\${)","end":"(})","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.bicep"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bicep"}}},"string-verbatim":{"name":"string.quoted.multi.bicep","begin":"'''","end":"'''"}}}
1
+ {"name":"Bicep","scopeName":"source.bicep","patterns":[{"include":"#expression"},{"include":"#comments"}],"repository":{"array-literal":{"name":"meta.array-literal.bicep","begin":"\\[(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\bfor\\b)","end":"]","patterns":[{"include":"#expression"},{"include":"#comments"}]},"block-comment":{"name":"comment.block.bicep","begin":"/\\*","end":"\\*/"},"comments":{"patterns":[{"include":"#line-comment"},{"include":"#block-comment"}]},"decorator":{"name":"meta.decorator.bicep","begin":"@(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(?=\\b[_$[:alpha:]][_$[:alnum:]]*\\b)","patterns":[{"include":"#expression"},{"include":"#comments"}]},"directive":{"name":"meta.directive.bicep","begin":"#\\b[_a-zA-Z-0-9]+\\b","end":"$","patterns":[{"include":"#directive-variable"},{"include":"#comments"}]},"directive-variable":{"name":"keyword.control.declaration.bicep","match":"\\b[_a-zA-Z-0-9]+\\b"},"escape-character":{"name":"constant.character.escape.bicep","match":"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)"},"expression":{"patterns":[{"include":"#string-literal"},{"include":"#string-verbatim"},{"include":"#numeric-literal"},{"include":"#named-literal"},{"include":"#object-literal"},{"include":"#array-literal"},{"include":"#keyword"},{"include":"#identifier"},{"include":"#function-call"},{"include":"#decorator"},{"include":"#lambda-start"},{"include":"#directive"}]},"function-call":{"name":"meta.function-call.bicep","begin":"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"entity.name.function.bicep"}}},"identifier":{"name":"variable.other.readwrite.bicep","match":"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\()"},"keyword":{"name":"keyword.control.declaration.bicep","match":"\\b(metadata|targetScope|resource|module|param|var|output|for|in|if|existing|import|as|type|with|using|func|assert|provider)\\b"},"lambda-start":{"name":"meta.lambda-start.bicep","begin":"(\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(,(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)*\\)|\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\)|(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=\u003e)","end":"(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=\u003e","beginCaptures":{"1":{"name":"meta.undefined.bicep","patterns":[{"include":"#identifier"},{"include":"#comments"}]}}},"line-comment":{"name":"comment.line.double-slash.bicep","match":"//.*(?=$)"},"named-literal":{"name":"constant.language.bicep","match":"\\b(true|false|null)\\b"},"numeric-literal":{"name":"constant.numeric.bicep","match":"[0-9]+"},"object-literal":{"name":"meta.object-literal.bicep","begin":"{","end":"}","patterns":[{"include":"#object-property-key"},{"include":"#expression"},{"include":"#comments"}]},"object-property-key":{"name":"variable.other.property.bicep","match":"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*:)"},"string-literal":{"name":"string.quoted.single.bicep","begin":"'(?!'')","end":"'","patterns":[{"include":"#escape-character"},{"include":"#string-literal-subst"}]},"string-literal-subst":{"name":"meta.string-literal-subst.bicep","begin":"(?\u003c!\\\\)(\\${)","end":"(})","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.bicep"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bicep"}}},"string-verbatim":{"name":"string.quoted.multi.bicep","begin":"'''","end":"'''(?!')"}}}
@@ -1 +1 @@
1
- {"name":"bms","scopeName":"source.bms","patterns":[{"name":"comment.line.set.bms","match":"^(\\*.*)$"},{"name":"string.quoted.single.bms","begin":"'","end":"('|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.bms"}},"endCaptures":{"0":{"name":"punctuation.definition.string.bms"}}},{"match":"((?i:attrb)(\\=)\\(((?i:ASKIP|PROT|UNPROT\\s+[0-9]*|UNPROT|BRT|NORM|DRK|DET|IC|FSET|DRT|PROT|NUM|,)*)\\))","captures":{"1":{"name":"keyword.verb.attrb1.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(attrb|initial))(\\=)","captures":{"1":{"name":"keyword.verb.attrb2.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"((?i:MAPATTS|DSATTS)(\\=)([\\(]?(?i:(COLOR|HILIGHT|OUTLINE|PS|SOSI|TRANSP|VALIDN|,)+)[\\)]?))","captures":{"1":{"name":"keyword.verb.mapatts.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"name":"entity.name.function.bms","match":"(?i:UNPROTECTED|UNPROT|PROTECTED|BRIGHT|NORMAL|DARK|FSET|NUMERIC|ASKIP|IC|BRT)"},{"name":"keyword.bms","match":"(?i:DFHMSD|DFHMDI|DFHMDF|END)"},{"match":"((?i:length|occurs|line|column)(\\=)([0-9]+))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"constant.numeric.integer.bms"}}},{"match":"((?i:size|pos)(\\=)(\\()([0-9]+)(\\,)([0-9]+)(\\)))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"keyword.bracket.bms"},"4":{"name":"constant.numeric.integer.bms"},"5":{"name":"keyword.operator.bms"},"6":{"name":"constant.numeric.integer.bms"},"7":{"name":"keyword.bracket.bms"}}},{"match":"(?i:(data)(\\=)(field|block))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"((?i:type)(\\=)((?i:dsect|map|final|\u0026\\w+|\u0026\u0026\\w+)))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"((?i:justify)(\\=)([\\(]?(?i:left|right|first|last|bottom|space|,)+[\\)]?))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(mode)(\\=)(inout|out|in))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(fold)(\\=)(upper|no|in))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(hilight)(\\=)(off|blink|reverse|underline))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"((?i:color)(\\=)((?i:blue|red|pink|green|turquoise|yellow|neutral)))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"((?i:CTRL)(\\=)([\\(]?(?i:PRINT|FREEKB|ALARM|FRSET|,)+)[\\)]?)","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(obfmt)(\\=)(yes|no))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(tioapfx|sosi|trigraph|extatt)(\\=)(yes|no))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"name":"entity.name.function.bms","match":"(?i:(base)(\\=)(maparea))","captures":{"1":{"name":"keyword.verb.a.bms"},"2":{"name":"keyword.operator.b.bms"}}},{"name":"entity.name.function.bms","match":"(?i:(lang)(\\=)(COBOL|ASM|PLI|RPG))","captures":{"1":{"name":"keyword.verb.1.bms"},"2":{"name":"keyword.operator.2.bms"}}},{"match":"(?i:(storage)(\\=)(auto))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(term)(\\=)([a-zA-Z0-9\\-]+))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"name":"constant.numeric.integer.bms","match":"(?![0-9A-Za-z_-])([0-9]+)"},{"name":"variable.bms","match":"^([0-9a-zA-Z\\-_]+)"}]}
1
+ {"name":"bms","scopeName":"source.bms","patterns":[{"name":"comment.line.set.bms","match":"^(\\*.*)$"},{"name":"string.quoted.single.bms","begin":"'","end":"('|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.bms"}},"endCaptures":{"0":{"name":"punctuation.definition.string.bms"}}},{"match":"((?i:attrb)(\\=)\\(((?i:ASKIP|PROT|UNPROT\\s+[0-9]*|UNPROT|BRT|NORM|DRK|DET|IC|FSET|DRT|PROT|NUM|,)*)\\))","captures":{"1":{"name":"keyword.verb.attrb1.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(attrb|initial))(\\=)","captures":{"1":{"name":"keyword.verb.attrb2.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"((?i:MAPATTS|DSATTS)(\\=)([\\(]?(?i:(COLOR|HILIGHT|OUTLINE|PS|SOSI|TRANSP|VALIDN|,)+)[\\)]?))","captures":{"1":{"name":"keyword.verb.mapatts.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"name":"entity.name.function.bms","match":"(?i:UNPROTECTED|UNPROT|PROTECTED|BRIGHT|NORMAL|DARK|FSET|NUMERIC|ASKIP|IC|BRT)"},{"name":"keyword.bms","match":"(?i:DFHMSD|DFHMDI|DFHMDF|END)"},{"match":"((?i:length|occurs|line|column)(\\=)([0-9]+))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"constant.numeric.integer.bms"}}},{"match":"((?i:size|pos)(\\=)(\\()([0-9]+)(\\,)([0-9]+)(\\)))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"keyword.bracket.bms"},"4":{"name":"constant.numeric.integer.bms"},"5":{"name":"keyword.operator.bms"},"6":{"name":"constant.numeric.integer.bms"},"7":{"name":"keyword.bracket.bms"}}},{"match":"(?i:(data)(\\=)(field|block))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(picin|picout)(\\=)('.*'))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"punctuation.definition.string.bms"}}},{"match":"(?i:(case)(\\=)(mixed))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"((?i:type)(\\=)((?i:dsect|map|final|\u0026\\w+|\u0026\u0026\\w+)))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"((?i:justify)(\\=)([\\(]?(?i:left|right|first|last|bottom|space|,)+[\\)]?))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(mode)(\\=)(inout|out|in))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(fold)(\\=)(upper|no|in))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(hilight)(\\=)(off|blink|reverse|underline))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"((?i:color)(\\=)((?i:blue|red|pink|green|turquoise|yellow|neutral)))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"((?i:CTRL)(\\=)([\\(]?(?i:PRINT|FREEKB|ALARM|FRSET|,)+)[\\)]?)","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(obfmt)(\\=)(yes|no))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(tioapfx|sosi|trigraph|extatt)(\\=)(yes|no))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"name":"entity.name.function.bms","match":"(?i:(base)(\\=)(maparea))","captures":{"1":{"name":"keyword.verb.a.bms"},"2":{"name":"keyword.operator.b.bms"}}},{"name":"entity.name.function.bms","match":"(?i:(lang)(\\=)(COBOL|ASM|PLI|RPG))","captures":{"1":{"name":"keyword.verb.1.bms"},"2":{"name":"keyword.operator.2.bms"}}},{"match":"(?i:(storage)(\\=)(auto))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"match":"(?i:(term)(\\=)([a-zA-Z0-9\\-]+))","captures":{"1":{"name":"keyword.verb.bms"},"2":{"name":"keyword.operator.bms"},"3":{"name":"entity.name.function.bms"}}},{"name":"constant.numeric.integer.bms","match":"(?![0-9A-Za-z_-])([0-9]+)"},{"name":"variable.bms","match":"^([0-9a-zA-Z\\-_]+)"}]}
@@ -0,0 +1 @@
1
+ {"name":"BQN","scopeName":"source.bqn","patterns":[{"include":"#bracket"},{"include":"#number"},{"include":"#name"},{"include":"#operator"},{"include":"#variable"},{"include":"#string"},{"include":"#comment"},{"include":"#entity"},{"include":"#subject"}],"repository":{"bracket":{"patterns":[{"name":"meta.bracket.bqn","match":"(\\(|\\))"}]},"comment":{"patterns":[{"name":"comment.line.number-sign.bqn","begin":"#","end":"$","captures":{"0":{"name":"punctuation.definition.comment.bqn"}}}]},"entity":{"patterns":[{"name":"keyword.operator.modifier1.bqn","match":"([˙˜˘¨´˝`⌜⁼]|(‿\\K|\\b|^)_[A-ZÀ-ÖØ-Þa-zß-öø-ÿ𝕣][_A-ZÀ-ÖØ-Þa-zß-öø-ÿ¯π∞0-9]*[^_](\\b|(?=‿)))"}]},"number":{"patterns":[{"name":"constant.numeric.bqn","match":"(?\u003c![A-Z_a-z0-9π∞¯])¯?(¯_*)?((\\d[\\d_]*(\\.\\d[\\d_]*)?|π_*)([eE]_*(¯_*)?\\d[\\d_]*)?|∞_*)(i_*(¯_*)?((\\d[\\d_]*(\\.\\d[\\d_]*)?|π_*)([eE]_*(¯_*)?\\d[\\d_]*)?|∞_*))?"}]},"operator":{"patterns":[{"name":"keyword.control.modifier2.bqn","match":"([∘○⊸⟜⌾⊘◶⎊⎉⚇⍟]|((?:[𝕗𝔽𝕘𝔾𝕨𝕎𝕩𝕏𝕤𝕊𝕣‿])|\\b|^)_[A-ZÀ-ÖØ-Þa-zß-öø-ÿ𝕣][_A-ZÀ-ÖØ-Þa-zß-öø-ÿ¯π∞0-9]*_(\\b|(?=[𝕗𝔽𝕘𝔾𝕨𝕎𝕩𝕏𝕤𝕊𝕣‿])))"}]},"string":{"patterns":[{"name":"string.quoted.double.bqn","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.bqn"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.bqn"}}},{"name":"string.quoted.double.bqn","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.bqn"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.bqn"}}}]},"subject":{"patterns":[{"name":"support.class.bqn","match":"[𝕗𝕘𝕨𝕩𝕤]|•?[a-zß-öø-ÿ][A-ZÀ-ÖØ-Þa-zß-öø-ÿ_0-9π∞¯]*"}]},"variable":{"patterns":[{"name":"variable.language.function.bqn","match":"[𝔽𝔾𝕎𝕏𝕊+\\-×÷⋆√⌊⌈|¬∧∨\u003c\u003e≠=≤≥≡≢⊣⊢⥊∾≍⋈↑↓↕«»⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!⍕⍎]|•?[A-ZÀ-ÖØ-Þ][A-ZÀ-ÖØ-Þa-zß-öø-ÿ_0-9π∞¯]*"}]}}}
@@ -1 +1 @@
1
- {"name":"BrightScript","scopeName":"source.brs","patterns":[{"include":"#entire_language"}],"repository":{"annotation":{"patterns":[{"match":"^\\s*(@)\\s*([a-zA-Z0-9_]+)","captures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"}}},{"name":"meta.decorator.brs","begin":"(@)\\s*([a-zA-Z0-9_]+)\\s*(\\()","end":"(\\))","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"},"3":{"name":"meta.brace.round.brs"}},"endCaptures":{"1":{"name":"meta.brace.round.brs"}}}]},"apostrophe_comment":{"name":"comment.line.apostrophe.brs","match":"('[^\\r\\n]*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"class_declaration":{"match":"(?i:(class)\\s+([a-z0-9_]+)(?:\\s+(extends)(?:\\s+([a-z0-9_]+))?)?)","captures":{"1":{"name":"keyword.other.class.brs"},"2":{"name":"entity.name.type.class.brs"},"3":{"name":"storage.modifier.brs"},"4":{"name":"entity.name.type.class.brs"}}},"class_roku_builtin":{"name":"support.class.brs","match":"(?i:\\bro(R(ss(Parser|Article)|e(sourceManager|ctangle|ad(File|WriteFile)|gistry(Section)?))|G(pio(Button|ControlPort)|lobal)|XML(Element|List)|MessagePort|AppInfo|Array|AssociativeArray|AudioGuide|AudioMetadata|AudioPlayer|AudioResource|Bitmap|Boolean|ByteArray|CaptionRenderer|ChannelStore|CodeRegistrationScreen|Compositor|DataGramSocket|DateTime|DeviceInfo|Double|IntrinsicDouble|EVPCipher|EVPDigest|FileSystem|Float|Font|FontMetrics|FontRegistry|Function|GridScreen|HdmiStatus|HMAC|HttpAgent|ImageCanvas|ImageMetadata|Input|Int|Invalid|KeyboardScreen|List|ListScreen|Localization|LongInteger|MessageDialog|MessagePort|Microphone|OneLineDialog|ParagraphScreen|Path|PinEntryDialog|PosterScreen|ProgramGuide|Regex|Region|Registry|RegistrySection|RSA|Screen|SearchHistory|SearchScreen|SlideShow|SocketAddress|SpringboardScreen|Sprite|StreamSocket|String|SystemLog|TextScreen|TextToSpeech|TextureManager|TextureRequest|Timespan|Tuner|UrlTransfer|VideoPlayer|VideoScreen|XMLElement|XMLList|SGScreen|SGNode|SGNodeEvent|SGScreenEvent|AudioPlayerEvent|CaptionRendererEvent|CECStatusEvent|ChannelStoreEvent|CodeRegistrationScreenEvent|DeviceInfoEvent|FileSystemEvent|GridScreenEvent|HdmiHotPlugEvent|HdmiStatusEvent|ImageCanvasEvent|InputEvent|KeyboardScreenEvent|ListScreenEvent|MessageDialogEvent|MicrophoneEvent|OneLineDialogEvent|ParagraphScreenEvent|PinEntryDialogEvent|PosterScreenEvent|SearchScreenEvent|SlideShowEvent|SocketEvent|SpringboardScreenEvent|SystemLogEvent|TextScreenEvent|TextToSpeechEvent|TextureRequestEvent|TunerEvent|UniversalControlEvent|UrlEvent|VideoPlayerEvent|VideoScreenEvent|B(yteArray|oolean|r(Sub|ightPackage))|S(ystemTime|t(orageInfo|ring( )?)|erialPort( )?)|NetworkConfiguration|C(ontrol(Down( )?|Up|Port)|ecInterface|lockWidget|reateFile)|T(imer|ouchScreen( )?|ext(Field|Widget))|I(RRemote( )?|n(t|valid)|mage(Player|Widget))|D(eviceInfo( )?|at(eTime|agram(Receiver|Sender)))|Url(Transfer|Event)|Video(Mode|Input|Player|Event)|Keyboard(Press( )?| )?|Quadravox(Button( )?|SNS5( )?)|Float|List|A(ssociativeArray|udio(Player|Event)|ppendFile|rray))\\b)"},"comment":{"patterns":[{"include":"#rem_comment"},{"include":"#apostrophe_comment"}]},"component_statement":{"name":"meta.component.brs","begin":"(?i)^[ \t]*(component)\\s+(?:([a-z0-9_]+)|(\".*?\"))(?:\\s+(extends)(?:\\s+(?:([a-z0-9_]+)|(\".*?\")))?)?\\s*","end":"(?i)(?\u003c![_[:alnum:]])(?\u003c!\\.)\\s*(end\\s*component)","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"storage.type.component.brs"},"2":{"name":"entity.name.type.component.brs"},"3":{"name":"string.quoted.double.brs"},"4":{"name":"storage.modifier.extends.brs"},"5":{"name":"entity.name.type.component.brs"},"6":{"name":"string.quoted.double.brs"}},"endCaptures":{"1":{"name":"storage.type.component.brs"}}},"end_class":{"name":"storage.type.class.brs","match":"(?i:\\s*(end\\s*class))"},"end_function":{"name":"keyword.declaration.function","match":"(?i)[ \\t]*end\\s*(sub|function)"},"end_namespace":{"match":"^(?i:\\s*(end\\s*namespace)\\s*(?=['\\n]))","captures":{"1":{"name":"keyword.other.namespace.brs"}}},"end_region_comment":{"name":"keyword.preprocessor.region.brs","match":"^(i?\\s*'\\s*#endregion(\\s*.*)?$)"},"entire_language":{"patterns":[{"include":"#regex"},{"include":"#if_with_paren"},{"include":"#component_statement"},{"include":"#apostrophe_comment"},{"include":"#template_string"},{"include":"#rem_comment"},{"include":"#import_statement"},{"include":"#namespace_declaration"},{"include":"#enum_declaration"},{"include":"#end_namespace"},{"include":"#method"},{"include":"#field"},{"include":"#class_declaration"},{"include":"#end_class"},{"include":"#preprocessor_keywords"},{"include":"#region_comment"},{"include":"#end_region_comment"},{"include":"#global_constants"},{"include":"#keyword_logical_operator"},{"include":"#function_call"},{"include":"#object_properties"},{"include":"#vscode_rale_tracker_entry_comment"},{"include":"#identifiers_with_type_designators"},{"include":"#m_and_global"},{"include":"#keyword_return"},{"include":"#primitive_literal_expression"},{"include":"#function_declaration"},{"include":"#inline_function_declaration"},{"include":"#end_function"},{"include":"#interface_declaration"},{"include":"#storage_types"},{"include":"#loop_keywords"},{"include":"#program_statements"},{"include":"#try_catch"},{"include":"#non_identifier_keywords"},{"include":"#operators"},{"include":"#support_functions"},{"include":"#variables_and_params"},{"include":"#annotation"}]},"enum_declaration":{"name":"meta.enum.declaration.brs","begin":"(?i)\\b(enum)[ \\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[ \\t]*(end[ \\t]*enum)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[ \\t]*(=))?","end":"\r?\n","patterns":[{"include":"#primitive_literal_expression"}],"beginCaptures":{"1":{"name":"variable.object.enummember.brs"},"2":{"name":"keyword.operator.assignment.brs"}}}],"beginCaptures":{"1":{"name":"storage.type.enum.brs"},"2":{"name":"entity.name.type.enum.brs"}},"endCaptures":{"1":{"name":"storage.type.enum.brs"}}},"field":{"match":"(?i:(public|protected|private)\\s+([a-z0-9_]+))","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"variable.object.property.brs"}}},"function_call":{"match":"(?i:\\b([a-z_][a-z0-9_]*)[ \\t]*(?=\\())","captures":{"1":{"name":"entity.name.function.brs"}}},"function_declaration":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function)[^\\w])(?:\\s+([a-z_][a-z0-9_]*))?)","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"global_constants":{"name":"variable.language","match":"(?i:\\b(line_num)\\b)"},"identifiers_with_type_designators":{"name":"entity.name.variable.local.brs","match":"(?i:\\b([a-z_][a-z0-9_]*)[\\$%!#\u0026])"},"if_with_paren":{"begin":"(?i:(?\u003c!\\.)(if)\\s*\\()","end":"\u0008(then)|\n","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"keyword.control.brs"}},"endCaptures":{"1":{"name":"keyword.control.brs"}}},"import_statement":{"match":"(?i:(import)\\s*(\".*\"))","captures":{"1":{"name":"keyword.control.import.brs"},"2":{"name":"string.quoted.double.brs"}}},"inline_function_declaration":{"match":"(?i)[^a-z0-9_\"](function|sub)\\s*\\(","captures":{"1":{"name":"keyword.declaration.function"},"2":{"name":"keyword.declaration.function"}}},"interface_declaration":{"name":"meta.interface.brs","begin":"(?i)\\b[\\s\\t]*(interface)[\\s\\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[\\s\\t]*(end[\\s\\t]*interface)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"include":"#interface_function"},{"include":"#interface_field"}],"beginCaptures":{"1":{"name":"storage.type.interface.brs"},"2":{"name":"entity.name.type.interface.brs"}},"endCaptures":{"1":{"name":"storage.type.interface.brs"}}},"interface_field":{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[\\s\\t]*(as))?","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"variable.object.property.brs"},"2":{"name":"keyword.control.as.brs"}}},"interface_function":{"patterns":[{"include":"#interface_function_with_return_type"},{"include":"#interface_function_plain"}]},"interface_function_plain":{"match":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\())(\\))[\\s\\t]","captures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"interface_function_with_return_type":{"begin":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\()).*?(\\))[\\s\\t]+(as)","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"keyword_logical_operator":{"name":"keyword.operator.logical.word","match":"(?i:\\b(and|or|not)\\b)"},"keyword_return":{"match":"(?i:\\b(return)\\b)","captures":{"1":{"name":"keyword.control.flow.return.brs"}}},"loop_keywords":{"name":"keyword.control.loop.brs","match":"(?i:(?\u003c!\\.)(continue\\s+(for|while)\\b))"},"m_and_global":{"match":"(?i:(?\u003c!\\.)\\b(m|global|super)\\b)","captures":{"1":{"name":"keyword.other.this.brs"}}},"method":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function)[^\\w])(?:\\s+([a-z_][a-z0-9_]*))?)","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"namespace_declaration":{"begin":"(?i:(namespace))\\s+","end":"[\\s'\\n]","patterns":[{"name":"entity.name.type.namespace.brs","match":"(?i:([a-z0-9_]+))"},{"name":"punctuation.accessor.brs","match":"\\."}],"beginCaptures":{"1":{"name":"keyword.other.namespace.brs"}}},"non_identifier_keywords":{"match":"(?i:[^\\.\\w\\\"](then|stop|run|end|each|next|throw)(?!(\\s*:)|[\\d\\w_]))","captures":{"1":{"name":"keyword.control.brs"}}},"object_properties":{"match":"(?i:(?\u003c=\\.)([a-z0-9_][a-z0-9_\\$%!#\u0026]*))","captures":{"1":{"name":"variable.other.object.property.brs"}}},"operators":{"name":"keyword.operator.brs","match":"=|\u003e=|\u003czz|\u003e|\u003c|\u003c\u003e|\\+|-|\\*|\\/|\\^|\u0026|\\b(?i:(And|Not|Or|Mod))\\b"},"preprocessor_keywords":{"patterns":[{"name":"keyword.preprocessor.if.brs","match":"(?i:(#const))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#if))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#else\\s*if))"},{"name":"keyword.preprocessor.endif.brs","match":"(?i:(#end\\s*if))"},{"name":"keyword.preprocessor.else.brs","match":"(?i:(#else))"}]},"primitive_literal_expression":{"patterns":[{"name":"string.quoted.double.brs","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.brs","match":"\"\""},{"include":"#class_roku_builtin"}]},{"name":"constant.numeric.brs","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b"},{"patterns":[{"name":"constant.language.boolean.true.brs","match":"(?i)\\b(true)\\b"},{"name":"constant.language.boolean.false.brs","match":"(?i)\\b(false)\\b"}]},{"match":"(?i:\\b(invalid)\\b)","captures":{"1":{"name":"constant.language.null.brs"}}}]},"program_statements":{"name":"keyword.control.brs","match":"(?i:(?\u003c!\\.)(if|else\\s*if|else|print|library|while|for\\s+each|for|end\\s*for|exit\\s+for|end\\s*while|exit\\s*while|end\\s*if|to|step|in|goto|rem|as)\\b)"},"regex":{"patterns":[{"name":"string.regexp.brs","begin":"(?\u003c!\\+\\+|--|})(?\u003c=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=\u003e|\u0026\u0026|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}},{"name":"string.regexp.brs","begin":"((?\u003c![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?\u003c=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}}]},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"match":"\\\\[1-9]\\d*|\\\\k\u003c([a-zA-Z_$][\\w$]*)\u003e","captures":{"0":{"name":"keyword.other.back-reference.regexp"},"1":{"name":"variable.other.regexp"}}},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!)|(\\?\\|)|(\\?\u003c=)|(\\?\u003c!))","end":"(\\))","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"},"5":{"name":"meta.assertion.look-behind.regexp"},"6":{"name":"meta.assertion.negative-look-behind.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}}},{"name":"meta.group.regexp","begin":"\\((?:(\\?[:\u003e])|(?:\\?\u003c([a-zA-Z_$][\\w$]*)\u003e))?","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"},"2":{"name":"variable.other.regexp"}},"endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}}},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}}},{"include":"#regex-character-class"}]},"region_comment":{"match":"(?i:^\\s*('\\s*#region)(?:(\\s+.*)?))$","captures":{"1":{"name":"keyword.preprocessor.region.brs"},"2":{"name":"string.unquoted.preprocessor.message.brs"}}},"rem_comment":{"name":"comment.line.rem.brs","match":"^\\s*?(?i:rem\\s.*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"storage_types":{"match":"(?i:\\b(boolean|integer|longinteger|float|double|string|object|function|sub|interface|dynamic|brsub|dim|const)\\b)","captures":{"1":{"name":"storage.type.brs"}}},"support_builtin_functions":{"name":"support.function.brs","match":"(?i:\\b(GetLastRun(RuntimeError|CompileError)|Rnd|Box|Type|objfun|pos|eval)\\b)"},"support_component_functions":{"name":"support.function.component.brs","match":"(?i:\\b(R(ight|e(set(Index)?|ad(B(yte(IfAvailable)?|lock)|File|Line)?|move(Head|Tail|Index)))|Ge(nXML(Header)?|t(Res(ource|ponse(Headers|Code))|X|M(i(nute|llisecond)|o(nth|de(l)?)|essage)|B(yte(sPerBlock|Array)|o(o(tVersion(Number)?|lean)|dy))|S(t(orageCardInfo|a(ndards|tusByte)|ring(Count)?)|i(zeInMegabytes|gnedByte)|ource(Host|Identity|Port)|ub|ec(tionList|ond)|afe(X|Height|Y|Width))|H(o(stName|ur)|e(ight|ad))|Y(ear)?|N(extArticle|ame(dElements)?)|C(hildElements|ontrols|urrent(Standard|Con(trolValue|fig)|Input))|T(i(tle|me(Server|Zone))|o(String|File)|ext|ail)|I(n(t|dex|puts)|dentity)|ZoneDateTime|D(e(scription|vice(BootCount|Name|U(niqueId|ptime)))|a(y(OfWeek)?|ta))|U(se(dInMegabytes|rData)|tcDateTime)|Ent(ityEncode|ry)|V(ersion(Number)?|alue)|KeyList|F(ileSystemType|loat|a(ilureReason|mily)|reeInMegabytes)|W(holeState|idth)|LocalDateTime|Attributes))|M(id|D5|ap(StereoOutput(Aux)?|DigitalOutput))|Boolean|S(h(ift|ow)|canWiFi|t((Clear|Display)?|art|r(i(ng)?)?)|implify|ubtract(Milliseconds|Seconds)|e(nd(RawMessage|B(yte|lock)|Line)?|t(R(ollOverRegion|e(s(ize|olution)|c(tangle|eiveEol)))|X|M(i(n(imumTransferRate|ute)|llisecond)|o(nth|de(CaseSensitive)?)|ultiscreenBezel)|B(yteEventPort|o(olean|dy)|a(ckground(Bitmap|Color)|udRate))|S(t(andard|ring)|ub|e(ndEol|cond)|afeTextRegion)|H(o(stName|ur)|eight)|Y(ear)?|Name|C(hannelVolumes(Aux)?|ontrolValue|ursor(Bitmap|Pos(ition)?))|Time(Server|Zone)?|I(n(t|put)|P4(Gateway|Broadcast|Netmask|Address))|OutputState|D(HCP|omain|e(stination|fault(Mode|Transistion))|a(y(OfWeek)?|te(Time)?))|U(ser(Data|AndPassword)|tcDateTime|rl)|P(o(werSaveMode|rt)|assword|roxy)|E(ntry|cho|ol)|V(iewMode|olume(Aux)?)|F(o(nt|r(egroundColor|groundColor))|l(oat|ashRate))|W(holeState|i(dth|Fi(Passphrase|ESSID)))|L(ineEventPort|o(calDateTime|opMode)|auguage)|Audio(Mode(Aux)?|Stream(Aux)?|Output(Aux)?))|ek(Relative|ToEnd|Absolute)))|H(ide|ead|asAttribute)|N(ormalize|ext)|C(hr|ount|urrentPosition|l(s|ear(Region|Events)?))|T(o(Base64String|HexString|kenize|AsciiString)|estInter(netConnectivity|face)|rim)|I(s(MousePresent|N(ext|ame)|InputActive|Empty|Valid|LittleEndianCPU)|n(str|te(ger)|valid))|Object|D(ynamic|isplay(Preload|File(Ex)?)|o(uble|esExist)|elete)|U(n(shift|pack)|Case)|P(o(st(Message|From(String|File))|p(String(s)?)?)|ush(String)?|eek|lay(StaticImage|File)?|arse(String|File)?|reloadFile(Ex)?)|E(nable(R(ollover|egion)|Cursor|Input|Output)|xists)|Void|F(indIndex|unction|l(oat|ush)|rom(Base64String|HexString|AsciiString))|W(hile|aitMessage|rite(File)?)|L(ookup|e(n|ft))|A(s(ync(GetTo(String|File)|Head|PostFrom(String|File)|Flush)|c)?|tEof|dd(Re(ctangle(Region|_region)|place)|Milliseconds|BodyElement|Seconds|Head(er)?|CircleRegion|Tail|DNSServer|E(vent|lement(WithBody)?)|Attribute)|pp(end(String|File)?|ly))|ToStr)\\b)"},"support_functions":{"patterns":[{"include":"#support_builtin_functions"},{"include":"#support_global_functions"},{"include":"#support_global_string_functions"},{"include":"#support_global_math_functions"},{"include":"#support_component_functions"}]},"support_global_functions":{"name":"support.function.brs","match":"(?i:\\b(Re(adAsciiFile|bootSystem)|GetInterface|MatchFiles|Sleep|C(opyFile|reate(Directory|Object))|Delete(Directory|File)|UpTime|FormatDrive|ListDir|W(ait|riteAsciiFile))\\b)"},"support_global_math_functions":{"name":"support.function.brs","match":"(?i:\\b(S(in|qr|gn)|C(sng|dbl|os)|Tan|Int|Exp|Fix|Log|A(tn|bs))\\b)"},"support_global_string_functions":{"name":"support.function.brs","match":"(?i:\\b(Right|Mid|Str(i(ng(i)?)?)?|Chr|Instr|UCase|Val|Asc|L(Case|e(n|ft)))\\b)"},"template_string":{"begin":"(`)","end":"(`)","patterns":[{"begin":"(\\$\\{)","end":"(\\})","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end"}}},{"name":"string.template.brs","match":"(.)"}],"beginCaptures":{"1":{"name":"string.template.brs"}},"endCaptures":{"1":{"name":"string.template.brs"}}},"try_catch":{"name":"keyword.control.trycatch.brs","match":"(?i:\\b(try|catch|(end[ \\t]*try))\\b)"},"type_expression":{"patterns":[{"match":"(?i)(boolean|integer|longinteger|float|double|string)","captures":{"1":{"name":"storage.type.brs"}}},{"match":"(?i)\\b([a-z0-9_]+)","captures":{"1":{"name":"support.type.brs entity.name.type.brs"}}}]},"variables_and_params":{"match":"(?i:(?:\\b(new)\\s)?\\b(?\u003c!\\.)([a-z_][a-z0-9_\\$%!#]*)\\b)","captures":{"1":{"name":"keyword.operator.new.brs"},"2":{"name":"entity.name.variable.local.brs"}}},"vscode_rale_tracker_entry_comment":{"name":"keyword.preprocessor.brs","match":"('\\s*vscode_rale_tracker_entry[^\\S\\r\\n]*)"}}}
1
+ {"name":"BrightScript","scopeName":"source.brs","patterns":[{"include":"#entire_language"}],"repository":{"alias_statement":{"match":"(?i:(alias)\\s+([a-z0-9_]+)\\s*(=)\\s*)","captures":{"1":{"name":"keyword.declaration.alias.brs"},"2":{"name":"entity.name.variable.brs"},"3":{"name":"keyword.operator.assignment.brs"}}},"annotation":{"patterns":[{"match":"^\\s*(@)\\s*([a-zA-Z0-9_]+)","captures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"}}},{"name":"meta.decorator.brs","begin":"(@)\\s*([a-zA-Z0-9_]+)\\s*(\\()","end":"(\\))","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"},"3":{"name":"meta.brace.round.brs"}},"endCaptures":{"1":{"name":"meta.brace.round.brs"}}}]},"apostrophe_comment":{"name":"comment.line.apostrophe.brs","match":"('[^\\r\\n]*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"class_declaration":{"match":"(?i:(class)\\s+([a-z0-9_]+)(?:\\s+(extends)(?:\\s+([a-z0-9_]+))?)?)","captures":{"1":{"name":"keyword.other.class.brs"},"2":{"name":"entity.name.type.class.brs"},"3":{"name":"storage.modifier.brs"},"4":{"name":"entity.name.type.class.brs"}}},"class_roku_builtin":{"name":"support.class.brs","match":"(?i:\\bro(R(ss(Parser|Article)|e(sourceManager|ctangle|ad(File|WriteFile)|gistry(Section)?))|G(pio(Button|ControlPort)|lobal)|XML(Element|List)|MessagePort|AppInfo|Array|AssociativeArray|AudioGuide|AudioMetadata|AudioPlayer|AudioResource|Bitmap|Boolean|ByteArray|CaptionRenderer|ChannelStore|CodeRegistrationScreen|Compositor|DataGramSocket|DateTime|DeviceInfo|Double|IntrinsicDouble|EVPCipher|EVPDigest|FileSystem|Float|Font|FontMetrics|FontRegistry|Function|GridScreen|HdmiStatus|HMAC|HttpAgent|ImageCanvas|ImageMetadata|Input|Int|Invalid|KeyboardScreen|List|ListScreen|Localization|LongInteger|MessageDialog|MessagePort|Microphone|OneLineDialog|ParagraphScreen|Path|PinEntryDialog|PosterScreen|ProgramGuide|Regex|Region|Registry|RegistrySection|RSA|Screen|SearchHistory|SearchScreen|SlideShow|SocketAddress|SpringboardScreen|Sprite|StreamSocket|String|SystemLog|TextScreen|TextToSpeech|TextureManager|TextureRequest|Timespan|Tuner|UrlTransfer|VideoPlayer|VideoScreen|XMLElement|XMLList|SGScreen|SGNode|SGNodeEvent|SGScreenEvent|AudioPlayerEvent|CaptionRendererEvent|CECStatusEvent|ChannelStoreEvent|CodeRegistrationScreenEvent|DeviceInfoEvent|FileSystemEvent|GridScreenEvent|HdmiHotPlugEvent|HdmiStatusEvent|ImageCanvasEvent|InputEvent|KeyboardScreenEvent|ListScreenEvent|MessageDialogEvent|MicrophoneEvent|OneLineDialogEvent|ParagraphScreenEvent|PinEntryDialogEvent|PosterScreenEvent|SearchScreenEvent|SlideShowEvent|SocketEvent|SpringboardScreenEvent|SystemLogEvent|TextScreenEvent|TextToSpeechEvent|TextureRequestEvent|TunerEvent|UniversalControlEvent|UrlEvent|VideoPlayerEvent|VideoScreenEvent|B(yteArray|oolean|r(Sub|ightPackage))|S(ystemTime|t(orageInfo|ring( )?)|erialPort( )?)|NetworkConfiguration|C(ontrol(Down( )?|Up|Port)|ecInterface|lockWidget|reateFile)|T(imer|ouchScreen( )?|ext(Field|Widget))|I(RRemote( )?|n(t|valid)|mage(Player|Widget))|D(eviceInfo( )?|at(eTime|agram(Receiver|Sender)))|Url(Transfer|Event)|Video(Mode|Input|Player|Event)|Keyboard(Press( )?| )?|Quadravox(Button( )?|SNS5( )?)|Float|List|A(ssociativeArray|udio(Player|Event)|ppendFile|rray))\\b)"},"comment":{"patterns":[{"include":"#rem_comment"},{"include":"#apostrophe_comment"}]},"component_statement":{"name":"meta.component.brs","begin":"(?i)^[ \t]*(component)\\s+(?:([a-z0-9_]+)|(\".*?\"))(?:\\s+(extends)(?:\\s+(?:([a-z0-9_]+)|(\".*?\")))?)?\\s*","end":"(?i)(?\u003c![_[:alnum:]])(?\u003c!\\.)\\s*(end\\s*component)","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"storage.type.component.brs"},"2":{"name":"entity.name.type.component.brs"},"3":{"name":"string.quoted.double.brs"},"4":{"name":"storage.modifier.extends.brs"},"5":{"name":"entity.name.type.component.brs"},"6":{"name":"string.quoted.double.brs"}},"endCaptures":{"1":{"name":"storage.type.component.brs"}}},"end_class":{"name":"storage.type.class.brs","match":"(?i:\\s*(end\\s*class))"},"end_function":{"name":"keyword.declaration.function","match":"(?i)[ \\t]*end\\s*(sub|function)"},"end_namespace":{"match":"^(?i:\\s*(end\\s*namespace)\\s*(?=['\\n]))","captures":{"1":{"name":"keyword.other.namespace.brs"}}},"end_region_comment":{"name":"keyword.preprocessor.region.brs","match":"^(i?\\s*'\\s*#endregion(\\s*.*)?$)"},"entire_language":{"patterns":[{"include":"#regex"},{"include":"#if_with_paren"},{"include":"#component_statement"},{"include":"#apostrophe_comment"},{"include":"#template_string"},{"include":"#rem_comment"},{"include":"#import_statement"},{"include":"#alias_statement"},{"include":"#namespace_declaration"},{"include":"#enum_declaration"},{"include":"#end_namespace"},{"include":"#method"},{"include":"#field"},{"include":"#class_declaration"},{"include":"#end_class"},{"include":"#preprocessor_keywords"},{"include":"#region_comment"},{"include":"#end_region_comment"},{"include":"#global_constants"},{"include":"#keyword_logical_operator"},{"include":"#function_call"},{"include":"#object_properties"},{"include":"#vscode_rale_tracker_entry_comment"},{"include":"#identifiers_with_type_designators"},{"include":"#m_and_global"},{"include":"#keyword_return"},{"include":"#primitive_literal_expression"},{"include":"#function_declaration"},{"include":"#inline_function_declaration"},{"include":"#end_function"},{"include":"#interface_declaration"},{"include":"#storage_types"},{"include":"#loop_keywords"},{"include":"#program_statements"},{"include":"#try_catch"},{"include":"#non_identifier_keywords"},{"include":"#operators"},{"include":"#support_functions"},{"include":"#variables_and_params"},{"include":"#annotation"}]},"enum_declaration":{"name":"meta.enum.declaration.brs","begin":"(?i)\\b(enum)[ \\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[ \\t]*(end[ \\t]*enum)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[ \\t]*(=))?","end":"\r?\n","patterns":[{"include":"#primitive_literal_expression"}],"beginCaptures":{"1":{"name":"variable.object.enummember.brs"},"2":{"name":"keyword.operator.assignment.brs"}}}],"beginCaptures":{"1":{"name":"storage.type.enum.brs"},"2":{"name":"entity.name.type.enum.brs"}},"endCaptures":{"1":{"name":"storage.type.enum.brs"}}},"field":{"match":"(?i:(public|protected|private)\\s+([a-z0-9_]+))","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"variable.object.property.brs"}}},"function_call":{"match":"(?i:\\b([a-z_][a-z0-9_]*)[ \\t]*(?=\\())","captures":{"1":{"name":"entity.name.function.brs"}}},"function_declaration":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function)[^\\w])(?:\\s+([a-z_][a-z0-9_]*))?)","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"global_constants":{"name":"variable.language","match":"(?i:\\b(line_num)\\b)"},"identifiers_with_type_designators":{"name":"entity.name.variable.local.brs","match":"(?i:\\b([a-z_][a-z0-9_]*)[\\$%!#\u0026])"},"if_with_paren":{"begin":"(?i:(?\u003c!\\.)(if)\\s*\\()","end":"\u0008(then)|\n","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"keyword.control.brs"}},"endCaptures":{"1":{"name":"keyword.control.brs"}}},"import_statement":{"match":"(?i:(import)\\s*(\".*\"))","captures":{"1":{"name":"keyword.control.import.brs"},"2":{"name":"string.quoted.double.brs"}}},"inline_function_declaration":{"match":"(?i)[^a-z0-9_\"](function|sub)\\s*\\(","captures":{"1":{"name":"keyword.declaration.function"},"2":{"name":"keyword.declaration.function"}}},"interface_declaration":{"name":"meta.interface.brs","begin":"(?i)\\b[\\s\\t]*(interface)[\\s\\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[\\s\\t]*(end[\\s\\t]*interface)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"include":"#interface_function"},{"include":"#interface_field"}],"beginCaptures":{"1":{"name":"storage.type.interface.brs"},"2":{"name":"entity.name.type.interface.brs"}},"endCaptures":{"1":{"name":"storage.type.interface.brs"}}},"interface_field":{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[\\s\\t]*(as))?","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"variable.object.property.brs"},"2":{"name":"keyword.control.as.brs"}}},"interface_function":{"patterns":[{"include":"#interface_function_with_return_type"},{"include":"#interface_function_plain"}]},"interface_function_plain":{"match":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\())(\\))[\\s\\t]","captures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"interface_function_with_return_type":{"begin":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\()).*?(\\))[\\s\\t]+(as)","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"keyword_logical_operator":{"name":"keyword.operator.logical.word","match":"(?i:\\b(and|or|not)\\b)"},"keyword_return":{"match":"(?i:\\b(return)\\b)","captures":{"1":{"name":"keyword.control.flow.return.brs"}}},"loop_keywords":{"name":"keyword.control.loop.brs","match":"(?i:(?\u003c!\\.)(continue\\s+(for|while)\\b))"},"m_and_global":{"match":"(?i:(?\u003c!\\.)\\b(m|global|super)\\b)","captures":{"1":{"name":"keyword.other.this.brs"}}},"method":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function)[^\\w])(?:\\s+([a-z_][a-z0-9_]*))?)","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"namespace_declaration":{"begin":"(?i:(namespace))\\s+","end":"[\\s'\\n]","patterns":[{"name":"entity.name.type.namespace.brs","match":"(?i:([a-z0-9_]+))"},{"name":"punctuation.accessor.brs","match":"\\."}],"beginCaptures":{"1":{"name":"keyword.other.namespace.brs"}}},"non_identifier_keywords":{"match":"(?i:[^\\.\\w\\\"](then|stop|run|end|each|next|throw)(?!(\\s*:)|[\\d\\w_]))","captures":{"1":{"name":"keyword.control.brs"}}},"object_properties":{"match":"(?i:(?\u003c=\\.)([a-z0-9_][a-z0-9_\\$%!#\u0026]*))","captures":{"1":{"name":"variable.other.object.property.brs"}}},"operators":{"name":"keyword.operator.brs","match":"=|\u003e=|\u003czz|\u003e|\u003c|\u003c\u003e|\\+|-|\\*|\\/|\\^|\u0026|\\b(?i:(And|Not|Or|Mod))\\b"},"preprocessor_keywords":{"patterns":[{"name":"keyword.preprocessor.const.brs","match":"(?i:(#[ \t]*const))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#[ \t]*if))"},{"name":"keyword.preprocessor.elseif.brs","match":"(?i:(#[ \t]*else[ \t]*if))"},{"name":"keyword.preprocessor.endif.brs","match":"(?i:(#[ \t]*end[ \t]*if))"},{"name":"keyword.preprocessor.else.brs","match":"(?i:(#[ \t]*else))"},{"name":"keyword.preprocessor.error.brs","match":"(?i:(#[ \t]*error))"}]},"primitive_literal_expression":{"patterns":[{"name":"string.quoted.double.brs","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.brs","match":"\"\""},{"include":"#class_roku_builtin"}]},{"name":"constant.numeric.brs","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b"},{"patterns":[{"name":"constant.language.boolean.true.brs","match":"(?i)\\b(true)\\b"},{"name":"constant.language.boolean.false.brs","match":"(?i)\\b(false)\\b"}]},{"match":"(?i:\\b(invalid)\\b)","captures":{"1":{"name":"constant.language.null.brs"}}}]},"program_statements":{"name":"keyword.control.brs","match":"(?i:(?\u003c!\\.)(if|else\\s*if|else|print|library|while|for\\s+each|for|end\\s*for|exit\\s+for|end\\s*while|exit\\s*while|end\\s*if|to|step|in|goto|rem|as)\\b)"},"regex":{"patterns":[{"name":"string.regexp.brs","begin":"(?\u003c!\\+\\+|--|})(?\u003c=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=\u003e|\u0026\u0026|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}},{"name":"string.regexp.brs","begin":"((?\u003c![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?\u003c=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}}]},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"match":"\\\\[1-9]\\d*|\\\\k\u003c([a-zA-Z_$][\\w$]*)\u003e","captures":{"0":{"name":"keyword.other.back-reference.regexp"},"1":{"name":"variable.other.regexp"}}},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!)|(\\?\\|)|(\\?\u003c=)|(\\?\u003c!))","end":"(\\))","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"},"5":{"name":"meta.assertion.look-behind.regexp"},"6":{"name":"meta.assertion.negative-look-behind.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}}},{"name":"meta.group.regexp","begin":"\\((?:(\\?[:\u003e])|(?:\\?\u003c([a-zA-Z_$][\\w$]*)\u003e))?","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"},"2":{"name":"variable.other.regexp"}},"endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}}},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}}},{"include":"#regex-character-class"}]},"region_comment":{"match":"(?i:^\\s*('\\s*#region)(?:(\\s+.*)?))$","captures":{"1":{"name":"keyword.preprocessor.region.brs"},"2":{"name":"string.unquoted.preprocessor.message.brs"}}},"rem_comment":{"name":"comment.line.rem.brs","match":"^\\s*?(?i:rem\\s.*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"storage_types":{"match":"(?i:\\b(boolean|integer|longinteger|float|double|string|object|function|sub|interface|dynamic|brsub|dim|const)\\b)","captures":{"1":{"name":"storage.type.brs"}}},"support_builtin_functions":{"name":"support.function.brs","match":"(?i:\\b(GetLastRun(RuntimeError|CompileError)|Rnd|Box|Type|objfun|pos|eval)\\b)"},"support_component_functions":{"name":"support.function.component.brs","match":"(?i:\\b(R(ight|e(set(Index)?|ad(B(yte(IfAvailable)?|lock)|File|Line)?|move(Head|Tail|Index)))|Ge(nXML(Header)?|t(Res(ource|ponse(Headers|Code))|X|M(i(nute|llisecond)|o(nth|de(l)?)|essage)|B(yte(sPerBlock|Array)|o(o(tVersion(Number)?|lean)|dy))|S(t(orageCardInfo|a(ndards|tusByte)|ring(Count)?)|i(zeInMegabytes|gnedByte)|ource(Host|Identity|Port)|ub|ec(tionList|ond)|afe(X|Height|Y|Width))|H(o(stName|ur)|e(ight|ad))|Y(ear)?|N(extArticle|ame(dElements)?)|C(hildElements|ontrols|urrent(Standard|Con(trolValue|fig)|Input))|T(i(tle|me(Server|Zone))|o(String|File)|ext|ail)|I(n(t|dex|puts)|dentity)|ZoneDateTime|D(e(scription|vice(BootCount|Name|U(niqueId|ptime)))|a(y(OfWeek)?|ta))|U(se(dInMegabytes|rData)|tcDateTime)|Ent(ityEncode|ry)|V(ersion(Number)?|alue)|KeyList|F(ileSystemType|loat|a(ilureReason|mily)|reeInMegabytes)|W(holeState|idth)|LocalDateTime|Attributes))|M(id|D5|ap(StereoOutput(Aux)?|DigitalOutput))|Boolean|S(h(ift|ow)|canWiFi|t((Clear|Display)?|art|r(i(ng)?)?)|implify|ubtract(Milliseconds|Seconds)|e(nd(RawMessage|B(yte|lock)|Line)?|t(R(ollOverRegion|e(s(ize|olution)|c(tangle|eiveEol)))|X|M(i(n(imumTransferRate|ute)|llisecond)|o(nth|de(CaseSensitive)?)|ultiscreenBezel)|B(yteEventPort|o(olean|dy)|a(ckground(Bitmap|Color)|udRate))|S(t(andard|ring)|ub|e(ndEol|cond)|afeTextRegion)|H(o(stName|ur)|eight)|Y(ear)?|Name|C(hannelVolumes(Aux)?|ontrolValue|ursor(Bitmap|Pos(ition)?))|Time(Server|Zone)?|I(n(t|put)|P4(Gateway|Broadcast|Netmask|Address))|OutputState|D(HCP|omain|e(stination|fault(Mode|Transistion))|a(y(OfWeek)?|te(Time)?))|U(ser(Data|AndPassword)|tcDateTime|rl)|P(o(werSaveMode|rt)|assword|roxy)|E(ntry|cho|ol)|V(iewMode|olume(Aux)?)|F(o(nt|r(egroundColor|groundColor))|l(oat|ashRate))|W(holeState|i(dth|Fi(Passphrase|ESSID)))|L(ineEventPort|o(calDateTime|opMode)|auguage)|Audio(Mode(Aux)?|Stream(Aux)?|Output(Aux)?))|ek(Relative|ToEnd|Absolute)))|H(ide|ead|asAttribute)|N(ormalize|ext)|C(hr|ount|urrentPosition|l(s|ear(Region|Events)?))|T(o(Base64String|HexString|kenize|AsciiString)|estInter(netConnectivity|face)|rim)|I(s(MousePresent|N(ext|ame)|InputActive|Empty|Valid|LittleEndianCPU)|n(str|te(ger)|valid))|Object|D(ynamic|isplay(Preload|File(Ex)?)|o(uble|esExist)|elete)|U(n(shift|pack)|Case)|P(o(st(Message|From(String|File))|p(String(s)?)?)|ush(String)?|eek|lay(StaticImage|File)?|arse(String|File)?|reloadFile(Ex)?)|E(nable(R(ollover|egion)|Cursor|Input|Output)|xists)|Void|F(indIndex|unction|l(oat|ush)|rom(Base64String|HexString|AsciiString))|W(hile|aitMessage|rite(File)?)|L(ookup|e(n|ft))|A(s(ync(GetTo(String|File)|Head|PostFrom(String|File)|Flush)|c)?|tEof|dd(Re(ctangle(Region|_region)|place)|Milliseconds|BodyElement|Seconds|Head(er)?|CircleRegion|Tail|DNSServer|E(vent|lement(WithBody)?)|Attribute)|pp(end(String|File)?|ly))|ToStr)\\b)"},"support_functions":{"patterns":[{"include":"#support_builtin_functions"},{"include":"#support_global_functions"},{"include":"#support_global_string_functions"},{"include":"#support_global_math_functions"},{"include":"#support_component_functions"}]},"support_global_functions":{"name":"support.function.brs","match":"(?i:\\b(Re(adAsciiFile|bootSystem)|GetInterface|MatchFiles|Sleep|C(opyFile|reate(Directory|Object))|Delete(Directory|File)|UpTime|FormatDrive|ListDir|W(ait|riteAsciiFile))\\b)"},"support_global_math_functions":{"name":"support.function.brs","match":"(?i:\\b(S(in|qr|gn)|C(sng|dbl|os)|Tan|Int|Exp|Fix|Log|A(tn|bs))\\b)"},"support_global_string_functions":{"name":"support.function.brs","match":"(?i:\\b(Right|Mid|Str(i(ng(i)?)?)?|Chr|Instr|UCase|Val|Asc|L(Case|e(n|ft)))\\b)"},"template_string":{"begin":"(`)","end":"(`)","patterns":[{"begin":"(\\$\\{)","end":"(\\})","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end"}}},{"name":"string.template.brs","match":"(.)"}],"beginCaptures":{"1":{"name":"string.template.brs"}},"endCaptures":{"1":{"name":"string.template.brs"}}},"try_catch":{"name":"keyword.control.trycatch.brs","match":"(?i:\\b(try|catch|(end[ \\t]*try))\\b)"},"type_expression":{"patterns":[{"match":"(?i)(boolean|integer|longinteger|float|double|string)","captures":{"1":{"name":"storage.type.brs"}}},{"match":"(?i)\\b([a-z0-9_]+)","captures":{"1":{"name":"support.type.brs entity.name.type.brs"}}}]},"variables_and_params":{"match":"(?i:(?:\\b(new)\\s)?\\b(?\u003c!\\.)([a-z_][a-z0-9_\\$%!#]*)\\b)","captures":{"1":{"name":"keyword.operator.new.brs"},"2":{"name":"entity.name.variable.local.brs"}}},"vscode_rale_tracker_entry_comment":{"name":"keyword.preprocessor.brs","match":"('\\s*vscode_rale_tracker_entry[^\\S\\r\\n]*)"}}}
@@ -1 +1 @@
1
- {"name":"Clarion","scopeName":"source.clarion","patterns":[{"include":"#comments"},{"include":"#classLabels"},{"include":"#labels"},{"include":"#langConstants"},{"include":"#langProps"},{"include":"#langFunctions"},{"include":"#userVars"},{"include":"#implicits"},{"include":"#hardReservedKeywords"},{"include":"#softReservedKeywords"},{"include":"#directives"},{"include":"#baseTypes"},{"include":"#specialTypes"},{"include":"#strings"},{"include":"#attributes"},{"include":"#operators"},{"include":"#currencyInPicture"},{"include":"#numericConstants"}],"repository":{"attributes":{"name":"entity.other.attribute-name.clarion","match":"\\b(?i:ABOVE|ABSOLUTE|ALONE|ALRT|ANGLE|AT|AUTO|AUTOSIZE|AVE|BELOW|BEVEL|BINARY|BINDABLE|BITMAP|BOXED|C|CAP|CENTER|CENTERED|CNT|COLOR|COLUMN|COM|COMPATIBILITY|CONST|CURSOR|DEFAULT|DELAY|DERIVED|DIM|DLL|DOCUMENT|DOCK|DOCKED|DOWN|DRAGID|DRIVER|DROP|DROPID|DUP|ENCRYPT|EXPAND|EXTEND|EXTERNAL|FILL|FILTER|FIRST|FIX|FIXED|FLAT|FONT|FROM|FULL|GLOBALCLASS|GRAY|GRID|HIDE|HLP|HSCROLL|HVSCROLL|ICON|ICONIZE|IMM|IMPLEMENTS|INNER|INS|LANDSCAPE|LAST|LATE|LAYOUT|LENGTH|LFT|LINEWIDTH|LINK|LOCATE|MARK|MASK|MAX|MAXIMIZE|MDI|META|MIN|MM|MODAL|MSG|NAME|NOBAR|NOCASE|NOFRAME|NOMEMO|NOMERGE|NOSHEET|OEM|OPT|ORDER|OUTER|OVER|OVR|OWNER|PAGE|PAGEAFTER|PAGEBEFORE|PALETTE|PAPER|PASCAL|PASSWORD|POINTS|PRE|PREVIEW|PRIMARY|PRIVATE|PROC|PROTECTED|RANGE|RAW|READONLY|RECLAIM|REPEAT|REPLACE|REQ|RESIZE|SCROLL|SINGLE|SMOOTH|SPREAD|STATIC|STD|STEP|STRETCH|SUM|SUPPRESS|TALLY|TARGET|THOUS|TILED|TIMER|TIP|TOGETHER|TOOLBOX|TRN|UP|UPR|USE|VALUE|VERTICAL|VCR|VIRTUAL|VSCROLL|WALLPAPER|WIDTH|WITHNEXT|WITHPRIOR|WIZARD|WRAP|ZOOM|CHECK|DOUBLE|SEPARATOR|PAGENO|RTF|SYSTEM|TYPE|COM|)\\b"},"baseTypes":{"name":"storage.type.base-types.clarion","match":"\\b(?i:ANY|ASTRING|BFLOAT4|BFLOAT8|BLOB|MEMO|BOOL|BSTRING|BYTE|CSTRING|DATE|DECIMAL|DOUBLE|FLOAT4|LONG|LIKE|PDECIMAL|PSTRING|REAL|SHORT|SIGNED|SREAL|STRING|TIME|ULONG|UNSIGNED|USHORT|VARIANT)\\b"},"classLabels":{"name":"entity.name.class.clarion","match":"^[A-Za-z_][A-Za-z0-9_:]*\\.([A-Za-z_][A-Za-z0-9_:\\.]*)\\s","captures":{"1":{"name":"entity.other.inherited-class.clarion"}}},"comments":{"name":"comment.line.clarion","match":"(\\!|\\|).*"},"currencyInPicture":{"name":"constant.numeric.clarion","begin":"@[Nn][\\-]?[0-9\\.]*\\~","end":"\\~"},"directives":{"name":"storage.modifier.directives.clarion","match":"\\b(?i:ASSERT|BEGIN|COMPILE|EQUATE|INCLUDE|ITEMIZE|OMIT|ONCE|SECTION|SIZE)\\b"},"hardReservedKeywords":{"name":"keyword.clarion","match":"\\b(?i:ACCEPT|AND|BREAK|BY|CASE|CHOOSE|CYCLE|DO|ELSE|ELSIF|END|EXECUTE|EXIT|FUNCTION|GOTO|IF|LOOP|MEMBER|NEW|NOT|OF|OR|OROF|PARENT|PROCEDURE|PROGRAM|RETURN|ROUTINE|SELF|THEN|TIMES|TO|UNTIL|WHILE)\\b"},"implicits":{"name":"keyword.implicit.clarion","match":"([A-Za-z][A-Za-z0-9_]+)(\\$|#|\")","captures":{"1":{"name":"constant.numeric.implicit.clarion"}}},"labels":{"name":"entity.name.function.clarion","match":"^([A-Za-z_][A-Za-z0-9_:\\.]*)\\s"},"langConstants":{"name":"support.constant.clarion","match":"\\b(?i:TRUE|FALSE|NULL)\\b"},"langFunctions":{"name":"support.function.clarion","match":"\\b(?i:ADD|DISPOSE|ADDRESS|GET|BAND|BUILD|CLEAR|CLOSE|DELETE|DUPLICATE|FIXFORMAT|FREESTATE|GETNULLS|GETSTATE|HOLD|LOCK|MAXIMUM|OPEN|POINTER|POSITION|PUT|RECORDS|REGET|RESET|RESTORESTATE|SET|SETNULLS|STATUS|UNBIND|UNFIXFORMAT|_PROC|_PROC1|_PROC2|_PROC3|ACCEPTED|ACOS|ALERT|ALIAS|ALL|ARC|ASIN|ASK|ATAN|BEEP|BINDEXPRESSION |BLANK|BOF|BOX|BUFFER|BYTES|CALL|CENTER|CHAIN|CHANGE|CHANGES|CHOICE|CHORD|CLIP|CLIPBOARD|CLOCK|CLONE|COLORDIALOG|COMMAND|COMMIT|COMPRESS |CONVERTANSITOOEM|CONVERTOEMTOANSI|CONTENTS|COPY|COS|DATE|DAY|DEBUGHOOK|DECOMPRESS |DELETEREG|DESTROY|DIRECTORY|DIRECTORY|DISABLE|DISPLAY|DRAGID|DROPID|ELLIPSE|EMPTY|ENABLE|ENDPAGE|EOF|ERASE|ERROR|ERRORCODE|ERRORFILE|EVALUATE|EXISTS|FIELD|FILEDIALOG|FILEDIALOGA|FILEERROR|FILEERRORCODE|FIRSTFIELD|FLUSH|FOCUS|FONTDIALOG|FONTDIALOGA|FORWARDKEY|FREE|FREEZE|GETEXITCODE|GETFONT|GETGROUP|GETREG|GETREGSUBKEYS|GETREGVALUES|GETINI|GETPOSITION|HALT|HELP|HIDE|HOWMANY|IDLE|IMAGE|INCOMPLETE|INSTANCE|INSTRING|ISALPHA|ISGROUP|ISLOWER|ISUPPER|ISSTRING|KEYBOARD|KEYCHAR|KEYCODE|KEYSTATE|LASTFIELD|LEFT|LEN|LINE|LOCALE|LOCKTHREAD|LOG10|LOGE|LONGPATH|LOWER|MATCH|MESSAGE|MONTH|MOUSEX|MOUSEY|NAME|NEXT|NOMEMO|NOTIFICATION|NOTIFY|NUMERIC|PACK|PATH|PENCOLOR|PENWIDTH|PENSTYLE|PIE|POLYGON|POPBIND|POPERRORS|POPUP|POST|PRESS|PRESSKEY|PREVIOUS|PRINTERDIALOG|PRINTERDIALOGA|PUSHBIND|PUSHERRORS|PUTREG|PUTINI|QUOTE|RANDOM|REGISTER|REGISTEREVENT|EVENT|RELEASE|REMOVE|RESUME|RIGHT|ROLLBACK|ROUNDBOX|RUN|RUNCODE|REJECTCODE|SELECT|SELECTED|SEND|SET3DLOOK|SETCLIPBOARD|SETCLOCK|SETCOMMAND|SETCURSOR|SETDROPID|SETEXITCODE|SETFONT|SETFONT|SETKEYCHAR|SETKEYCODE|SETLAYOUT|SETPATH|SETPENWIDTH|SETPENSTYLE|SETPENCOLOR|SETPOSITION|SETPOSITION|SETTARGET|SETTODAY|SHARE|SHORTPATH|SHOW|SHUTDOWN|SIN|SKIP|SQRT|START|STATUS|STOP|STREAM|STRPOS|SUB|SUSPEND|TAN|THREAD|THREADLOCKED|TIE|TIED|TODAY|TYPE|UNFREEZE|UNHIDE|UNLOAD|UNLOCK|UNLOCKTHREAD|UNQUOTE|UNREGISTER|UNREGISTEREVENT|UNTIE|UPDATE|UPPER|WATCH|WHAT|WHAT|WHERE|WHERE|WHO|WHO|YEAR|YIELD|ABS|AFTER|AGE|APPEND|BEFORE|BIND|BINDEXPRESSION|BOR|BSHIFT|BXOR|CHR|COMPRESS|CREATE|DDEACKNOWLEDGE|DDEAPP|DDECHANNEL|DDECLIENT|DDECLOSE|DDEEXECUTE|DDEITEM|DDEPOKE|DDEQUERY|DDEREAD|DDESERVER|DDETOPIC|DDEVALUE|DDEWRITE|DECOMPRESS|DEFORMAT|FILEEXISTS|FORMAT|FULLNAME|INLIST|INRANGE|INT|LOGOUT|OCXLOADIMAGE|OCXREGISTEREVENTPROC|OCXREGISTERPROPCHANGE|OCXREGISTERPROPEDIT|OCXSETPARAM|OCXUNREGISTEREVENTPROC|OCXUNREGISTERPROPCHANGE|OCXUNREGISTERPROPEDIT|OLEDIRECTORY|OMITTED|PEEK|POKE|PRAGMA|PRINT|PRINTER|RENAME|ROUND|SAVEDIALOG|SETNONULL|SETNULL|SHIFT|SORT|VAL|XOR)\\b"},"langProps":{"name":"support.constant.clarion","match":"\\b(?i:PROP|PROPLIST|EVENT|COLOR|CREATE|BRUSH|FILE|LEVEL|STD|CURSOR|ICON|BEEP|REJECT|FONT|CHARSET|PEN|LISTZONE|BUTTON|MSGMODE|WINDOW|TEXT|FREEZE|DDE|FF_|OCX|DOCK|MATCH|PAPER|DRIVEROP|DATATYPE|GradientTypes):\\w*\\b"},"numericConstants":{"name":"constant.numeric.clarion","match":"\\b(([0-9][0-9a-fA-F]*(h|H))|([0-1]*(b|B))|([0-7]*(o|O))|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b"},"operators":{"name":"keyword.operator.clarion","match":"\\?|\\{|\\}|\\+|\\-|\\*|\\*\\*|/|//|%|\u003c|\u003e|\u0026|\\||\\^|~|=|:=:|,|\\(|\\)"},"softReservedKeywords":{"name":"entity.name.tag.clarion","match":"\\b(?i:APPLICATION|CLASS|CODE|DATA|DETAIL|ENUM|FILE|FOOTER|FORM|GROUP|HEADER|INLINE|ITEM|JOIN|MAP|MENU|MENUBAR|MODULE|OLECONTROL|OPTION|QUEUE|RECORD|REPORT|ROW|SHEET|STRUCT|TAB|TABLE|TOOLBAR|VIEW|WINDOW|PROPERTY|INDEXER)\\b"},"specialTypes":{"name":"storage.type.specialTypes.clarion","match":"\\b(?i:APPLICATION|BUTTON|CHECK|CLASS|COMBO|CUSTOM|DETAIL|ELLIPSE|ENTRY|FILE|FOOTER|FORM|GROUP|HEADER|IMAGE|INTERFACE|ITEM|KEY|INDEX|LINE|LIST|MENU|MENUBAR|OCX|OLE|OPTION|PANEL|PROGRESS|PROJECT|PROMPT|QUEUE|RADIO|REGION|REPORT|SEPARATOR|SHEET|SPIN|TAB|TABLE|TEXT|TOOLBAR|VBX|VIEW)\\b"},"strings":{"name":"string.quoted.single.clarion","begin":"\\'","end":"\\'"},"userVars":{"name":"variable.parameter.clarion","match":"\\b(?i:LOC|GLO):\\w*\\b"}}}
1
+ {"name":"Clarion","scopeName":"source.clarion","patterns":[{"include":"#comments"},{"include":"#classLabels"},{"include":"#labels"},{"include":"#langConstants"},{"include":"#langProps"},{"include":"#langFunctions"},{"include":"#userVars"},{"include":"#implicits"},{"include":"#hardReservedKeywords"},{"include":"#softReservedKeywords"},{"include":"#directives"},{"include":"#baseTypes"},{"include":"#specialTypes"},{"include":"#strings"},{"include":"#attributes"},{"include":"#operators"},{"include":"#currencyInPicture"},{"include":"#numericConstants"}],"repository":{"attributes":{"name":"entity.other.attribute-name.clarion","match":"\\b(?i:ABOVE|ABSOLUTE|ALONE|ALRT|ANGLE|AT|AUTO|AUTOSIZE|AVE|BELOW|BEVEL|BINARY|BINDABLE|BITMAP|BOXED|C|CAP|CENTER|CENTERED|CNT|COLOR|COLUMN|COM|COMPATIBILITY|CONST|CURSOR|DEFAULT|DELAY|DERIVED|DIM|DLL|COM|DOCUMENT|DOCK|DOCKED|DOWN|DRAGID|DRIVER|DROP|DROPID|DUP|ENCRYPT|EXPAND|EXTEND|EXTERNAL|FILL|FILTER|FIRST|FIX|FIXED|FLAT|FONT|FROM|FULL|GLOBALCLASS|GRAY|GRID|HIDE|HLP|HSCROLL|HVSCROLL|ICON|ICONIZE|IMM|IMPLEMENTS|INNER|INS|LANDSCAPE|LAST|LATE|LAYOUT|LENGTH|LFT|LINEWIDTH|LINK|LOCATE|MARK|MASK|MAX|MAXIMIZE|MDI|META|MIN|MM|MODAL|MSG|NAME|NOBAR|NOCASE|NOFRAME|NOMEMO|NOMERGE|NOSHEET|OEM|OPT|ORDER|OUTER|OVER|OVR|OWNER|PAGE|PAGEAFTER|PAGEBEFORE|PALETTE|PAPER|PASCAL|PASSWORD|POINTS|PRE|PREVIEW|PRIMARY|PRIVATE|PROC|PROTECTED|RANGE|RAW|READONLY|RECLAIM|REPEAT|REPLACE|REQ|RESIZE|SCROLL|SINGLE|SMOOTH|SPREAD|STATIC|STD|STEP|STRETCH|SUM|SUPPRESS|TALLY|TARGET|THOUS|TILED|TIMER|TIP|TOGETHER|TOOLBOX|TRN|UP|UPR|USE|VALUE|VERTICAL|VCR|VIRTUAL|VSCROLL|WALLPAPER|WIDTH|WITHNEXT|WITHPRIOR|WIZARD|WRAP|ZOOM|CHECK|DOUBLE|SEPARATOR|PAGENO|RTF|SYSTEM|TYPE)\\b"},"baseTypes":{"name":"storage.type.base-types.clarion","match":"\\b(?i:ANY|ASTRING|BFLOAT4|BFLOAT8|BLOB|MEMO|BOOL|BSTRING|BYTE|CSTRING|DATE|DECIMAL|DOUBLE|FLOAT4|LONG|PDECIMAL|PSTRING|REAL|SHORT|SIGNED|SREAL|STRING|TIME|ULONG|UNSIGNED|USHORT|VARIANT)\\b"},"classLabels":{"name":"entity.name.class.clarion","match":"^[A-Za-z_][A-Za-z0-9_:]*\\.([A-Za-z_][A-Za-z0-9_:\\.]*)\\s","captures":{"1":{"name":"entity.other.inherited-class.clarion"}}},"comments":{"name":"comment.line.clarion","match":"(\\!|\\|).*"},"currencyInPicture":{"name":"constant.numeric.clarion","begin":"@[Nn][\\-]?[0-9\\.]*\\~","end":"\\~"},"directives":{"name":"storage.modifier.directives.clarion","match":"\\b(?i:ASSERT|BEGIN|COMPILE|EQUATE|INCLUDE|ITEMIZE|OMIT|ONCE|SECTION|SIZE)\\b"},"hardReservedKeywords":{"name":"keyword.clarion","match":"\\b(?i:ACCEPT|BREAK|BY|CASE|CHOOSE|CYCLE|DO|ELSE|ELSIF|END|EXECUTE|EXIT|FUNCTION|GOTO|IF|LOOP|MEMBER|NEW|OF|OROF|PARENT|PROCEDURE|PROGRAM|RETURN|ROUTINE|SELF|THEN|TIMES|TO|UNTIL|WHILE)\\b"},"implicits":{"name":"keyword.implicit.clarion","match":"([A-Za-z][A-Za-z0-9_]+)(\\$|#|\")","captures":{"1":{"name":"constant.numeric.implicit.clarion"}}},"labels":{"name":"entity.name.function.clarion","match":"^([A-Za-z_][A-Za-z0-9_:\\.]*)\\s"},"langConstants":{"name":"support.constant.clarion","match":"\\b(?i:TRUE|FALSE)\\b"},"langFunctions":{"name":"support.function.clarion","match":"\\b(?i:ADD|DISPOSE|ADDRESS|GET|BAND|BUILD|CLEAR|CLOSE|DELETE|DUPLICATE|FIXFORMAT|FREESTATE|GETNULLS|GETSTATE|HOLD|LOCK|MAXIMUM|OPEN|POINTER|POSITION|RECORDS|REGET|RESET|RESTORESTATE|SET|SETNULLS|STATUS|UNBIND|UNFIXFORMAT|_PROC|_PROC1|_PROC2|_PROC3|ACCEPTED|ACOS|ALERT|ALIAS|ALL|ARC|ASIN|ASK|ATAN|BEEP|BINDEXPRESSION |BLANK|BOF|BOX|BUFFER|BYTES|CALL|CENTER|CHAIN|CHANGE|CHANGES|CHOICE|CHORD|CLIP|CLIPBOARD|CLOCK|CLONE|COLORDIALOG|COMMAND|COMMIT|COMPRESS |CONVERTANSITOOEM|CONVERTOEMTOANSI|CONTENTS|COPY|COS|DATE|DAY|DEBUGHOOK|DECOMPRESS |DELETEREG|DESTROY|DIRECTORY|DIRECTORY|DISABLE|DISPLAY|DRAGID|DROPID|ELLIPSE|EMPTY|ENABLE|ENDPAGE|EOF|ERASE|ERROR|ERRORCODE|ERRORFILE|EVALUATE|EXISTS|FIELD|FILEDIALOG|FILEDIALOGA|FILEERROR|FILEERRORCODE|FIRSTFIELD|FLUSH|FOCUS|FONTDIALOG|FONTDIALOGA|FORWARDKEY|FREE|FREEZE|GETEXITCODE|GETFONT|GETGROUP|GETREG|GETREGSUBKEYS|GETREGVALUES|GETINI|GETPOSITION|HALT|HELP|HIDE|HOWMANY|IDLE|IMAGE|INCOMPLETE|INSTANCE|INSTRING|ISALPHA|ISGROUP|ISLOWER|ISUPPER|ISSTRING|KEYBOARD|KEYCHAR|KEYCODE|KEYSTATE|LASTFIELD|LEFT|LEN|LINE|LOCALE|LOCKTHREAD|LOG10|LOGE|LONGPATH|LOWER|MATCH|MESSAGE|MONTH|MOUSEX|MOUSEY|NAME|NEXT|NOMEMO|NOTIFICATION|NOTIFY|NUMERIC|PACK|PATH|PENCOLOR|PENWIDTH|PENSTYLE|PIE|POLYGON|POPBIND|POPERRORS|POPUP|POST|PRESS|PRESSKEY|PREVIOUS|PRINTERDIALOG|PRINTERDIALOGA|PUSHBIND|PUSHERRORS|PUT|PUTREG|PUTINI|QUOTE|RANDOM|REGISTER|REGISTEREVENT|EVENT|RELEASE|REMOVE|RESUME|RIGHT|ROLLBACK|ROUNDBOX|RUN|RUNCODE|REJECTCODE|SELECT|SELECTED|SEND|SET3DLOOK|SETCLIPBOARD|SETCLOCK|SETCOMMAND|SETCURSOR|SETDROPID|SETEXITCODE|SETFONT|SETFONT|SETKEYCHAR|SETKEYCODE|SETLAYOUT|SETPATH|SETPENWIDTH|SETPENSTYLE|SETPENCOLOR|SETPOSITION|SETPOSITION|SETTARGET|SETTODAY|SHARE|SHORTPATH|SHOW|SHUTDOWN|SIN|SKIP|SQRT|START|STATUS|STOP|STREAM|STRPOS|SUB|SUSPEND|TAN|THREAD|THREADLOCKED|TIE|TIED|TODAY|TYPE|UNFREEZE|UNHIDE|UNLOAD|UNLOCK|UNLOCKTHREAD|UNQUOTE|UNREGISTER|UNREGISTEREVENT|UNTIE|UPDATE|UPPER|WATCH|WHAT|WHAT|WHERE|WHERE|WHO|WHO|YEAR|YIELD|ABS|AFTER|AGE|APPEND|BEFORE|BIND|BINDEXPRESSION|BOR|BSHIFT|BXOR|CHR|COMPRESS|CREATE|DDEACKNOWLEDGE|DDEAPP|DDECHANNEL|DDECLIENT|DDECLOSE|DDEEXECUTE|DDEITEM|DDEPOKE|DDEQUERY|DDEREAD|DDESERVER|DDETOPIC|DDEVALUE|DDEWRITE|DECOMPRESS|DEFORMAT|FILEEXISTS|FORMAT|FULLNAME|INLIST|INRANGE|INT|LOGOUT|OCXLOADIMAGE|OCXREGISTEREVENTPROC|OCXREGISTERPROPCHANGE|OCXREGISTERPROPEDIT|OCXSETPARAM|OCXUNREGISTEREVENTPROC|OCXUNREGISTERPROPCHANGE|OCXUNREGISTERPROPEDIT|OLEDIRECTORY|OMITTED|PEEK|POKE|PRAGMA|PRINT|PRINTER|RENAME|ROUND|SAVEDIALOG|SETNONULL|SETNULL|SHIFT|SORT|VAL|XOR)\\b"},"langProps":{"name":"support.constant.clarion","match":"\\b(?i:PROP|EVENT|COLOR|CREATE|BRUSH|FILE|LEVEL|STD|CURSOR|ICON|BEEP|REJECT|FONT|CHARSET|PEN|LISTZONE|BUTTON|MSGMODE|WINDOW|TEXT|FREEZE|DDE|FF_|OCX|DOCK|MATCH|PAPER|DRIVEROP|DATATYPE|GradientTypes):\\w*\\b"},"numericConstants":{"name":"constant.numeric.clarion","match":"\\b(([0-9][0-9a-fA-F]*(h|H))|([0-1]*(b|B))|([0-7]*(o|O))|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b"},"operators":{"name":"keyword.operator.clarion","match":"\\?|\\{|\\}|\\+|\\-|\\*|\\*\\*|/|//|%|\u003c|\u003e|\u0026|\\||\\^|~|=|:=:|,|\\(|\\)"},"softReservedKeywords":{"name":"entity.name.tag.clarion","match":"\\b(?i:APPLICATION|CLASS|CODE|DATA|DETAIL|ENUM|FILE|FOOTER|FORM|GROUP|HEADER|INLINE|ITEM|JOIN|MAP|MENU|MENUBAR|MODULE|OLECONTROL|OPTION|QUEUE|RECORD|REPORT|ROW|SHEET|STRUCT|TAB|TABLE|TOOLBAR|VIEW|WINDOW|PROPERTY|INDEXER)\\b"},"specialTypes":{"name":"storage.type.specialTypes.clarion","match":"\\b(?i:APPLICATION|BUTTON|CHECK|CLASS|COMBO|CUSTOM|DETAIL|ELLIPSE|ENTRY|FILE|FOOTER|FORM|GROUP|HEADER|IMAGE|INTERFACE|ITEM|KEY|INDEX|LINE|LIST|MENU|MENUBAR|OCX|OLE|OPTION|PANEL|PROGRESS|PROJECT|PROMPT|QUEUE|RADIO|REGION|REPORT|SEPARATOR|SHEET|SPIN|TAB|TABLE|TEXT|TOOLBAR|VBX|VIEW)\\b"},"strings":{"name":"string.quoted.single.clarion","begin":"\\'","end":"\\'"},"userVars":{"name":"variable.parameter.clarion","match":"\\b(?i:LOC|GLO):\\w*\\b"}}}