github-linguist 7.18.0 → 7.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +1 -0
  3. data/grammars/liquid.injection.json +1 -0
  4. data/grammars/markdown.cadence.codeblock.json +1 -0
  5. data/grammars/markdown.curry.codeblock.json +1 -0
  6. data/grammars/markdown.prisma.codeblock.json +1 -0
  7. data/grammars/markdown.textproto.codeblock.json +1 -0
  8. data/grammars/source.2da.json +1 -0
  9. data/grammars/source.abap.json +1 -1
  10. data/grammars/source.abl.json +1 -1
  11. data/grammars/source.acucobol.json +1 -1
  12. data/grammars/source.aidl.json +1 -1
  13. data/grammars/source.alloy.json +1 -1
  14. data/grammars/source.astro.json +1 -0
  15. data/grammars/source.ats.json +1 -1
  16. data/grammars/source.ballerina.json +1 -1
  17. data/grammars/source.berry.bytecode.json +1 -0
  18. data/grammars/source.berry.json +1 -0
  19. data/grammars/source.bms.json +1 -0
  20. data/grammars/source.bmsmap.json +1 -0
  21. data/grammars/source.bnd.json +1 -0
  22. data/grammars/source.brs.json +1 -0
  23. data/grammars/source.cadence.json +1 -0
  24. data/grammars/source.cairo.json +1 -0
  25. data/grammars/source.cds.json +1 -0
  26. data/grammars/source.cl.json +1 -0
  27. data/grammars/source.clar.json +1 -0
  28. data/grammars/source.clojure.json +1 -1
  29. data/grammars/source.cmd.json +1 -0
  30. data/grammars/source.cobol.json +1 -1
  31. data/grammars/source.cobol_acu_listfile.json +1 -0
  32. data/grammars/source.cobol_mf_listfile.json +1 -0
  33. data/grammars/source.cobol_mfprep.json +1 -0
  34. data/grammars/source.cobol_pcob_listfile.json +1 -0
  35. data/grammars/source.cobolit.json +1 -0
  36. data/grammars/source.cobsql_dir.json +1 -0
  37. data/grammars/source.cs.json +1 -1
  38. data/grammars/source.csound.json +1 -1
  39. data/grammars/source.css.json +1 -1
  40. data/grammars/source.csswg.json +1 -0
  41. data/grammars/source.curlrc.json +1 -1
  42. data/grammars/source.curry.json +1 -0
  43. data/grammars/source.dart.json +1 -1
  44. data/grammars/source.data-weave.json +1 -1
  45. data/grammars/source.dds.dspf.json +1 -0
  46. data/grammars/source.dds.icff.json +1 -0
  47. data/grammars/source.dds.lf.json +1 -0
  48. data/grammars/source.dds.pf.json +1 -0
  49. data/grammars/source.dds.prtf.json +1 -0
  50. data/grammars/source.deb-control.json +1 -0
  51. data/grammars/source.debian.makefile.json +1 -0
  52. data/grammars/source.denizenscript.json +1 -0
  53. data/grammars/source.dir.json +1 -0
  54. data/grammars/source.ditroff.json +1 -1
  55. data/grammars/source.elixir.json +1 -1
  56. data/grammars/source.euphoria.json +1 -0
  57. data/grammars/source.fsharp.json +1 -1
  58. data/grammars/source.gdresource.json +1 -0
  59. data/grammars/source.gdscript.json +1 -1
  60. data/grammars/source.gdshader.json +1 -0
  61. data/grammars/source.genero-forms.json +1 -0
  62. data/grammars/source.genero.json +1 -0
  63. data/grammars/source.git-revlist.json +1 -0
  64. data/grammars/source.gitignore.json +1 -1
  65. data/grammars/source.gleam.json +1 -0
  66. data/grammars/source.gsc.json +1 -0
  67. data/grammars/source.hack.json +1 -1
  68. data/grammars/source.hlasm.json +1 -0
  69. data/grammars/source.hoon.json +1 -0
  70. data/grammars/source.hx.json +1 -1
  71. data/grammars/source.icurry.json +1 -0
  72. data/grammars/source.janet.json +1 -0
  73. data/grammars/source.jcl.json +1 -1
  74. data/grammars/source.js.json +1 -1
  75. data/grammars/source.jsligo.json +1 -0
  76. data/grammars/source.julia.json +1 -1
  77. data/grammars/source.kotlin.json +1 -1
  78. data/grammars/source.ligo.json +1 -0
  79. data/grammars/source.mc.json +1 -0
  80. data/grammars/source.mfu.json +1 -0
  81. data/grammars/source.mfupp_dir.json +1 -0
  82. data/grammars/source.mi.json +1 -0
  83. data/grammars/source.miniyaml.json +1 -0
  84. data/grammars/source.mint.json +1 -0
  85. data/grammars/source.mligo.json +1 -0
  86. data/grammars/source.mlir.json +1 -1
  87. data/grammars/source.mo.json +1 -1
  88. data/grammars/source.pcb.schematic.json +1 -1
  89. data/grammars/source.pcb.sexp.json +1 -1
  90. data/grammars/source.pli.json +1 -0
  91. data/grammars/source.pnlgrp.json +1 -0
  92. data/grammars/source.pony.json +1 -1
  93. data/grammars/source.portugol.json +1 -0
  94. data/grammars/source.procfile.json +1 -0
  95. data/grammars/source.proto.json +1 -1
  96. data/grammars/source.python.kivy.json +1 -0
  97. data/grammars/source.q.json +1 -1
  98. data/grammars/source.qsharp.json +1 -1
  99. data/grammars/source.rego.json +1 -1
  100. data/grammars/source.religo.json +1 -0
  101. data/grammars/source.renpy.json +1 -1
  102. data/grammars/source.rescript.json +1 -1
  103. data/grammars/source.rpg.json +1 -0
  104. data/grammars/source.rpgle.json +1 -0
  105. data/grammars/source.scala.json +1 -1
  106. data/grammars/source.shell.json +1 -1
  107. data/grammars/source.shellcheckrc.json +1 -1
  108. data/grammars/source.smali.json +1 -1
  109. data/grammars/source.solidity.json +1 -1
  110. data/grammars/source.sqf.json +1 -1
  111. data/grammars/source.stan.json +1 -1
  112. data/grammars/source.star.json +1 -0
  113. data/grammars/source.stl.json +1 -0
  114. data/grammars/source.swift.json +1 -1
  115. data/grammars/source.talon.json +1 -0
  116. data/grammars/source.textproto.json +1 -0
  117. data/grammars/source.ts.json +1 -1
  118. data/grammars/source.tsx.json +1 -1
  119. data/grammars/source.utreport.json +1 -0
  120. data/grammars/source.v.json +1 -1
  121. data/grammars/source.vyper.json +1 -1
  122. data/grammars/source.whiley.json +1 -0
  123. data/grammars/source.win32-messages.json +1 -0
  124. data/grammars/source.witcherscript.json +1 -0
  125. data/grammars/source.wsd.json +1 -1
  126. data/grammars/source.yara.json +1 -1
  127. data/grammars/source.yul.json +1 -0
  128. data/grammars/text.hash-commented.json +1 -0
  129. data/grammars/text.html.liquid.json +1 -1
  130. data/grammars/text.html.markdown.astro.json +1 -1
  131. data/grammars/text.html.statamic.json +1 -0
  132. data/grammars/text.rtf.json +1 -1
  133. data/grammars/text.savane.json +1 -0
  134. data/grammars/text.srt.json +1 -1
  135. data/grammars/text.vtt.json +1 -0
  136. data/grammars/version +1 -1
  137. data/lib/linguist/VERSION +1 -1
  138. data/lib/linguist/generated.rb +13 -1
  139. data/lib/linguist/generic.yml +2 -0
  140. data/lib/linguist/heuristics.yml +84 -1
  141. data/lib/linguist/languages.json +1 -1
  142. data/lib/linguist/languages.yml +455 -7
  143. data/lib/linguist/samples.json +1 -1
  144. data/lib/linguist/vendor.yml +4 -1
  145. metadata +112 -40
  146. data/grammars/source.brightauthorproject.json +0 -1
  147. data/grammars/source.brightscript.json +0 -1
  148. data/grammars/source.opencobol.json +0 -1
  149. data/grammars/source.vtt.json +0 -1
  150. data/grammars/text.html.astro.json +0 -1
  151. data/lib/linguist/linguist.so +0 -0
@@ -0,0 +1 @@
1
+ {"name":"Astro","scopeName":"source.astro","patterns":[{"include":"#astro:markdown"},{"include":"#astro:expressions"},{"include":"#html:comment"},{"include":"#html:comment:bogus"},{"include":"#html:doctype"},{"include":"#astro:fragment"},{"include":"#astro:lang-scripts"},{"include":"#astro:lang-styles"},{"include":"#astro:component"},{"include":"#html:element"},{"include":"#html:entity"},{"include":"#html:entity:bogus"},{"include":"#frontmatter"}],"repository":{"astro:attribute":{"patterns":[{"include":"#html:attribute"},{"include":"#string-double-quoted"},{"include":"#string-single-quoted"},{"include":"#string-template-literal"},{"include":"#astro:expressions"}]},"astro:component":{"patterns":[{"name":"meta.tag.component.astro astro.component.raw","contentName":"source.unknown","begin":"(\u003c)([$A-Z_][^/?!\\s\u003c\u003e]*|[^/?!\\s\u003c\u003e.]+\\.[^/?!\\s\u003c\u003e]+)(.+is:raw.*?)(\u003e)","end":"(\u003c/)([$A-Z_][^/?!\\s\u003c\u003e]*|[^/?!\\s\u003c\u003e.]+\\.[^/?!\\s\u003c\u003e]+)(?=\\s|/?\u003e)(\u003e)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"name":"entity.name.tag.astro support.class.component.astro"},"3":{"patterns":[{"include":"#astro:attribute"}]},"4":{"name":"punctuation.definition.tag.end.astro"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"name":"entity.name.tag.astro support.class.component.astro"},"3":{"name":"punctuation.definition.tag.end.astro"}}},{"name":"meta.tag.component.astro","begin":"(\u003c/?)([$A-Z_][^/?!\\s\u003c\u003e]*|[^/?!\\s\u003c\u003e.]+\\.[^/?!\\s\u003c\u003e]+)\\b","end":"(/?\u003e)","patterns":[{"include":"#astro:attribute"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"name":"entity.name.tag.astro support.class.component.astro"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.astro"}}}]},"astro:expressions":{"patterns":[{"name":"expression.embedded.astro","contentName":"source.tsx","begin":"\\{","end":"\\}","patterns":[{"include":"source.tsx"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.tsx"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.tsx"}}}]},"astro:fragment":{"name":"meta.tag.component.astro","match":"(\u003c/?)(Fragment)?(\\s*\u003e)","captures":{"1":{"name":"punctuation.definition.tag.astro"},"2":{"name":"entity.name.tag.astro support.class.fragment.astro"},"3":{"name":"punctuation.definition.tag.astro"}}},"astro:lang-scripts":{"begin":"(\u003c)(script)","end":"(\u003c/)(script)\\s*(\u003e)|(/\u003e)","patterns":[{"begin":"\\G(?=\\s*[^\u003e]*?type\\s*=\\s*(['\"]|)(?i:application/ld\\+json)\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"contentName":"source.json","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.json"}]},{"include":"#html:tag-attributes"}]},{"begin":"\\G(?=\\s*[^\u003e]*?type\\s*=\\s*(['\"]|)(?i:module|(?:text/javascript|text/partytown|application/node|application/javascript))\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"contentName":"source.js","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.js"}]},{"include":"#html:tag-attributes"}]},{"begin":"\\G(?=\\s*[^\u003e]*?type\\s*=\\s*(['\"]|)\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"name":"source.unknown","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)"},{"include":"#html:tag-attributes"}]},{"begin":"\\G(?=\\s*[^\u003e]*?lang\\s*=\\s*(['\"]|)(?i:jsx?|javascript)\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"contentName":"source.js","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.js"}]},{"include":"#html:tag-attributes"}]},{"begin":"\\G(?=\\s*[^\u003e]*?lang\\s*=\\s*(['\"]|)(?i:ts|typescript)\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"contentName":"source.ts","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.ts"}]},{"include":"#html:tag-attributes"}]},{"begin":"\\G(?=\\s*[^\u003e]*?lang\\s*=\\s*(['\"]|)(?i:tsx)\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"contentName":"source.tsx","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.tsx"}]},{"include":"#html:tag-attributes"}]},{"contentName":"source.js","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.js"}]},{"include":"#html:tag-attributes"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"punctuation.definition.tag.end.html"},"4":{"name":"punctuation.definition.tag.end.html"}}},"astro:lang-styles":{"begin":"(\u003c)(style)","end":"(\u003c/)(style)\\s*(\u003e)|(/\u003e)","patterns":[{"begin":"\\G(?=\\s*[^\u003e]*?lang\\s*=\\s*(['\"]|)(?i:css)\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"contentName":"source.css","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css"}]},{"include":"#html:tag-attributes"}]},{"begin":"\\G(?=\\s*[^\u003e]*?lang\\s*=\\s*(['\"]|)(?i:less)\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"contentName":"source.css.less","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css.less"}]},{"include":"#html:tag-attributes"}]},{"begin":"\\G(?=\\s*[^\u003e]*?lang\\s*=\\s*(['\"]|)(?i:sass)\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"contentName":"source.sass","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.sass"}]},{"include":"#html:tag-attributes"}]},{"begin":"\\G(?=\\s*[^\u003e]*?lang\\s*=\\s*(['\"]|)(?i:scss)\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"contentName":"source.css.scss","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css.scss"}]},{"include":"#html:tag-attributes"}]},{"begin":"\\G(?=\\s*[^\u003e]*?lang\\s*=\\s*(['\"]|)(?i:styl(?:us)?)\\1)","end":"(?=\u003c/|/\u003e)","patterns":[{"contentName":"source.stylus","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.stylus"}]},{"include":"#html:tag-attributes"}]},{"contentName":"source.css","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.css"}]},{"include":"#html:tag-attributes"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"punctuation.definition.tag.end.html"},"4":{"name":"punctuation.definition.tag.end.html"}}},"astro:markdown":{"begin":"(\u003c)(Markdown)","end":"(\u003c/)(Markdown)\\s*(\u003e)|(/\u003e)","patterns":[{"contentName":"text.html.markdown","begin":"(?\u003c=\u003e)(?!\u003c/)","end":"(?=\u003c/)","patterns":[{"include":"source.gfm"}]},{"include":"#html:tag-attributes"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"name":"entity.name.tag.astro support.class.component.astro"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"name":"entity.name.tag.astro support.class.component.astro"},"3":{"name":"punctuation.definition.tag.end.astro"},"4":{"name":"punctuation.definition.tag.end.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"}}},"html:attribute":{"name":"meta.attribute.$1.html","match":"\\b(@?[a-zA-Z\\-:]+)(=?)","captures":{"1":{"name":"entity.other.attribute-name.html"},"2":{"name":"punctuation.separator.key-value.html"}}},"html:comment":{"name":"comment.block.html","begin":"\u003c!--","end":"--!?\u003e","beginCaptures":{"0":{"name":"punctuation.definition.comment.html punctuation.definition.comment.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.html punctuation.definition.comment.end.html"}}},"html:comment:bogus":{"name":"comment.block.html","begin":"\u003c\\?","end":"\u003e","captures":{"0":{"name":"punctuation.definition.comment.html"}},"beginCaptures":{"0":{"name":"punctuation.definition.comment.html punctuation.definition.comment.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.html punctuation.definition.comment.end.html"}}},"html:doctype":{"name":"meta.tag.metadata.doctype.html","begin":"(\u003c!)([Dd][Oo][Cc][Tt][Yy][Pp][Ee])","end":"\u003e","patterns":[{"name":"string.quoted.double.html","begin":"\"","end":"\""},{"name":"entity.other.attribute-name.html","match":"[^\\s\u003e]+"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.html punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.html punctuation.definition.tag.end.html"}}},"html:element":{"patterns":[{"name":"astro.element.raw","contentName":"source.unknown","begin":"(\u003c)([^/?!\\s\u003c\u003e]+)(.+is:raw.*?)(\u003e)","end":"(\u003c/)([^/?!\\s\u003c\u003e]+)(?=\\s|/?\u003e)(\u003e)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#astro:attribute"}]},"4":{"name":"punctuation.definition.tag.end.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"punctuation.definition.tag.end.html"}}},{"name":"meta.tag.any.$2.start.html","begin":"(\u003c)([^/?!\\s\u003c\u003e]+)(?=\\s|/?\u003e)","end":"/?\u003e","patterns":[{"include":"#astro:attribute"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}}},{"name":"meta.tag.any.$2.end.html","begin":"(\u003c/)([^/?!\\s\u003c\u003e]+)(?=\\s|/?\u003e)","end":"/?\u003e","patterns":[{"include":"#astro:attribute"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}}}]},"html:entity":{"name":"constant.character.entity.html","match":"(\u0026)([0-9A-Za-z]+|#x[0-9A-Fa-f]+|x[0-9]+)(;)","captures":{"1":{"name":"punctuation.definition.entity.html"},"3":{"name":"punctuation.definition.entity.html"}}},"html:entity:bogus":{"name":"constant.character.entity.html","match":"(\u0026)([0-9A-Za-z]+|#x[0-9A-Fa-f]+|x[0-9]+)","captures":{"1":{"name":"invalid.illegal.bad-ampersand.html"},"3":{"name":"punctuation.definition.entity.html"}}},"html:tag-attributes":{"begin":"\\G","end":"(?=/\u003e)|\u003e","patterns":[{"include":"#astro:attribute"}],"endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}}},"string-double-quoted":{"name":"string.quoted.double.html","begin":"\"","end":"\"","patterns":[{"include":"#html:entity"},{"include":"#html:entity:bogus"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}},"string-single-quoted":{"name":"string.quoted.single.html","begin":"'","end":"'","patterns":[{"include":"#html:entity"},{"include":"#html:entity:bogus"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}}},"string-template-literal":{"name":"string.template.html","begin":"`","end":"`","patterns":[{"include":"source.tsx#template-substitution-element"}]}}}
@@ -1 +1 @@
1
- {"name":"ATS","scopeName":"source.ats","patterns":[{"include":"#block"},{"include":"#comment_rest"},{"include":"#comment_line"},{"include":"#comment_block"},{"include":"#embed"},{"include":"#operators"},{"include":"#quantifier_curly"},{"include":"#quantifier_square"},{"include":"#quantifier_arrow"},{"include":"#keywords"},{"include":"#keywords_types"},{"include":"#string"},{"include":"#char"},{"include":"#records"},{"include":"#tuples"},{"include":"#number"}],"repository":{"block":{"begin":"(?\u003c=where|=|^|then|else|\\$rec|\\$rec_t|\\$rec_vt)(?:\\s*){","end":"}","patterns":[{"include":"$self"}],"applyEndPatternLast":true},"char":{"name":"string.quoted.double","match":"(')([^\\\\]{0,1}|\\\\(\\\\|[abefpnrtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8}))(')"},"comment_block":{"name":"comment.block","begin":"\\(\\*","end":"\\*\\)","patterns":[{"include":"#comment_block"}],"applyEndPatternLast":true},"comment_line":{"name":"comment.line.double-slash","match":"//.*$"},"comment_rest":{"name":"comment","begin":"////","end":".\\z","patterns":[{"match":".*"}],"applyEndPatternLast":true},"embed":{"name":"meta","begin":"(%{)","end":"(%})"},"keywords":{"name":"keyword","match":"(\\#|\\$)(\\w+)|\\b(castfn|and|andalso|assume|as|begin|break|case(\\+|-)?|class|continue|dynload|dyn|else|end|exception|extern|fix|fn|for|fun|if|implement|implmnt|primplement|primplmnt|infixl|infixr|infix|in|lam|let|llam|local|macdef|macrodef|method|modprop|modtype|module|nonfix|object|of|op|or|orelse|overload|par|postfix|praxi|prefix|prfn|prfun|prval|rec|sif|staif|staload|stavar|sta|struct|symelim|symintr|then|try|union|val(\\+|-)?|var|when|where|while|withprop|withtype|withviewtype|withview|with)\\b"},"keywords_types":{"name":"keyword","match":"(\\#|\\$)(\\w+)|\\b(abstype|abst@ype|abst0pe|absvtype|absvt@ype|absvt0pe|absviewtype|absviewt@ype|absviewt0pe|absview|absprop|datatype|datavtype|dataviewtype|dataview|dataprop|datasort|sortdef|propdef|viewdef|viewtypedef|vtypedef|stadef|typedef|)\\b"},"number":{"name":"constant.numeric","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|ll|LL|ull|ULL)?\\b"},"operators":{"name":"keyword.operator","match":"!=|!|%|\u0026\u0026|\u0026|\\*|\\+|-|--\u003e|-\u003e|/|:=|\u003c=|(?\u003c=\\s)\u003c|==\u003e|=\u003e|=|\u003e=|\u003e\u003e|\u003e|\\?|\\|\\||\\||~|\\[\\]"},"quantifier_arrow":{"name":"support.type","begin":"(?\u003c!\\s)\u003c","end":"\u003e"},"quantifier_curly":{"name":"support.type","begin":"({)","end":"(})"},"quantifier_square":{"name":"support.type","begin":"(\\[)","end":"(\\])"},"records":{"begin":"('|@)({)","end":"(})","patterns":[{"include":"$self"}]},"string":{"name":"string.quoted.double","begin":"(\")","end":"(\")","patterns":[{"include":"#string_escaped"}]},"string_escaped":{"name":"constant.character.escape","match":"\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8})"},"tuples":{"begin":"('|@)\\(","end":"(\\))","patterns":[{"include":"$self"}]}}}
1
+ {"name":"ATS","scopeName":"source.ats","patterns":[{"include":"#quantifier_curly"},{"include":"#quantifier_square"},{"include":"#block"},{"include":"#comment_rest"},{"include":"#comment_line"},{"include":"#comment_block_c"},{"include":"#comment_block_sml"},{"include":"#embed"},{"include":"#operators"},{"include":"#quantifier_arrow"},{"include":"#definition_function"},{"include":"#definition_type"},{"include":"#keywords"},{"include":"#keywords_types"},{"include":"#false_true"},{"include":"#string"},{"include":"#char"},{"include":"#records"},{"include":"#tuples"},{"include":"#number"},{"include":"#identifier"}],"repository":{"block":{"name":"meta.block","begin":"(?\u003c=where|=|^|then|else|\\$rec|\\$rec_t|\\$rec_vt)(?:\\s*)\\{","end":"\\}","patterns":[{"include":"$self"}],"applyEndPatternLast":true},"char":{"name":"string.quoted.double","match":"(')([^\\\\]{0,1}|\\\\(\\\\|[abefpnrtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8}))(')"},"comment_block_c":{"name":"comment.block","begin":"/\\*","end":"\\*/","applyEndPatternLast":true},"comment_block_sml":{"name":"comment.block","begin":"\\(\\*","end":"\\*\\)","patterns":[{"include":"#comment_block_sml"}],"applyEndPatternLast":true},"comment_line":{"name":"comment.line.double-slash","match":"//.*$"},"comment_rest":{"name":"comment.block","begin":"////","end":".\\z","patterns":[{"match":".*"}],"applyEndPatternLast":true},"definition_function":{"name":"meta.function-definition","begin":"\\b(?:castfn|fn|fun|implement|implmnt|infixl|infixr|infix|overload|postfix|praxi|prfn|prfun|primplement|primplmnt|var)\\b","end":"\\b[a-zA-Z][a-zA-Z0-9_']*\\b","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword"}},"endCaptures":{"0":{"name":"entity.name.function"}}},"definition_type":{"name":"meta.type-definition","begin":"\\b(abstype|abst@ype|abst0pe|absvtype|absvt@ype|absvt0pe|absviewtype|absviewt@ype|absviewt0pe|absview|absprop|datatype|datavtype|dataviewtype|dataview|dataprop|datasort|sortdef|propdef|viewdef|viewtypedef|vtypedef|stadef|stacst|typedef)\\b","end":"\\b[a-zA-Z][a-zA-Z0-9_']*\\b","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword"}},"endCaptures":{"0":{"name":"entity.name.type storage.type"}}},"embed":{"name":"meta","begin":"(%{)","end":"(%})"},"false_true":{"name":"constant.language.boolean","match":"\\b(?:false|true)\\b"},"identifier":{"name":"identifier","match":"\\b[a-zA-Z][a-zA-Z0-9_']*\\b"},"keywords":{"name":"keyword","match":"(\\#|\\$)(\\w+)|\\b(castfn|and|andalso|assume|as|begin|break|case(\\+|-)?|class|continue|dynload|dyn|else|end|exception|extern|fix|fn|for|fun|if|implement|implmnt|primplement|primplmnt|infixl|infixr|infix|in|lam|let|llam|local|macdef|macrodef|method|modprop|modtype|module|nonfix|object|of|op|or|orelse|overload|par|postfix|praxi|prefix|prfn|prfun|prval|rec|scase|sif|stacst|staif|staload|stavar|sta|struct|symelim|symintr|then|try|union|val(\\+|-)?|var|when|where|while|withprop|withtype|withviewtype|withview|with)\\b"},"keywords_types":{"name":"keyword","match":"(\\#|\\$)(\\w+)|\\b(abstype|abst@ype|abst0pe|absvtype|absvt@ype|absvt0pe|absviewtype|absviewt@ype|absviewt0pe|absview|absprop|datatype|datavtype|dataviewtype|dataview|dataprop|datasort|sortdef|propdef|viewdef|viewtypedef|vtypedef|stadef|typedef)\\b"},"number":{"name":"constant.numeric","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|ll|LL|ull|ULL)?\\b"},"operators":{"name":"keyword.operator","match":"!=|!|%|\u0026\u0026|\u0026|\\*|\\+|-|--\u003e|-\u003e|/|:=|\u003c=|(?\u003c=\\s)\u003c|==\u003e|=\u003e|=|\u003e=|\u003e\u003e|\u003e|\\?|\\|\\||\\||~|\\[\\]"},"quantifier_arrow":{"name":"support.type","begin":"(?\u003c!\\s)\u003c","end":"\u003e"},"quantifier_curly":{"name":"support.type.quantifier.universal","begin":"\\{(?=[\\S])","end":"\\}"},"quantifier_square":{"name":"support.type.quantifier.existential","begin":"\\[(?=[\\S])","end":"\\]"},"records":{"begin":"('|@)({)","end":"(})","patterns":[{"include":"$self"}]},"string":{"name":"string.quoted.double","begin":"(\")","end":"(\")","patterns":[{"include":"#string_escaped"}]},"string_escaped":{"name":"constant.character.escape","match":"\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8})"},"tuples":{"begin":"('|@)\\(","end":"(\\))","patterns":[{"include":"$self"}]}}}
@@ -1 +1 @@
1
- {"name":"Ballerina","scopeName":"source.ballerina","patterns":[{"include":"#statements"}],"repository":{"access-modifier":{"patterns":[{"name":"storage.modifier.ballerina keyword.other.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(public|private)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"annotationAttachment":{"patterns":[{"match":"(@)((?:[_$[:alpha:]][_$[:alnum:]]*))\\s*(:?)\\s*((?:[_$[:alpha:]][_$[:alnum:]]*)?)","captures":{"1":{"name":"punctuation.decorator.ballerina"},"2":{"name":"support.type.ballerina"},"3":{"name":"punctuation.decorator.ballerina"},"4":{"name":"support.type.ballerina"}}}]},"annotationDefinition":{"patterns":[{"begin":"\\bannotation\\b","end":";","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"array-literal":{"name":"meta.array.literal.ballerina","begin":"\\s*(\\[)","end":"\\]","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"meta.brace.square.ballerina"}},"endCaptures":{"0":{"name":"meta.brace.square.ballerina"}}},"booleans":{"patterns":[{"name":"constant.language.boolean.ballerina","match":"\\b(true|false)\\b"}]},"butClause":{"patterns":[{"begin":"=\u003e","end":",|(?=\\})","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"meta.arrow.ballerina storage.type.function.arrow.ballerina"}}}]},"butExp":{"patterns":[{"begin":"\\bbut\\b","end":"\\}","patterns":[{"include":"#butExpBody"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"butExpBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#parameter"},{"include":"#butClause"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"call":{"patterns":[{"name":"entity.name.function.ballerina","match":"(?:\\')?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()"}]},"callableUnitBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#workerDef"},{"include":"#service-decl"},{"include":"#objectDec"},{"include":"#function-defn"},{"include":"#forkStatement"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"class-body":{"name":"meta.class.body.ballerina","begin":"\\{","end":"\\}","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#function-defn"},{"include":"#var-expr"},{"include":"#variable-initializer"},{"include":"#access-modifier"},{"include":"#keywords"},{"begin":"(?\u003c=:)\\s*","end":"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"class-defn":{"name":"meta.class.ballerina","begin":"(\\s+)(class\\b)|^class\\b(?=\\s+|/[/*])","end":"(?\u003c=\\})","patterns":[{"include":"#keywords"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","captures":{"0":{"name":"entity.name.type.class.ballerina"}}},{"include":"#class-body"}],"beginCaptures":{"0":{"name":"storage.type.class.ballerina keyword.other.ballerina"}}},"code":{"patterns":[{"include":"#booleans"},{"include":"#matchStatement"},{"include":"#butExp"},{"include":"#xml"},{"include":"#stringTemplate"},{"include":"#keywords"},{"include":"#strings"},{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#annotationAttachment"},{"include":"#numbers"},{"include":"#maps"},{"include":"#paranthesised"},{"include":"#paranthesisedBracket"}]},"comment":{"patterns":[{"name":"comment.ballerina","match":"\\/\\/.*"}]},"constrainType":{"patterns":[{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#comment"},{"include":"#constrainType"},{"name":"storage.type.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}}]},"control-statement":{"patterns":[{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))","end":"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.control.flow.ballerina"}}},{"include":"#for-loop"},{"include":"#if-statement"},{"name":"keyword.control.conditional.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"decl-block":{"name":"meta.block.ballerina","begin":"\\{","end":"(?=\\} external;)|(\\})","patterns":[{"include":"#statements"},{"include":"#mdDocumentation"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"declaration":{"patterns":[{"include":"#import-declaration"},{"include":"#var-expr"},{"include":"#typeDefinition"},{"include":"#function-defn"},{"include":"#service-decl"},{"include":"#class-defn"},{"include":"#enum-decl"},{"include":"#keywords"}]},"defaultValue":{"patterns":[{"begin":"[=:]","end":"(?=[,)])","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.operator.ballerina"}}}]},"defaultWithParentheses":{"patterns":[{"begin":"\\(","end":"\\)","beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"documentationBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"match":"(P|R|T|F|V)({{)(.*)(}})","captures":{"1":{"name":"keyword.other.ballerina.documentation"},"2":{"name":"keyword.other.ballerina.documentation"},"3":{"name":"variable.parameter.ballerina.documentation"},"4":{"name":"keyword.other.ballerina.documentation"}}},{"name":"comment.block.code.ballerina.documentation","begin":"\\```","end":"\\```"},{"name":"comment.block.code.ballerina.documentation","begin":"\\``","end":"\\``"},{"name":"comment.block.code.ballerina.documentation","begin":"\\`","end":"\\`"},{"name":"comment.block.ballerina.documentation","match":"."}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"documentationDef":{"patterns":[{"begin":"\\b(?:documentation|deprecated)\\b","end":"\\}","patterns":[{"include":"#documentationBody"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"delimiter.curly"}}}]},"enum-decl":{"name":"meta.enum.declaration.ballerina","begin":"(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"begin":"\\{","end":"\\}","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=,|\\}|$)","patterns":[{"include":"#comment"},{"include":"#variable-initializer"}],"beginCaptures":{"0":{"name":"variable.other.enummember.ballerina"}}},{"begin":"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))","end":"(?=,|\\}|$)","patterns":[{"include":"#string"},{"include":"#array-literal"},{"include":"#comment"},{"include":"#variable-initializer"}]},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}],"beginCaptures":{"1":{"name":"storage.modifier.ballerina"},"2":{"name":"keyword.other.ballerina"},"3":{"name":"entity.name.type.enum.ballerina"}}},"errorDestructure":{"patterns":[{"begin":"error","end":"(?==\u003e)","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"expression":{"patterns":[{"include":"#keywords"},{"include":"#expressionWithoutIdentifiers"},{"include":"#identifiers"}]},"expression-operators":{"patterns":[{"name":"keyword.operator.assignment.compound.ballerina","match":"\\*=|(?\u003c!\\()/=|%=|\\+=|\\-="},{"name":"keyword.operator.assignment.compound.bitwise.ballerina","match":"\\\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|\\|="},{"name":"keyword.operator.bitwise.shift.ballerina","match":"\u003c\u003c|\u003e\u003e\u003e|\u003e\u003e"},{"name":"keyword.operator.comparison.ballerina","match":"===|!==|==|!="},{"name":"keyword.operator.relational.ballerina","match":"\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e"},{"match":"(?\u003c=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))","captures":{"1":{"name":"keyword.operator.logical.ballerina"},"2":{"name":"keyword.operator.assignment.compound.ballerina"},"3":{"name":"keyword.operator.arithmetic.ballerina"}}},{"name":"keyword.operator.logical.ballerina","match":"\\!|\u0026\u0026|\\|\\||\\?\\?"},{"name":"keyword.operator.bitwise.ballerina","match":"\\\u0026|~|\\^|\\|"},{"name":"keyword.operator.assignment.ballerina","match":"\\="},{"name":"keyword.operator.decrement.ballerina","match":"--"},{"name":"keyword.operator.increment.ballerina","match":"\\+\\+"},{"name":"keyword.operator.arithmetic.ballerina","match":"%|\\*|/|-|\\+"}]},"expressionWithoutIdentifiers":{"patterns":[{"include":"#xml"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#comment"},{"include":"#object-literal"},{"include":"#ternary-expression"},{"include":"#expression-operators"},{"include":"#literal"},{"include":"#paranthesised"}]},"for-loop":{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))foreach\\s*","end":"(?=\\{)","patterns":[{"name":"keyword.other.ballerina","match":"\\bin\\b"},{"include":"#identifiers"},{"include":"#comment"},{"include":"#var-expr"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.control.loop.ballerina"},"1":{"name":"support.type.primitive.ballerina"}}},"forkBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#workerDef"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"forkStatement":{"patterns":[{"begin":"\\bfork\\b","end":"\\}","patterns":[{"include":"#forkBody"}],"beginCaptures":{"0":{"name":"keyword.control.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"function-body":{"patterns":[{"include":"#comment"},{"include":"#functionParameters"},{"include":"#decl-block"},{"name":"meta.block.ballerina","begin":"\\=\u003e","end":"(?=\\;)|(?=\\,)","patterns":[{"include":"#statements"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"meta.arrow.ballerina storage.type.function.arrow.ballerina"}}},{"name":"keyword.generator.asterisk.ballerina","match":"\\*"}]},"function-defn":{"name":"meta.function.ballerina","begin":"(?:(public|private)\\s+)?(function\\b)","end":"(?\u003c=\\;)|(?\u003c=\\})|(?\u003c=\\,)","patterns":[{"name":"keyword.ballerina","match":"\\bexternal\\b"},{"include":"#stringTemplate"},{"include":"#annotationAttachment"},{"include":"#functionReturns"},{"include":"#functionName"},{"include":"#functionParameters"},{"include":"#punctuation-semicolon"},{"include":"#function-body"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"},"2":{"name":"keyword.other.ballerina"}}},"function-parameters-body":{"patterns":[{"include":"#comment"},{"include":"#numbers"},{"include":"#string"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#keywords"},{"include":"#parameter-name"},{"include":"#array-literal"},{"include":"#variable-initializer"},{"include":"#identifiers"},{"name":"punctuation.separator.parameter.ballerina","match":"\\,"}]},"functionName":{"patterns":[{"name":"keyword.other.ballerina","match":"\\bfunction\\b"},{"include":"#type-primitive"},{"include":"#self-literal"},{"include":"#string"},{"match":"\\s+(\\b(self)|\\b(is|new|isolated|null|function|in)\\b|(string|int|boolean|float|byte|decimal|json|xml)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))","captures":{"2":{"name":"variable.language.this.ballerina"},"3":{"name":"keyword.other.ballerina"},"4":{"name":"support.type.primitive.ballerina"},"5":{"name":"storage.type.ballerina"},"6":{"name":"meta.definition.function.ballerina entity.name.function.ballerina"}}}]},"functionParameters":{"name":"meta.parameters.ballerina","begin":"\\(|\\[","end":"\\)|\\]","patterns":[{"include":"#function-parameters-body"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}},"functionReturns":{"name":"meta.type.function.return.ballerina","begin":"\\s*(returns)\\s*","end":"(?==\u003e)|(\\=)|(?=\\{)|(\\))|(?=\\;)","patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numbers"},{"include":"#keywords"},{"include":"#type-primitive"},{"match":"\\s*\\b(var)(?=\\s+|\\[|\\?)","captures":{"1":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.ballerina","match":"\\|"},{"name":"keyword.operator.optional.ballerina","match":"\\?"},{"include":"#type-annotation"},{"include":"#type-tuple"},{"include":"#keywords"},{"name":"variable.other.readwrite.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"}},"endCaptures":{"1":{"name":"keyword.operator.ballerina"}}},"functionType":{"patterns":[{"begin":"\\bfunction\\b","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#comment"},{"include":"#functionTypeParamList"},{"include":"#functionTypeReturns"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"functionTypeParamList":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"name":"keyword","match":"public"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#parameterTuple"},{"include":"#functionTypeType"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"delimiter.parenthesis"}},"endCaptures":{"0":{"name":"delimiter.parenthesis"}}}]},"functionTypeReturns":{"patterns":[{"begin":"\\breturns\\b","end":"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))","patterns":[{"include":"#functionTypeReturnsParameter"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword"}}}]},"functionTypeReturnsParameter":{"patterns":[{"begin":"((?=record|object|function)|(?:[_$[:alpha:]][_$[:alnum:]]*))","end":"(?=\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#defaultValue"},{"include":"#comment"},{"include":"#parameterTuple"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"functionTypeType":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))","beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"identifiers":{"patterns":[{"match":"(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((\n (function\\s*[(\u003c*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=\u003e)\n )) |\n ((\n ((\u003c\\s*$)|((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if =\u003e is on new line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with =\u003e on same line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=\u003e # arrow operator\n)\n ))\n))","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"variable.other.property.ballerina"}}},{"include":"#type-primitive"},{"include":"#self-literal"},{"name":"keyword.control.ballerina","match":"\\b(check|foreach|if|checkpanic)\\b"},{"include":"#call"},{"name":"support.type.primitive.ballerina","match":"\\b(var)\\b"},{"match":"([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?","captures":{"1":{"name":"variable.other.readwrite.ballerina"},"3":{"name":"punctuation.accessor.ballerina"},"4":{"name":"entity.name.function.ballerina"},"5":{"name":"punctuation.definition.parameters.begin.ballerina"},"6":{"name":"punctuation.definition.parameters.end.ballerina"}}},{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#type-annotation"}]},"if-statement":{"patterns":[{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?=\\bif\\b\\s*(?!\\{))","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(if)\\s*(\\()?","end":"(\\))|(?=\\{)","patterns":[{"include":"#decl-block"},{"include":"#keywords"},{"include":"#identifiers"},{"include":"#type-primitive"},{"include":"#xml"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#comment"},{"include":"#ternary-expression"},{"include":"#expression-operators"},{"include":"#literal"},{"include":"#paranthesised"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.ballerina"},"2":{"name":"meta.brace.round.ballerina"}},"endCaptures":{"1":{"name":"meta.brace.round.ballerina"}}},{"begin":"(?\u003c=\\))","end":"(?=\\{)","patterns":[{"include":"#literal"},{"include":"#keywords"}]},{"include":"#decl-block"}]}]},"import-clause":{"patterns":[{"include":"#comment"},{"match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*))","captures":{"1":{"name":"keyword.control.default.ballerina"},"3":{"name":"variable.other.readwrite.ballerina meta.import.module.ballerina"},"5":{"name":"keyword.control.default.ballerina"},"6":{"name":"variable.other.readwrite.alias.ballerina"}}},{"name":"variable.other.readwrite.alias.ballerina","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]},"import-declaration":{"name":"meta.import.ballerina","begin":"\\bimport\\b","end":"\\;","patterns":[{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#keywords"},{"include":"#comment"},{"include":"#import-clause"},{"include":"#punctuation-accessor"}],"beginCaptures":{"0":{"name":"keyword.control.import.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}},"keywords":{"patterns":[{"name":"keyword.control.ballerina","match":"\\b(fork|join|while|returns|transaction|transactional|retry|commit|rollback|typeof|enum|wait|match)\\b"},{"name":"keyword.control.flow.ballerina","match":"\\b(return|break|continue|check|checkpanic|panic|trap|from|where)\\b"},{"name":"keyword.other.ballerina","match":"\\b(public|private|external|return|record|object|remote|abstract|client|true|false|fail|import|version)\\b"},{"name":"keyword.other.ballerina","match":"\\b(as|on|function|resource|listener|const|final|is|null|lock|annotation|source|worker|parameter|field|isolated|in)\\b"},{"name":"keyword.other.ballerina","match":"\\b(xmlns|table|key|let|new|select|start|flush|default|do|base16|base64|conflict)\\b"},{"name":"keyword.other.ballerina","match":"\\b(limit|outer|equals|order|by|ascending|descending|class|configurable|variable|module|service)\\b"},{"name":"meta.arrow.ballerina storage.type.function.arrow.ballerina","match":"(=\u003e)"},{"name":"keyword.operator.ballerina","match":"(!|%|\\+|\\-|~=|===|==|=|!=|!==|\u003c|\u003e|\u0026|\\||\\?:|\\.\\.\\.|\u003c=|\u003e=|\u0026\u0026|\\|\\||~|\u003e\u003e|\u003e\u003e\u003e)"},{"include":"#types"},{"include":"#self-literal"},{"include":"#type-primitive"}]},"literal":{"patterns":[{"include":"#booleans"},{"include":"#numbers"},{"include":"#strings"},{"include":"#maps"},{"include":"#self-literal"},{"include":"#array-literal"}]},"maps":{"patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}]}]},"matchBindingPattern":{"patterns":[{"begin":"var","end":"(?==\u003e)|,","patterns":[{"include":"#errorDestructure"},{"include":"#code"},{"name":"variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"matchStatement":{"patterns":[{"begin":"\\bmatch\\b","end":"\\}","patterns":[{"include":"#matchStatementBody"},{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.control.ballerina"}}}]},"matchStatementBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#literal"},{"include":"#matchBindingPattern"},{"include":"#matchStatementPatternClause"},{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"matchStatementPatternClause":{"patterns":[{"begin":"=\u003e","end":"((\\})|;|,)","patterns":[{"include":"#callableUnitBody"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"mdDocumentation":{"name":"comment.mddocs.ballerina","begin":"\\#","end":"[\\r\\n]+","patterns":[{"include":"#mdDocumentationReturnParamDescription"},{"include":"#mdDocumentationParamDescription"}]},"mdDocumentationParamDescription":{"patterns":[{"begin":"(\\+\\s+)([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\-\\s+)","end":"(?=[^#\\r\\n]|(?:# *?\\+))","patterns":[{"name":"comment.mddocs.paramdesc.ballerina","match":"#.*"}],"beginCaptures":{"1":{"name":"keyword.operator.ballerina"},"2":{"name":"variable.other.readwrite.ballerina"},"3":{"name":"keyword.operator.ballerina"}}}]},"mdDocumentationReturnParamDescription":{"patterns":[{"begin":"(#)(?: *?)(\\+)(?: *)(return)(?: *)(-)?(.*)","end":"(?=[^#\\r\\n]|(?:# *?\\+))","patterns":[{"name":"comment.mddocs.returnparamdesc.ballerina","match":"#.*"}],"beginCaptures":{"1":{"name":"comment.mddocs.ballerina"},"2":{"name":"keyword.ballerina"},"3":{"name":"keyword.ballerina"},"4":{"name":"keyword.ballerina"},"5":{"name":"comment.mddocs.returnparamdesc.ballerina"}}}]},"multiType":{"patterns":[{"name":"storage.type.ballerina","match":"(?\u003c=\\|)([_$[:alpha:]][_$[:alnum:]]*)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)"},{"name":"keyword.operator.ballerina","match":"\\|"}]},"numbers":{"patterns":[{"name":"constant.numeric.decimal.ballerina","match":"\\b0[xX][\\da-f]+\\b|\\b\\d+(?:\\.(?:\\d+|$))?"}]},"object-literal":{"name":"meta.objectliteral.ballerina","begin":"\\{","end":"\\}","patterns":[{"include":"#object-member"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"object-member":{"patterns":[{"include":"#comment"},{"include":"#function-defn"},{"include":"#literal"},{"include":"#keywords"},{"include":"#expression"},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?=\\[)","end":"(?=:)|((?\u003c=[\\]])(?=\\s*[\\(\\\u003c]))","patterns":[{"include":"#comment"}]},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?=[\\'\\\"\\`])","end":"(?=:)|((?\u003c=[\\'\\\"\\`])(?=((\\s*[\\(\\\u003c,}])|(\\n*})|(\\s+(as)\\s+))))","patterns":[{"include":"#comment"},{"include":"#string"}]},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?x)(?=(\\b(?\u003c!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))","end":"(?=:)|(?=\\s*([\\(\\\u003c,}])|(\\s+as\\s+))","patterns":[{"include":"#comment"},{"include":"#numbers"}]},{"name":"meta.method.declaration.ballerina","begin":"(?\u003c=[\\]\\'\\\"\\`])(?=\\s*[\\(\\\u003c])","end":"(?=\\}|;|,)|(?\u003c=\\})","patterns":[{"include":"#function-body"}]},{"name":"meta.object.member.ballerina","match":"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)","captures":{"0":{"name":"meta.object-literal.key.ballerina"},"1":{"name":"constant.numeric.decimal.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((\n (function\\s*[(\u003c*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=\u003e)\n )) |\n ((\n ((\u003c\\s*$)|((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if =\u003e is on new line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with =\u003e on same line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=\u003e # arrow operator\n)\n ))\n)))","captures":{"0":{"name":"meta.object-literal.key.ballerina"},"1":{"name":"entity.name.function.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)","captures":{"0":{"name":"meta.object-literal.key.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"\\.\\.\\.","end":"(?=,|\\})","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.spread.ballerina"}}},{"name":"meta.object.member.ballerina","match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)","captures":{"1":{"name":"variable.other.readwrite.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+(const)(?=\\s*([,}]|$))","captures":{"1":{"name":"keyword.control.as.ballerina"},"2":{"name":"storage.modifier.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+","end":"(?=[;),}\\]:?\\-\\+\\\u003e]|\\|\\||\\\u0026\\\u0026|\\!\\=\\=|$|^|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+))","beginCaptures":{"1":{"name":"keyword.control.as.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)","end":"(?=,|\\}|$|\\/\\/|\\/\\*)","patterns":[{"include":"#expression"}]}]},"objectDec":{"patterns":[{"begin":"\\bobject\\b(?!:)","end":"(?\u003c=\\})","patterns":[{"include":"#decl-block"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}}]},"objectInitBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"objectInitParameters":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#code"},{"name":"variable.parameter.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}}]},"objectMemberFunctionDec":{"patterns":[{"begin":"\\bfunction\\b","end":";","patterns":[{"include":"#functionParameters"},{"name":"keyword.ballerina","match":"\\breturns\\b"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"parameter":{"patterns":[{"begin":"((?=record|object|function)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)|(?:[_$[:alpha:]][_$[:alnum:]]*))","end":"(?:\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#parameterWithDescriptor"},{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#defaultValue"},{"include":"#comment"},{"include":"#parameterTuple"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"parameter-name":{"patterns":[{"match":"\\s*\\b(var)\\s+","captures":{"1":{"name":"support.type.primitive.ballerina"}}},{"match":"(?x)(?:(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+)?(?:(\\.\\.\\.)\\s*)?(?\u003c!=|:)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(this)|(string|int|boolean|float|byte|decimal|json|xml)|\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)","captures":{"10":{"name":"keyword.operator.optional.ballerina"},"2":{"name":"keyword.operator.rest.ballerina"},"3":{"name":"support.type.primitive.ballerina"},"4":{"name":"keyword.other.ballerina"},"5":{"name":"constant.language.boolean.ballerina"},"6":{"name":"keyword.control.flow.ballerina"},"7":{"name":"storage.type.ballerina"},"8":{"name":"variable.parameter.ballerina"},"9":{"name":"variable.parameter.ballerina"}}}]},"parameterTuple":{"patterns":[{"begin":"\\[","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))","patterns":[{"include":"#record"},{"include":"#objectDec"},{"include":"#parameterTupleType"},{"include":"#parameterTupleEnd"},{"include":"#comment"}]}]},"parameterTupleEnd":{"patterns":[{"begin":"\\]","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))","patterns":[{"include":"#defaultWithParentheses"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}]}]},"parameterTupleType":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?:\\,)|(?:\\|)|(?=\\])","beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"parameterWithDescriptor":{"patterns":[{"begin":"\\\u0026","end":"(?=\\,)|(?=\\|)|(?=\\))","patterns":[{"include":"#parameter"}],"beginCaptures":{"0":{"name":"keyword.operator.ballerina"}}}]},"paranthesised":{"name":"meta.brace.round.block.ballerina","begin":"\\(","end":"\\)","patterns":[{"include":"#self-literal"},{"include":"#function-defn"},{"include":"#decl-block"},{"include":"#comment"},{"include":"#string"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#stringTemplate"},{"include":"#parameter-name"},{"include":"#variable-initializer"},{"name":"punctuation.separator.parameter.ballerina","match":"\\,"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brace.round.ballerina"}},"endCaptures":{"0":{"name":"meta.brace.round.ballerina"}}},"paranthesisedBracket":{"patterns":[{"begin":"\\[","end":"\\]","patterns":[{"include":"#comment"},{"include":"#code"}]}]},"punctuation-accessor":{"patterns":[{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"}}}]},"punctuation-comma":{"patterns":[{"name":"punctuation.separator.comma.ballerina","match":","}]},"punctuation-semicolon":{"patterns":[{"name":"punctuation.terminator.statement.ballerina","match":";"}]},"record":{"name":"meta.record.ballerina","begin":"\\brecord\\b","end":"(?\u003c=\\})","patterns":[{"include":"#recordBody"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}},"recordBody":{"patterns":[{"include":"#decl-block"}]},"recordLiteral":{"patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"self-literal":{"patterns":[{"match":"(\\bself\\b)\\s*(.)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()","captures":{"1":{"name":"variable.language.this.ballerina"},"2":{"name":"punctuation.accessor.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"name":"variable.language.this.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))self\\b(?!\\$)"}]},"service-decl":{"name":"meta.service.declaration.ballerina","begin":"\\bservice\\b","end":"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|(?\u003c=\\})","patterns":[{"include":"#class-defn"},{"include":"#serviceName"},{"include":"#serviceOn"},{"include":"#serviceBody"},{"include":"#objectDec"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}},"serviceBody":{"patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#documentationDef"},{"include":"#decl-block"}]},"serviceName":{"patterns":[{"include":"#string"},{"name":"entity.service.path.ballerina"}]},"serviceOn":{"patterns":[{"begin":"on","end":"(?={)","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}}]},"statements":{"patterns":[{"include":"#stringTemplate"},{"include":"#declaration"},{"include":"#control-statement"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-semicolon"},{"include":"#string"},{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#keywords"},{"include":"#annotationAttachment"}]},"string":{"patterns":[{"name":"string.quoted.double.ballerina","begin":"\"","end":"(\")|((?:[^\\\\\\n])$)","patterns":[{"include":"#string-character-escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ballerina"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ballerina"},"2":{"name":"invalid.illegal.newline.ballerina"}}}]},"string-character-escape":{"patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"}]},"stringTemplate":{"patterns":[{"name":"string.template.ballerina","begin":"((string)|([_$[:alpha:]][_$[:alnum:]]*))?(`)","end":"\\\\?`","patterns":[{"include":"#template-substitution-element"},{"include":"#string-character-escape"}],"beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ballerina"},"2":{"name":"support.type.primitive.ballerina"},"4":{"name":"punctuation.definition.string.template.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.string.template.end.ballerina"}}}]},"strings":{"patterns":[{"begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"name":"string","match":"."}],"beginCaptures":{"0":{"name":"string.begin.ballerina"}},"endCaptures":{"0":{"name":"string.end.ballerina"}}}]},"template-substitution-element":{"patterns":[{"name":"meta.template.expression.ballerina","contentName":"meta.embedded.line.ballerina","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.ballerina"}}}]},"templateVariable":{"patterns":[{"begin":"\\${","end":"}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"constant.character.escape.ballerina"}},"endCaptures":{"0":{"name":"constant.character.escape.ballerina"}}}]},"ternary-expression":{"begin":"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)","end":"\\s*","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.ternary.ballerina"}},"endCaptures":{"1":{"name":"keyword.operator.ternary.ballerina"}}},"tupleType":{"patterns":[{"begin":"\\[","end":"(?=\\]|;)","patterns":[{"include":"#comment"},{"include":"#constrainType"},{"include":"#paranthesisedBracket"},{"name":"storage.type.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}]}]},"type":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numbers"},{"include":"#type-primitive"},{"include":"#type-tuple"}]},"type-annotation":{"patterns":[{"name":"meta.type.annotation.ballerina","begin":"(\\:)","end":"(?\u003c![:|\u0026])((?=$|^|[,);\\}\\]\\?\\\u003e\\=\u003e]|//)|(?==[^\u003e])|((?\u003c=[\\}\u003e\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))(\\?)?","patterns":[{"include":"#booleans"},{"include":"#self-literal"},{"include":"#call"},{"match":"\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|\\b(var)\\b|([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?","captures":{"1":{"name":"keyword.other.ballerina"},"10":{"name":"punctuation.definition.parameters.begin.ballerina"},"11":{"name":"punctuation.definition.parameters.end.ballerina"},"2":{"name":"constant.language.boolean.ballerina"},"3":{"name":"keyword.control.ballerina"},"4":{"name":"storage.type.ballerina"},"5":{"name":"support.type.primitive.ballerina"},"6":{"name":"variable.other.readwrite.ballerina"},"8":{"name":"punctuation.accessor.ballerina"},"9":{"name":"entity.name.function.ballerina"}}},{"name":"keyword.operator.optional.ballerina","match":"\\?"},{"include":"#multiType"},{"include":"#type"},{"include":"#paranthesised"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ballerina"}}}]},"type-primitive":{"patterns":[{"name":"support.type.primitive.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(string|int|boolean|float|byte|decimal|json|xml)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"type-tuple":{"name":"meta.type.tuple.ballerina","begin":"\\[","end":"\\]","patterns":[{"include":"#self-literal"},{"include":"#booleans"},{"name":"keyword.operator.rest.ballerina","match":"\\.\\.\\."},{"match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)","captures":{"1":{"name":"entity.name.label.ballerina"},"2":{"name":"keyword.operator.optional.ballerina"},"3":{"name":"punctuation.separator.label.ballerina"}}},{"include":"#identifiers"},{"include":"#type"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"meta.brace.square.ballerina"}},"endCaptures":{"0":{"name":"meta.brace.square.ballerina"}}},"typeDefinition":{"patterns":[{"begin":"(\\btype\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"\\;","patterns":[{"include":"#functionParameters"},{"include":"#functionReturns"},{"include":"#mdDocumentation"},{"include":"#record"},{"include":"#string"},{"include":"#keywords"},{"include":"#multiType"},{"include":"#type-primitive"},{"name":"variable.other.readwrite.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"},{"include":"#type-annotation"},{"include":"#typeDescription"},{"include":"#decl-block"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"},"2":{"name":"entity.name.type.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}}]},"typeDescription":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?=;)","patterns":[{"include":"#numbers"},{"include":"#decl-block"},{"include":"#type-primitive"},{"name":"storage.type.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}]}]},"types":{"patterns":[{"name":"storage.type.ballerina","match":"\\b(handle|any|anydata|future|typedesc)\\b"},{"name":"support.type.primitive.ballerina","match":"\\b(boolean|int|string|float|decimal|byte|json|xml)\\b"},{"name":"storage.type.ballerina","match":"\\b(map|error|never|readonly|distinct)\\b"},{"name":"storage.type.ballerina","match":"\\b(stream)\\b"}]},"var-expr":{"patterns":[{"name":"meta.var.expr.ballerina","begin":"(?=\\b(var))","end":"(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"begin":"\\b(var)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.type.annotation.ballerina","match":"\\|"},{"name":"keyword.other.ballerina","match":"\\bin\\b"},{"include":"#stringTemplate"},{"include":"#numbers"},{"include":"#multiType"},{"include":"#self-literal"},{"include":"#var-single-variable"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"},{"include":"#keywords"},{"include":"#type-tuple"}],"beginCaptures":{"0":{"name":"storage.modifier.ballerina support.type.primitive.ballerina"}}},{"include":"#punctuation-comma"},{"name":"meta.var.expr.ballerina","begin":"(?=\\b(const(?!\\s+enum\\b)))","end":"(?!\\b(const(?!\\s+enum\\b)))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"begin":"\\b(const(?!\\s+enum\\b))\\s+","end":"(?=\\S)","beginCaptures":{"0":{"name":"keyword.other.ballerina"}}},{"include":"#stringTemplate"},{"include":"#var-single-const"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"}]},{"include":"#punctuation-comma"},{"name":"meta.var.expr.ballerina","begin":"(string|int|boolean|float|byte|decimal|json|xml)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"include":"#xml"},{"begin":"(string|int|boolean|float|byte|decimal|json|xml)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.type.annotation.ballerina","match":"\\|"},{"include":"#stringTemplate"},{"include":"#numbers"},{"include":"#multiType"},{"include":"#var-single-variable"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"},{"include":"#keywords"},{"include":"#type-tuple"}],"beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"include":"#punctuation-comma"}]},"var-single-const":{"patterns":[{"name":"meta.var-single-variable.expr.ballerina"},{"begin":"\\b(var)\\s*","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"include":"#types"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=$|^|[;,=}]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))","beginCaptures":{"1":{"name":"meta.definition.variable.ballerina variable.other.constant.ballerina"}}}]},"var-single-variable":{"patterns":[{"name":"meta.var-single-variable.expr.ballerina","begin":"((string|int|boolean|float|byte|decimal|json|xml)|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?=\\s+|\\;|\\\u003e|\\|)","end":"(?=$|^|[;,=}])","patterns":[{"include":"#call"},{"include":"#self-literal"},{"include":"#if-statement"},{"include":"#string"},{"include":"#numbers"},{"include":"#keywords"}],"beginCaptures":{"2":{"name":"support.type.primitive.ballerina"},"3":{"name":"storage.type.ballerina"},"4":{"name":"meta.definition.variable.ballerina variable.other.readwrite.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}},{"name":"meta.var-single-variable.expr.ballerina","begin":"([_$[:alpha:]][_$[:alnum:]]*)\\s+(\\!)?","end":"(?=$|^|[;,=}]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))","beginCaptures":{"1":{"name":"meta.definition.variable.ballerina variable.other.readwrite.ballerina"},"2":{"name":"keyword.operator.definiteassignment.ballerina"}}}]},"variable-initializer":{"patterns":[{"begin":"(?\u003c!=|!)(=)(?!=|\u003e)(?=\\s*\\S)","end":"(?=$|[,);}\\]])","patterns":[{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#xml"},{"include":"#function-defn"},{"include":"#expression"},{"include":"#punctuation-accessor"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.ballerina"}}},{"begin":"(?\u003c!=|!)(=)(?!=|\u003e)","end":"(?=[,);}\\]]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))|(?=^\\s*$)|(?\u003c=\\S)(?\u003c!=)(?=\\s*$)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.ballerina"}}}]},"variableDef":{"patterns":[{"begin":"(?:(?!\\+)[_$[:alpha:]][_$[:alnum:]]*)(?: |\\t)|(?=\\()","end":"(?:[_$[:alpha:]][_$[:alnum:]]*)|(?=\\,)|(?=;)|\\.\\.\\.","patterns":[{"include":"#tupleType"},{"include":"#constrainType"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"variableDefInline":{"patterns":[{"begin":"(?=record)|(?=object)","end":"(?=;)","patterns":[{"include":"#record"},{"include":"#objectDec"}]}]},"workerBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#code"}]}]},"workerDef":{"patterns":[{"begin":"\\bworker\\b","end":"\\}","patterns":[{"include":"#functionReturns"},{"include":"#workerBody"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"xml":{"patterns":[{"name":"string.template.ballerina","begin":"(\\bxml)(\\s*)(`)","end":"`","patterns":[{"include":"#xmlTag"},{"include":"#xmlComment"},{"include":"#templateVariable"},{"name":"string","match":"."}],"beginCaptures":{"1":{"name":"support.type.primitive.ballerina"},"3":{"name":"punctuation.definition.string.template.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.string.template.end.ballerina"}}}]},"xmlComment":{"patterns":[{"name":"comment.block.xml.ballerina","begin":"\u003c!--","end":"--\u003e","beginCaptures":{"0":{"name":"comment.block.xml.ballerina"}},"endCaptures":{"0":{"name":"comment.block.xml.ballerina"}}}]},"xmlDoubleQuotedString":{"patterns":[{"begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"name":"string","match":"."}],"beginCaptures":{"0":{"name":"string.begin.ballerina"}},"endCaptures":{"0":{"name":"string.end.ballerina"}}}]},"xmlSingleQuotedString":{"patterns":[{"begin":"\\'","end":"\\'","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"name":"string","match":"."}],"beginCaptures":{"0":{"name":"string.begin.ballerina"}},"endCaptures":{"0":{"name":"string.end.ballerina"}}}]},"xmlTag":{"patterns":[{"begin":"(\u003c\\/?\\??)\\s*([-_a-zA-Z0-9]+)","end":"\\??\\/?\u003e","patterns":[{"include":"#xmlSingleQuotedString"},{"include":"#xmlDoubleQuotedString"},{"name":"keyword.other.ballerina","match":"xmlns"},{"name":"entity.other.attribute-name.xml.ballerina","match":"([a-zA-Z0-9-]+)"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.xml.ballerina"},"2":{"name":"entity.name.tag.xml.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.xml.ballerina"}}}]}}}
1
+ {"name":"Ballerina","scopeName":"source.ballerina","patterns":[{"include":"#statements"}],"repository":{"access-modifier":{"patterns":[{"name":"storage.modifier.ballerina keyword.other.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(public|private)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"annotationAttachment":{"patterns":[{"match":"(@)((?:[_$[:alpha:]][_$[:alnum:]]*))\\s*(:?)\\s*((?:[_$[:alpha:]][_$[:alnum:]]*)?)","captures":{"1":{"name":"punctuation.decorator.ballerina"},"2":{"name":"support.type.ballerina"},"3":{"name":"punctuation.decorator.ballerina"},"4":{"name":"support.type.ballerina"}}}]},"annotationDefinition":{"patterns":[{"begin":"\\bannotation\\b","end":";","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"array-literal":{"name":"meta.array.literal.ballerina","begin":"\\s*(\\[)","end":"\\]","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"meta.brace.square.ballerina"}},"endCaptures":{"0":{"name":"meta.brace.square.ballerina"}}},"booleans":{"patterns":[{"name":"constant.language.boolean.ballerina","match":"\\b(true|false)\\b"}]},"butClause":{"patterns":[{"begin":"=\u003e","end":",|(?=\\})","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"meta.arrow.ballerina storage.type.function.arrow.ballerina"}}}]},"butExp":{"patterns":[{"begin":"\\bbut\\b","end":"\\}","patterns":[{"include":"#butExpBody"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"butExpBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#parameter"},{"include":"#butClause"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"call":{"patterns":[{"name":"entity.name.function.ballerina","match":"(?:\\')?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()"}]},"callableUnitBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#workerDef"},{"include":"#service-decl"},{"include":"#objectDec"},{"include":"#function-defn"},{"include":"#forkStatement"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"class-body":{"name":"meta.class.body.ballerina","begin":"\\{","end":"\\}","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#function-defn"},{"include":"#var-expr"},{"include":"#variable-initializer"},{"include":"#access-modifier"},{"include":"#keywords"},{"begin":"(?\u003c=:)\\s*","end":"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"class-defn":{"name":"meta.class.ballerina","begin":"(\\s+)(class\\b)|^class\\b(?=\\s+|/[/*])","end":"(?\u003c=\\})","patterns":[{"include":"#keywords"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","captures":{"0":{"name":"entity.name.type.class.ballerina"}}},{"include":"#class-body"}],"beginCaptures":{"0":{"name":"storage.type.class.ballerina keyword.other.ballerina"}}},"code":{"patterns":[{"include":"#booleans"},{"include":"#matchStatement"},{"include":"#butExp"},{"include":"#xml"},{"include":"#stringTemplate"},{"include":"#keywords"},{"include":"#strings"},{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#annotationAttachment"},{"include":"#numbers"},{"include":"#maps"},{"include":"#paranthesised"},{"include":"#paranthesisedBracket"}]},"comment":{"patterns":[{"name":"comment.ballerina","match":"\\/\\/.*"}]},"constrainType":{"patterns":[{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#comment"},{"include":"#constrainType"},{"name":"storage.type.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}}]},"control-statement":{"patterns":[{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))","end":"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.control.flow.ballerina"}}},{"include":"#for-loop"},{"include":"#if-statement"},{"name":"keyword.control.conditional.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"decl-block":{"name":"meta.block.ballerina","begin":"\\{","end":"(?=\\} external;)|(\\})","patterns":[{"include":"#statements"},{"include":"#mdDocumentation"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"declaration":{"patterns":[{"include":"#import-declaration"},{"include":"#var-expr"},{"include":"#typeDefinition"},{"include":"#function-defn"},{"include":"#service-decl"},{"include":"#class-defn"},{"include":"#enum-decl"},{"include":"#source"},{"include":"#keywords"}]},"defaultValue":{"patterns":[{"begin":"[=:]","end":"(?=[,)])","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.operator.ballerina"}}}]},"defaultWithParentheses":{"patterns":[{"begin":"\\(","end":"\\)","beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"documentationBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"match":"(P|R|T|F|V)({{)(.*)(}})","captures":{"1":{"name":"keyword.other.ballerina.documentation"},"2":{"name":"keyword.other.ballerina.documentation"},"3":{"name":"variable.parameter.ballerina.documentation"},"4":{"name":"keyword.other.ballerina.documentation"}}},{"name":"comment.block.code.ballerina.documentation","begin":"\\```","end":"\\```"},{"name":"comment.block.code.ballerina.documentation","begin":"\\``","end":"\\``"},{"name":"comment.block.code.ballerina.documentation","begin":"\\`","end":"\\`"},{"name":"comment.block.ballerina.documentation","match":"."}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"documentationDef":{"patterns":[{"begin":"\\b(?:documentation|deprecated)\\b","end":"\\}","patterns":[{"include":"#documentationBody"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"delimiter.curly"}}}]},"enum-decl":{"name":"meta.enum.declaration.ballerina","begin":"(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"begin":"\\{","end":"\\}","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=,|\\}|$)","patterns":[{"include":"#comment"},{"include":"#variable-initializer"}],"beginCaptures":{"0":{"name":"variable.other.enummember.ballerina"}}},{"begin":"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))","end":"(?=,|\\}|$)","patterns":[{"include":"#string"},{"include":"#array-literal"},{"include":"#comment"},{"include":"#variable-initializer"}]},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}],"beginCaptures":{"1":{"name":"storage.modifier.ballerina"},"2":{"name":"keyword.other.ballerina"},"3":{"name":"entity.name.type.enum.ballerina"}}},"errorDestructure":{"patterns":[{"begin":"error","end":"(?==\u003e)","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"expression":{"patterns":[{"include":"#keywords"},{"include":"#expressionWithoutIdentifiers"},{"include":"#identifiers"}]},"expression-operators":{"patterns":[{"name":"keyword.operator.assignment.compound.ballerina","match":"\\*=|(?\u003c!\\()/=|%=|\\+=|\\-="},{"name":"keyword.operator.assignment.compound.bitwise.ballerina","match":"\\\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|\\|="},{"name":"keyword.operator.bitwise.shift.ballerina","match":"\u003c\u003c|\u003e\u003e\u003e|\u003e\u003e"},{"name":"keyword.operator.comparison.ballerina","match":"===|!==|==|!="},{"name":"keyword.operator.relational.ballerina","match":"\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e"},{"match":"(?\u003c=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))","captures":{"1":{"name":"keyword.operator.logical.ballerina"},"2":{"name":"keyword.operator.assignment.compound.ballerina"},"3":{"name":"keyword.operator.arithmetic.ballerina"}}},{"name":"keyword.operator.logical.ballerina","match":"\\!|\u0026\u0026|\\|\\||\\?\\?"},{"name":"keyword.operator.bitwise.ballerina","match":"\\\u0026|~|\\^|\\|"},{"name":"keyword.operator.assignment.ballerina","match":"\\="},{"name":"keyword.operator.decrement.ballerina","match":"--"},{"name":"keyword.operator.increment.ballerina","match":"\\+\\+"},{"name":"keyword.operator.arithmetic.ballerina","match":"%|\\*|/|-|\\+"}]},"expressionWithoutIdentifiers":{"patterns":[{"include":"#xml"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#comment"},{"include":"#object-literal"},{"include":"#ternary-expression"},{"include":"#expression-operators"},{"include":"#literal"},{"include":"#paranthesised"}]},"for-loop":{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))foreach\\s*","end":"(?=\\{)","patterns":[{"name":"keyword.other.ballerina","match":"\\bin\\b"},{"include":"#identifiers"},{"include":"#comment"},{"include":"#var-expr"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.control.loop.ballerina"},"1":{"name":"support.type.primitive.ballerina"}}},"forkBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#workerDef"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"forkStatement":{"patterns":[{"begin":"\\bfork\\b","end":"\\}","patterns":[{"include":"#forkBody"}],"beginCaptures":{"0":{"name":"keyword.control.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"function-body":{"patterns":[{"include":"#comment"},{"include":"#functionParameters"},{"include":"#decl-block"},{"name":"meta.block.ballerina","begin":"\\=\u003e","end":"(?=\\;)|(?=\\,)|(?=)(?=\\);)","patterns":[{"include":"#statements"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"meta.arrow.ballerina storage.type.function.arrow.ballerina"}}},{"name":"keyword.generator.asterisk.ballerina","match":"\\*"}]},"function-defn":{"name":"meta.function.ballerina","begin":"(?:(public|private)\\s+)?(function\\b)","end":"(?\u003c=\\;)|(?\u003c=\\})|(?\u003c=\\,)|(?=)(?=\\);)","patterns":[{"name":"keyword.ballerina","match":"\\bexternal\\b"},{"include":"#stringTemplate"},{"include":"#annotationAttachment"},{"include":"#functionReturns"},{"include":"#functionName"},{"include":"#functionParameters"},{"include":"#punctuation-semicolon"},{"include":"#function-body"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"},"2":{"name":"keyword.other.ballerina"}}},"function-parameters-body":{"patterns":[{"include":"#comment"},{"include":"#numbers"},{"include":"#string"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#keywords"},{"include":"#parameter-name"},{"include":"#array-literal"},{"include":"#variable-initializer"},{"include":"#identifiers"},{"name":"punctuation.separator.parameter.ballerina","match":"\\,"}]},"functionName":{"patterns":[{"name":"keyword.other.ballerina","match":"\\bfunction\\b"},{"include":"#type-primitive"},{"include":"#self-literal"},{"include":"#string"},{"match":"\\s+(\\b(self)|\\b(is|new|isolated|null|function|in)\\b|(string|int|boolean|float|byte|decimal|json|xml|anydata)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))","captures":{"2":{"name":"variable.language.this.ballerina"},"3":{"name":"keyword.other.ballerina"},"4":{"name":"support.type.primitive.ballerina"},"5":{"name":"storage.type.ballerina"},"6":{"name":"meta.definition.function.ballerina entity.name.function.ballerina"}}}]},"functionParameters":{"name":"meta.parameters.ballerina","begin":"\\(|\\[","end":"\\)|\\]","patterns":[{"include":"#function-parameters-body"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}},"functionReturns":{"name":"meta.type.function.return.ballerina","begin":"\\s*(returns)\\s*","end":"(?==\u003e)|(\\=)|(?=\\{)|(\\))|(?=\\;)","patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numbers"},{"include":"#keywords"},{"include":"#type-primitive"},{"match":"\\s*\\b(var)(?=\\s+|\\[|\\?)","captures":{"1":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.ballerina","match":"\\|"},{"name":"keyword.operator.optional.ballerina","match":"\\?"},{"include":"#type-annotation"},{"include":"#type-tuple"},{"include":"#keywords"},{"name":"variable.other.readwrite.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"}},"endCaptures":{"1":{"name":"keyword.operator.ballerina"}}},"functionType":{"patterns":[{"begin":"\\bfunction\\b","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#comment"},{"include":"#functionTypeParamList"},{"include":"#functionTypeReturns"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"functionTypeParamList":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"name":"keyword","match":"public"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#parameterTuple"},{"include":"#functionTypeType"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"delimiter.parenthesis"}},"endCaptures":{"0":{"name":"delimiter.parenthesis"}}}]},"functionTypeReturns":{"patterns":[{"begin":"\\breturns\\b","end":"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))","patterns":[{"include":"#functionTypeReturnsParameter"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword"}}}]},"functionTypeReturnsParameter":{"patterns":[{"begin":"((?=record|object|function)|(?:[_$[:alpha:]][_$[:alnum:]]*))","end":"(?=\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#defaultValue"},{"include":"#comment"},{"include":"#parameterTuple"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"functionTypeType":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))","beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"identifiers":{"patterns":[{"match":"(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((\n (function\\s*[(\u003c*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=\u003e)\n )) |\n ((\n ((\u003c\\s*$)|((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if =\u003e is on new line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with =\u003e on same line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=\u003e # arrow operator\n)\n ))\n))","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"variable.other.property.ballerina"}}},{"include":"#type-primitive"},{"include":"#self-literal"},{"name":"keyword.control.ballerina","match":"\\b(check|foreach|if|checkpanic)\\b"},{"include":"#call"},{"name":"support.type.primitive.ballerina","match":"\\b(var)\\b"},{"match":"([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?","captures":{"1":{"name":"variable.other.readwrite.ballerina"},"3":{"name":"punctuation.accessor.ballerina"},"4":{"name":"entity.name.function.ballerina"},"5":{"name":"punctuation.definition.parameters.begin.ballerina"},"6":{"name":"punctuation.definition.parameters.end.ballerina"}}},{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#type-annotation"}]},"if-statement":{"patterns":[{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?=\\bif\\b\\s*(?!\\{))","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(if)\\s*(\\()?","end":"(\\))|(?=\\{)","patterns":[{"include":"#decl-block"},{"include":"#keywords"},{"include":"#identifiers"},{"include":"#type-primitive"},{"include":"#xml"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#comment"},{"include":"#ternary-expression"},{"include":"#expression-operators"},{"include":"#literal"},{"include":"#paranthesised"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.ballerina"},"2":{"name":"meta.brace.round.ballerina"}},"endCaptures":{"1":{"name":"meta.brace.round.ballerina"}}},{"begin":"(?\u003c=\\))(?=\\s|\\=)","end":"(?=\\{)","patterns":[{"include":"#literal"},{"include":"#keywords"}]},{"include":"#decl-block"}]}]},"import-clause":{"patterns":[{"include":"#comment"},{"match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*))","captures":{"1":{"name":"keyword.control.default.ballerina"},"3":{"name":"variable.other.readwrite.ballerina meta.import.module.ballerina"},"5":{"name":"keyword.control.default.ballerina"},"6":{"name":"variable.other.readwrite.alias.ballerina"}}},{"name":"variable.other.readwrite.alias.ballerina","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]},"import-declaration":{"name":"meta.import.ballerina","begin":"\\bimport\\b","end":"\\;","patterns":[{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#keywords"},{"include":"#comment"},{"include":"#import-clause"},{"include":"#punctuation-accessor"}],"beginCaptures":{"0":{"name":"keyword.control.import.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}},"keywords":{"patterns":[{"name":"keyword.control.ballerina","match":"\\b(fork|join|while|returns|transaction|transactional|retry|commit|rollback|typeof|enum|wait|match)\\b"},{"name":"keyword.control.flow.ballerina","match":"\\b(return|break|continue|check|checkpanic|panic|trap|from|where)\\b"},{"name":"keyword.other.ballerina","match":"\\b(public|private|external|return|record|object|remote|abstract|client|true|false|fail|import|version)\\b"},{"name":"keyword.other.ballerina","match":"\\b(as|on|function|resource|listener|const|final|is|null|lock|annotation|source|worker|parameter|field|isolated|in)\\b"},{"name":"keyword.other.ballerina","match":"\\b(xmlns|table|key|let|new|select|start|flush|default|do|base16|base64|conflict)\\b"},{"name":"keyword.other.ballerina","match":"\\b(limit|outer|equals|order|by|ascending|descending|class|configurable|variable|module|service)\\b"},{"name":"meta.arrow.ballerina storage.type.function.arrow.ballerina","match":"(=\u003e)"},{"name":"keyword.operator.ballerina","match":"(!|%|\\+|\\-|~=|===|==|=|!=|!==|\u003c|\u003e|\u0026|\\||\\?:|\\.\\.\\.|\u003c=|\u003e=|\u0026\u0026|\\|\\||~|\u003e\u003e|\u003e\u003e\u003e)"},{"include":"#types"},{"include":"#self-literal"},{"include":"#type-primitive"}]},"literal":{"patterns":[{"include":"#booleans"},{"include":"#numbers"},{"include":"#strings"},{"include":"#maps"},{"include":"#self-literal"},{"include":"#array-literal"}]},"maps":{"patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}]}]},"matchBindingPattern":{"patterns":[{"begin":"var","end":"(?==\u003e)|,","patterns":[{"include":"#errorDestructure"},{"include":"#code"},{"name":"variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"matchStatement":{"patterns":[{"begin":"\\bmatch\\b","end":"\\}","patterns":[{"include":"#matchStatementBody"},{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.control.ballerina"}}}]},"matchStatementBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#literal"},{"include":"#matchBindingPattern"},{"include":"#matchStatementPatternClause"},{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"matchStatementPatternClause":{"patterns":[{"begin":"=\u003e","end":"((\\})|;|,)","patterns":[{"include":"#callableUnitBody"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"mdDocumentation":{"name":"comment.mddocs.ballerina","begin":"\\#","end":"[\\r\\n]+","patterns":[{"include":"#mdDocumentationReturnParamDescription"},{"include":"#mdDocumentationParamDescription"}]},"mdDocumentationParamDescription":{"patterns":[{"begin":"(\\+\\s+)(\\'?[_$[:alpha:]][_$[:alnum:]]*)(\\s*\\-\\s+)","end":"(?=[^#\\r\\n]|(?:# *?\\+))","patterns":[{"name":"comment.mddocs.paramdesc.ballerina","match":"#.*"}],"beginCaptures":{"1":{"name":"keyword.operator.ballerina"},"2":{"name":"variable.other.readwrite.ballerina"},"3":{"name":"keyword.operator.ballerina"}}}]},"mdDocumentationReturnParamDescription":{"patterns":[{"begin":"(#)(?: *?)(\\+)(?: *)(return)(?: *)(-)?(.*)","end":"(?=[^#\\r\\n]|(?:# *?\\+))","patterns":[{"name":"comment.mddocs.returnparamdesc.ballerina","match":"#.*"}],"beginCaptures":{"1":{"name":"comment.mddocs.ballerina"},"2":{"name":"keyword.ballerina"},"3":{"name":"keyword.ballerina"},"4":{"name":"keyword.ballerina"},"5":{"name":"comment.mddocs.returnparamdesc.ballerina"}}}]},"multiType":{"patterns":[{"name":"storage.type.ballerina","match":"(?\u003c=\\|)([_$[:alpha:]][_$[:alnum:]]*)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)"},{"name":"keyword.operator.ballerina","match":"\\|"}]},"numbers":{"patterns":[{"name":"constant.numeric.decimal.ballerina","match":"\\b0[xX][\\da-fA-F]+\\b|\\b\\d+(?:\\.(?:\\d+|$))?"}]},"object-literal":{"name":"meta.objectliteral.ballerina","begin":"\\{","end":"\\}","patterns":[{"include":"#object-member"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"object-member":{"patterns":[{"include":"#comment"},{"include":"#function-defn"},{"include":"#literal"},{"include":"#keywords"},{"include":"#expression"},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?=\\[)","end":"(?=:)|((?\u003c=[\\]])(?=\\s*[\\(\\\u003c]))","patterns":[{"include":"#comment"}]},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?=[\\'\\\"\\`])","end":"(?=:)|((?\u003c=[\\'\\\"\\`])(?=((\\s*[\\(\\\u003c,}])|(\\n*})|(\\s+(as)\\s+))))","patterns":[{"include":"#comment"},{"include":"#string"}]},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?x)(?=(\\b(?\u003c!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))","end":"(?=:)|(?=\\s*([\\(\\\u003c,}])|(\\s+as\\s+))","patterns":[{"include":"#comment"},{"include":"#numbers"}]},{"name":"meta.method.declaration.ballerina","begin":"(?\u003c=[\\]\\'\\\"\\`])(?=\\s*[\\(\\\u003c])","end":"(?=\\}|;|,)|(?\u003c=\\})","patterns":[{"include":"#function-body"}]},{"name":"meta.object.member.ballerina","match":"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)","captures":{"0":{"name":"meta.object-literal.key.ballerina"},"1":{"name":"constant.numeric.decimal.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((\n (function\\s*[(\u003c*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=\u003e)\n )) |\n ((\n ((\u003c\\s*$)|((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if =\u003e is on new line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with =\u003e on same line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=\u003e # arrow operator\n)\n ))\n)))","captures":{"0":{"name":"meta.object-literal.key.ballerina"},"1":{"name":"entity.name.function.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)","captures":{"0":{"name":"meta.object-literal.key.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"\\.\\.\\.","end":"(?=,|\\})","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.spread.ballerina"}}},{"name":"meta.object.member.ballerina","match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)","captures":{"1":{"name":"variable.other.readwrite.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+(const)(?=\\s*([,}]|$))","captures":{"1":{"name":"keyword.control.as.ballerina"},"2":{"name":"storage.modifier.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+","end":"(?=[;),}\\]:?\\-\\+\\\u003e]|\\|\\||\\\u0026\\\u0026|\\!\\=\\=|$|^|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+))","beginCaptures":{"1":{"name":"keyword.control.as.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)","end":"(?=,|\\}|$|\\/\\/|\\/\\*)","patterns":[{"include":"#expression"}]}]},"objectDec":{"patterns":[{"begin":"\\bobject\\b(?!:)","end":"(?\u003c=\\})","patterns":[{"include":"#decl-block"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}}]},"objectInitBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"objectInitParameters":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#code"},{"name":"variable.parameter.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}}]},"objectMemberFunctionDec":{"patterns":[{"begin":"\\bfunction\\b","end":";","patterns":[{"include":"#functionParameters"},{"name":"keyword.ballerina","match":"\\breturns\\b"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"parameter":{"patterns":[{"begin":"((?=record|object|function)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)|(?:[_$[:alpha:]][_$[:alnum:]]*))","end":"(?:\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#parameterWithDescriptor"},{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#defaultValue"},{"include":"#comment"},{"include":"#parameterTuple"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"parameter-name":{"patterns":[{"match":"\\s*\\b(var)\\s+","captures":{"1":{"name":"support.type.primitive.ballerina"}}},{"match":"(?x)(?:(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+)?(?:(\\.\\.\\.)\\s*)?(?\u003c!=|:)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(this)|(string|int|boolean|float|byte|decimal|json|xml|anydata)|\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)","captures":{"10":{"name":"keyword.operator.optional.ballerina"},"2":{"name":"keyword.operator.rest.ballerina"},"3":{"name":"support.type.primitive.ballerina"},"4":{"name":"keyword.other.ballerina"},"5":{"name":"constant.language.boolean.ballerina"},"6":{"name":"keyword.control.flow.ballerina"},"7":{"name":"storage.type.ballerina"},"8":{"name":"variable.parameter.ballerina"},"9":{"name":"variable.parameter.ballerina"}}}]},"parameterTuple":{"patterns":[{"begin":"\\[","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))","patterns":[{"include":"#record"},{"include":"#objectDec"},{"include":"#parameterTupleType"},{"include":"#parameterTupleEnd"},{"include":"#comment"}]}]},"parameterTupleEnd":{"patterns":[{"begin":"\\]","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))","patterns":[{"include":"#defaultWithParentheses"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}]}]},"parameterTupleType":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?:\\,)|(?:\\|)|(?=\\])","beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"parameterWithDescriptor":{"patterns":[{"begin":"\\\u0026","end":"(?=\\,)|(?=\\|)|(?=\\))","patterns":[{"include":"#parameter"}],"beginCaptures":{"0":{"name":"keyword.operator.ballerina"}}}]},"parameters":{"patterns":[{"name":"keyword.control.flow.ballerina","match":"\\s*(return|break|continue|check|checkpanic|panic|trap|from|where)\\b"},{"name":"keyword.other.ballerina","match":"\\s*(let|select)\\b"},{"name":"punctuation.separator.parameter.ballerina","match":"\\,"}]},"paranthesised":{"name":"meta.brace.round.block.ballerina","begin":"\\(","end":"\\)","patterns":[{"include":"#self-literal"},{"include":"#function-defn"},{"include":"#decl-block"},{"include":"#comment"},{"include":"#string"},{"include":"#parameters"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#stringTemplate"},{"include":"#parameter-name"},{"include":"#variable-initializer"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brace.round.ballerina"}},"endCaptures":{"0":{"name":"meta.brace.round.ballerina"}}},"paranthesisedBracket":{"patterns":[{"begin":"\\[","end":"\\]","patterns":[{"include":"#comment"},{"include":"#code"}]}]},"punctuation-accessor":{"patterns":[{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"}}}]},"punctuation-comma":{"patterns":[{"name":"punctuation.separator.comma.ballerina","match":","}]},"punctuation-semicolon":{"patterns":[{"name":"punctuation.terminator.statement.ballerina","match":";"}]},"record":{"name":"meta.record.ballerina","begin":"\\brecord\\b","end":"(?\u003c=\\})","patterns":[{"include":"#recordBody"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}},"recordBody":{"patterns":[{"include":"#decl-block"}]},"recordLiteral":{"patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"self-literal":{"patterns":[{"match":"(\\bself\\b)\\s*(.)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()","captures":{"1":{"name":"variable.language.this.ballerina"},"2":{"name":"punctuation.accessor.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"name":"variable.language.this.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))self\\b(?!\\$)"}]},"service-decl":{"name":"meta.service.declaration.ballerina","begin":"\\bservice\\b","end":"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|(?\u003c=\\})|(?\u003c=\\,)","patterns":[{"include":"#class-defn"},{"include":"#serviceName"},{"include":"#serviceOn"},{"include":"#serviceBody"},{"include":"#objectDec"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}},"serviceBody":{"patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#documentationDef"},{"include":"#decl-block"}]},"serviceName":{"patterns":[{"include":"#string"},{"name":"entity.service.path.ballerina"}]},"serviceOn":{"patterns":[{"begin":"on","end":"(?={)","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}}]},"source":{"patterns":[{"begin":"(\\bsource\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=\\,)|(?=\\;)","beginCaptures":{"1":{"name":"keyword.other.ballerina"},"2":{"name":"variable.other.readwrite.ballerina"}}}]},"statements":{"patterns":[{"include":"#stringTemplate"},{"include":"#declaration"},{"include":"#control-statement"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-semicolon"},{"include":"#string"},{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#keywords"},{"include":"#annotationAttachment"}]},"string":{"patterns":[{"name":"string.quoted.double.ballerina","begin":"\"","end":"(\")|((?:[^\\\\\\n])$)","patterns":[{"include":"#string-character-escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ballerina"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ballerina"},"2":{"name":"invalid.illegal.newline.ballerina"}}}]},"string-character-escape":{"patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"}]},"stringTemplate":{"patterns":[{"name":"string.template.ballerina","begin":"((string)|([_$[:alpha:]][_$[:alnum:]]*))?(`)","end":"\\\\?`","patterns":[{"include":"#template-substitution-element"},{"include":"#string-character-escape"}],"beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ballerina"},"2":{"name":"support.type.primitive.ballerina"},"4":{"name":"punctuation.definition.string.template.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.string.template.end.ballerina"}}}]},"strings":{"patterns":[{"begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"name":"string","match":"."}],"beginCaptures":{"0":{"name":"string.begin.ballerina"}},"endCaptures":{"0":{"name":"string.end.ballerina"}}}]},"template-substitution-element":{"patterns":[{"name":"meta.template.expression.ballerina","contentName":"meta.embedded.line.ballerina","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.ballerina"}}}]},"templateVariable":{"patterns":[{"begin":"\\${","end":"}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"constant.character.escape.ballerina"}},"endCaptures":{"0":{"name":"constant.character.escape.ballerina"}}}]},"ternary-expression":{"begin":"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)","end":"\\s*","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.ternary.ballerina"}},"endCaptures":{"1":{"name":"keyword.operator.ternary.ballerina"}}},"tupleType":{"patterns":[{"begin":"\\[","end":"(?=\\]|;)","patterns":[{"include":"#comment"},{"include":"#constrainType"},{"include":"#paranthesisedBracket"},{"name":"storage.type.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}]}]},"type":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numbers"},{"include":"#type-primitive"},{"include":"#type-tuple"}]},"type-annotation":{"patterns":[{"name":"meta.type.annotation.ballerina","begin":"(\\:)","end":"(?\u003c![:|\u0026])((?=$|^|[,);\\}\\]\\?\\\u003e\\=\u003e]|//)|(?==[^\u003e])|((?\u003c=[\\}\u003e\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))(\\?)?","patterns":[{"include":"#booleans"},{"include":"#stringTemplate"},{"include":"#self-literal"},{"include":"#xml"},{"include":"#call"},{"match":"\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|\\b(var)\\b|([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?","captures":{"1":{"name":"keyword.other.ballerina"},"10":{"name":"punctuation.definition.parameters.begin.ballerina"},"11":{"name":"punctuation.definition.parameters.end.ballerina"},"2":{"name":"constant.language.boolean.ballerina"},"3":{"name":"keyword.control.ballerina"},"4":{"name":"storage.type.ballerina"},"5":{"name":"support.type.primitive.ballerina"},"6":{"name":"variable.other.readwrite.ballerina"},"8":{"name":"punctuation.accessor.ballerina"},"9":{"name":"entity.name.function.ballerina"}}},{"name":"keyword.operator.optional.ballerina","match":"\\?"},{"include":"#multiType"},{"include":"#type"},{"include":"#paranthesised"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ballerina"}}}]},"type-primitive":{"patterns":[{"name":"support.type.primitive.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(string|int|boolean|float|byte|decimal|json|xml|anydata)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"type-tuple":{"name":"meta.type.tuple.ballerina","begin":"\\[","end":"\\]","patterns":[{"include":"#self-literal"},{"include":"#booleans"},{"name":"keyword.operator.rest.ballerina","match":"\\.\\.\\."},{"match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)","captures":{"1":{"name":"entity.name.label.ballerina"},"2":{"name":"keyword.operator.optional.ballerina"},"3":{"name":"punctuation.separator.label.ballerina"}}},{"include":"#identifiers"},{"include":"#type"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"meta.brace.square.ballerina"}},"endCaptures":{"0":{"name":"meta.brace.square.ballerina"}}},"typeDefinition":{"patterns":[{"begin":"(\\btype\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"\\;","patterns":[{"include":"#functionParameters"},{"include":"#functionReturns"},{"include":"#mdDocumentation"},{"include":"#record"},{"include":"#string"},{"include":"#keywords"},{"include":"#multiType"},{"include":"#type-primitive"},{"name":"variable.other.readwrite.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"},{"include":"#type-annotation"},{"include":"#typeDescription"},{"include":"#decl-block"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"},"2":{"name":"entity.name.type.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}}]},"typeDescription":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?=;)","patterns":[{"include":"#numbers"},{"include":"#decl-block"},{"include":"#type-primitive"},{"name":"storage.type.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}]}]},"types":{"patterns":[{"name":"storage.type.ballerina","match":"\\b(handle|any|future|typedesc)\\b"},{"name":"support.type.primitive.ballerina","match":"\\b(boolean|int|string|float|decimal|byte|json|xml|anydata)\\b"},{"name":"storage.type.ballerina","match":"\\b(map|error|never|readonly|distinct)\\b"},{"name":"storage.type.ballerina","match":"\\b(stream)\\b"}]},"var-expr":{"patterns":[{"name":"meta.var.expr.ballerina","begin":"(?=\\b(var))","end":"(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?=(if)\\s+))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"begin":"\\b(var)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.type.annotation.ballerina","match":"\\|"},{"name":"keyword.other.ballerina","match":"\\bin\\b"},{"include":"#comment"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#numbers"},{"include":"#multiType"},{"include":"#self-literal"},{"include":"#var-single-variable"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"},{"include":"#keywords"},{"include":"#type-tuple"}],"beginCaptures":{"0":{"name":"storage.modifier.ballerina support.type.primitive.ballerina"}}},{"include":"#punctuation-comma"},{"name":"meta.var.expr.ballerina","begin":"(?=\\b(const(?!\\s+enum\\b)))","end":"(?!\\b(const(?!\\s+enum\\b)))((?=\\bannotation\\b|;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"begin":"\\b(const(?!\\s+enum\\b))\\s+","end":"(?=\\S)","beginCaptures":{"0":{"name":"keyword.other.ballerina"}}},{"include":"#comment"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#var-single-const"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"}]},{"include":"#punctuation-comma"},{"name":"meta.var.expr.ballerina","begin":"(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"include":"#xml"},{"begin":"(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.type.annotation.ballerina","match":"\\|"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#numbers"},{"include":"#multiType"},{"include":"#var-single-variable"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"},{"include":"#keywords"},{"include":"#type-tuple"}],"beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"include":"#punctuation-comma"}]},"var-single-const":{"patterns":[{"name":"meta.var-single-variable.expr.ballerina"},{"begin":"\\b(var)\\s*","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"include":"#types"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=$|^|[;,=}]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))","beginCaptures":{"1":{"name":"meta.definition.variable.ballerina variable.other.constant.ballerina"}}}]},"var-single-variable":{"patterns":[{"name":"meta.var-single-variable.expr.ballerina","begin":"((string|int|boolean|float|byte|decimal|json|xml|anydata)|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?=\\s+|\\;|\\\u003e|\\|)","end":"(?=$|^|[;,=}])","patterns":[{"include":"#call"},{"include":"#self-literal"},{"include":"#if-statement"},{"include":"#string"},{"include":"#numbers"},{"include":"#keywords"}],"beginCaptures":{"2":{"name":"support.type.primitive.ballerina"},"3":{"name":"storage.type.ballerina"},"4":{"name":"meta.definition.variable.ballerina variable.other.readwrite.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}},{"name":"meta.var-single-variable.expr.ballerina","begin":"([_$[:alpha:]][_$[:alnum:]]*)\\s+(\\!)?","end":"(?=$|^|[;,=}]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))","beginCaptures":{"1":{"name":"meta.definition.variable.ballerina variable.other.readwrite.ballerina"},"2":{"name":"keyword.operator.definiteassignment.ballerina"}}}]},"variable-initializer":{"patterns":[{"begin":"(?\u003c!=|!)(=)(?!=|\u003e)(?=\\s*\\S)","end":"(?=$|[,);}\\]])","patterns":[{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#xml"},{"include":"#function-defn"},{"include":"#expression"},{"include":"#punctuation-accessor"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.ballerina"}}},{"begin":"(?\u003c!=|!)(=)(?!=|\u003e)","end":"(?=[,);}\\]]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))|(?=^\\s*$)|(?\u003c=\\S)(?\u003c!=)(?=\\s*$)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.ballerina"}}}]},"variableDef":{"patterns":[{"begin":"(?:(?!\\+)[_$[:alpha:]][_$[:alnum:]]*)(?: |\\t)|(?=\\()","end":"(?:[_$[:alpha:]][_$[:alnum:]]*)|(?=\\,)|(?=;)|\\.\\.\\.","patterns":[{"include":"#tupleType"},{"include":"#constrainType"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"variableDefInline":{"patterns":[{"begin":"(?=record)|(?=object)","end":"(?=;)","patterns":[{"include":"#record"},{"include":"#objectDec"}]}]},"workerBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#code"}]}]},"workerDef":{"patterns":[{"begin":"\\bworker\\b","end":"\\}","patterns":[{"include":"#functionReturns"},{"include":"#workerBody"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"xml":{"patterns":[{"name":"string.template.ballerina","begin":"(\\bxml)(\\s*)(`)","end":"`","patterns":[{"include":"#xmlTag"},{"include":"#xmlComment"},{"include":"#templateVariable"},{"name":"string","match":"."}],"beginCaptures":{"1":{"name":"support.type.primitive.ballerina"},"3":{"name":"punctuation.definition.string.template.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.string.template.end.ballerina"}}}]},"xmlComment":{"patterns":[{"name":"comment.block.xml.ballerina","begin":"\u003c!--","end":"--\u003e","beginCaptures":{"0":{"name":"comment.block.xml.ballerina"}},"endCaptures":{"0":{"name":"comment.block.xml.ballerina"}}}]},"xmlDoubleQuotedString":{"patterns":[{"begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"name":"string","match":"."}],"beginCaptures":{"0":{"name":"string.begin.ballerina"}},"endCaptures":{"0":{"name":"string.end.ballerina"}}}]},"xmlSingleQuotedString":{"patterns":[{"begin":"\\'","end":"\\'","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"name":"string","match":"."}],"beginCaptures":{"0":{"name":"string.begin.ballerina"}},"endCaptures":{"0":{"name":"string.end.ballerina"}}}]},"xmlTag":{"patterns":[{"begin":"(\u003c\\/?\\??)\\s*([-_a-zA-Z0-9]+)","end":"\\??\\/?\u003e","patterns":[{"include":"#xmlSingleQuotedString"},{"include":"#xmlDoubleQuotedString"},{"name":"keyword.other.ballerina","match":"xmlns"},{"name":"entity.other.attribute-name.xml.ballerina","match":"([a-zA-Z0-9-]+)"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.xml.ballerina"},"2":{"name":"entity.name.tag.xml.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.xml.ballerina"}}}]}}}
@@ -0,0 +1 @@
1
+ {"name":"Berry","scopeName":"source.berry.bytecode","patterns":[{"include":"#comments"},{"include":"#keywords"},{"include":"#number"},{"include":"#operator"},{"include":"#entity"}],"repository":{"comments":{"name":"comment.line.berry.bytecode","begin":"\\--","end":"\\n","patterns":[{}]},"entity":{"patterns":[{"name":"entity.name.function.berry","match":"^\\s*\\w+(?=\\s*(:|-\u003e))"}]},"keywords":{"patterns":[{"name":"keyword.berry.bytecode","match":"or"}]},"number":{"patterns":[{"name":"constant.numeric.berry.bytecode","match":"\\b((0x)?[0-9]+)\\b"}]},"operator":{"patterns":[{"name":"keyword.operator.berry.bytecode","match":"\\(|\\)|:|\\[|\\]|\\||-\u003e"}]}}}
@@ -0,0 +1 @@
1
+ {"name":"Berry","scopeName":"source.berry","patterns":[{"include":"#controls"},{"include":"#strings"},{"include":"#comment-block"},{"include":"#comments"},{"include":"#keywords"},{"include":"#function"},{"include":"#member"},{"include":"#identifier"},{"include":"#number"},{"include":"#operator"}],"repository":{"comment-block":{"name":"comment.berry","begin":"\\#\\-","end":"\\-#","patterns":[{}]},"comments":{"name":"comment.line.berry","begin":"\\#","end":"\\n","patterns":[{}]},"controls":{"patterns":[{"name":"keyword.control.berry","match":"\\b(if|elif|else|for|while|do|end|break|continue|return|try|except|raise)\\b"}]},"function":{"patterns":[{"name":"entity.name.function.berry","match":"\\b([a-zA-Z_][a-zA-Z0-9_]*(?=\\s*\\())"}]},"identifier":{"patterns":[{"name":"identifier.berry","match":"\\b[_A-Za-z]\\w+\\b"}]},"keywords":{"patterns":[{"name":"keyword.berry","match":"\\b(var|static|def|class|true|false|nil|self|super|import|as)\\b"}]},"member":{"patterns":[{"match":"\\.([a-zA-Z_][a-zA-Z0-9_]*)","captures":{"0":{"name":"entity.other.attribute-name.berry"}}}]},"number":{"patterns":[{"name":"constant.numeric.berry","match":"0x[a-fA-F0-9]+|\\d+|(\\d+\\.?|\\.\\d)\\d*([eE][+-]?\\d+)?"}]},"operator":{"patterns":[{"name":"keyword.operator.berry","match":"\\(|\\)|\\[|\\]|\\.|-|\\!|~|\\*|/|%|\\+|\u0026|\\^|\\||\u003c|\u003e|=|:"}]},"strings":{"patterns":[{"name":"string.quoted.double.berry","match":"\"(\\\\.|[^\"])*\""},{"name":"string.quoted.single.berry","match":"'(\\\\.|[^'])*'"}]}}}
@@ -0,0 +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\\-_]+)"}]}
@@ -0,0 +1 @@
1
+ {"name":"bmsmap","scopeName":"source.bmsmap","patterns":[{"name":"strong comment.line.form_feed.bmsmap","match":"(\\f)"},{"name":"comment.line.modern","match":"(^\\*.*$)"},{"name":"constant.numeric.bmsmap","begin":"^(=COLS\u003e)\\s","end":"($)","patterns":[{"name":"markup.heading","match":"(.*)"}]},{"begin":"^\\s*([0-9][0-9][0-9][0-9][0-9][0-9])\\s","end":"($)","patterns":[{"include":"source.bms"}],"beginCaptures":{"0":{"name":"constant.numeric.bmsmap"}}},{"match":"(.*$)"}]}
@@ -0,0 +1 @@
1
+ {"name":"BND","scopeName":"source.bnd","patterns":[{"include":"#comments"},{"include":"#constants"},{"include":"#keywords"},{"include":"#strings"},{"include":"#support"}],"repository":{"comments":{"patterns":[{"name":"comment.line.bnd","begin":"(\\/\\*)","end":"(\\*\\/)"},{"name":"comment.line.bnd","begin":"\\-\\-","end":"\n"}]},"constants":{"patterns":[{"name":"constant.numeric.bnd","match":"(\\b[0-9]+)|([0-9]*[.][0-9]*)"},{"name":"constant.language.bnd","match":"[*][a-zA-Z][a-zA-Z0-9]*"}]},"keywords":{"patterns":[{"name":"keyword.other.bnd","match":"(?i)(STRPGMEXP|ENDPGMEXP|EXPORT)"},{"name":"keyword.other.bnd","match":"\u003c"}]},"strings":{"patterns":[{"name":"string.other.bnd.hex","begin":"(?i)x'","end":"'"},{"name":"string.quoted.single.bnd","begin":"('|\")","end":"'|\"","patterns":[{"name":"constant.character.escape.bnd","match":"\\\\."}]}]},"support":{"patterns":[{"name":"support.function.bnd","match":"(?i)[A-Za-z]+(?=\\()"}]}}}
@@ -0,0 +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":"(').*$\\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)(?\u003c![_[:alnum:]])(?\u003c!\\.)(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":"#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":"#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":"#function_call"},{"include":"#interface_declaration"},{"include":"#storage_types"},{"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_]*)\\s*\\()","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_]*)[\\$%!#])"},"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"},{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[\\s\\t]*(as))?","end":"\r?\n","patterns":[{"include":"#type_expression"}],"beginCaptures":{"1":{"name":"variable.object.property.brs"},"2":{"name":"keyword.control.as.brs"}}}],"beginCaptures":{"1":{"name":"storage.type.interface.brs"},"2":{"name":"entity.name.type.interface.brs"}},"endCaptures":{"1":{"name":"storage.type.interface.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"}}},"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:\\b\\.((?:[a-z0-9_])*)(?!\\s*\\()\\b)","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)"},"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).*$\\n?","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)\\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]*)"}}}