github-linguist 7.14.0 → 7.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +115 -71
  3. data/grammars/annotation.liquidhaskell.haskell.json +1 -1
  4. data/grammars/etc.json +1 -1
  5. data/grammars/go.mod.json +1 -0
  6. data/grammars/go.sum.json +1 -0
  7. data/grammars/hint.haskell.json +1 -1
  8. data/grammars/hint.message.haskell.json +1 -1
  9. data/grammars/hint.type.haskell.json +1 -1
  10. data/grammars/markdown.bicep.codeblock.json +1 -0
  11. data/grammars/markdown.codeblock.proto.json +1 -0
  12. data/grammars/markdown.mcfunction.codeblock.json +1 -0
  13. data/grammars/source.abap.json +1 -1
  14. data/grammars/source.aidl.json +1 -0
  15. data/grammars/source.al.json +1 -1
  16. data/grammars/source.angelscript.json +1 -1
  17. data/grammars/source.avro.json +1 -1
  18. data/grammars/source.ballerina.json +1 -1
  19. data/grammars/source.batchfile.json +1 -1
  20. data/grammars/source.bc.json +1 -0
  21. data/grammars/source.bicep.json +1 -1
  22. data/grammars/source.boo.json +1 -1
  23. data/grammars/source.bp.json +1 -0
  24. data/grammars/source.cil.json +1 -0
  25. data/grammars/source.cirru.json +1 -1
  26. data/grammars/source.cs.json +1 -1
  27. data/grammars/source.csound.json +1 -1
  28. data/grammars/source.css.json +1 -1
  29. data/grammars/source.cue.json +1 -0
  30. data/grammars/source.cuesheet.json +1 -0
  31. data/grammars/source.dart.json +1 -1
  32. data/grammars/source.dc.json +1 -0
  33. data/grammars/source.ditroff.json +1 -1
  34. data/grammars/source.dotenv.json +1 -0
  35. data/grammars/source.ebnf.json +1 -1
  36. data/grammars/source.ecl.json +1 -0
  37. data/grammars/source.ed.json +1 -0
  38. data/grammars/source.fnl.json +1 -0
  39. data/grammars/source.fontforge.json +1 -1
  40. data/grammars/source.fstar.json +1 -1
  41. data/grammars/source.ftl.json +1 -0
  42. data/grammars/source.gcode.json +1 -1
  43. data/grammars/source.gdscript.json +1 -1
  44. data/grammars/source.hack.json +1 -1
  45. data/grammars/source.haskell.json +1 -1
  46. data/grammars/source.hlcode.json +1 -0
  47. data/grammars/source.hsig.json +1 -1
  48. data/grammars/source.hx.json +1 -1
  49. data/grammars/source.hy.json +1 -1
  50. data/grammars/source.jest.snap.json +1 -0
  51. data/grammars/source.jq.json +1 -1
  52. data/grammars/source.json.json +1 -1
  53. data/grammars/source.julia.json +1 -1
  54. data/grammars/source.kakscript.json +1 -0
  55. data/grammars/source.keyvalues.json +1 -0
  56. data/grammars/source.kotlin.json +1 -1
  57. data/grammars/source.lean.json +1 -1
  58. data/grammars/source.m2.json +1 -1
  59. data/grammars/source.matlab.json +1 -1
  60. data/grammars/source.mcfunction.json +1 -1
  61. data/grammars/source.odin.json +1 -1
  62. data/grammars/source.opentype.json +1 -1
  63. data/grammars/source.pegjs.json +1 -0
  64. data/grammars/source.postscript.json +1 -1
  65. data/grammars/source.powershell.json +1 -1
  66. data/grammars/source.proto.json +1 -0
  67. data/grammars/source.purescript.json +1 -1
  68. data/grammars/source.regexp.json +1 -1
  69. data/grammars/source.regexp.oniguruma.json +1 -0
  70. data/grammars/source.rego.json +1 -1
  71. data/grammars/source.renpy.json +1 -1
  72. data/grammars/source.rescript.json +1 -1
  73. data/grammars/source.sed.json +1 -1
  74. data/grammars/source.sepolicy.json +1 -0
  75. data/grammars/source.shellcheckrc.json +1 -0
  76. data/grammars/source.sqf.json +1 -1
  77. data/grammars/source.swift.json +1 -1
  78. data/grammars/source.sy.json +1 -1
  79. data/grammars/source.tm-properties.json +1 -0
  80. data/grammars/source.ts.json +1 -1
  81. data/grammars/source.tsx.json +1 -1
  82. data/grammars/source.v.json +1 -1
  83. data/grammars/source.viml.json +1 -1
  84. data/grammars/source.webassembly.json +1 -1
  85. data/grammars/source.ws.json +1 -0
  86. data/grammars/source.wsd.json +1 -1
  87. data/grammars/source.xojo.json +1 -1
  88. data/grammars/source.yara.json +1 -1
  89. data/grammars/source.yasnippet.json +1 -1
  90. data/grammars/source.zig.json +1 -1
  91. data/grammars/text.html.astro.json +1 -0
  92. data/grammars/text.html.markdown.astro.json +1 -0
  93. data/grammars/text.info.json +1 -0
  94. data/grammars/text.lesshst.json +1 -0
  95. data/grammars/text.marko.json +1 -1
  96. data/grammars/text.sfd.json +1 -1
  97. data/grammars/text.tex.latex.haskell.json +1 -1
  98. data/grammars/text.xml.svg.json +1 -1
  99. data/grammars/textmate.format-string.json +1 -0
  100. data/grammars/version +1 -1
  101. data/lib/linguist/VERSION +1 -1
  102. data/lib/linguist/documentation.yml +1 -0
  103. data/lib/linguist/generated.rb +13 -0
  104. data/lib/linguist/heuristics.rb +6 -2
  105. data/lib/linguist/heuristics.yml +18 -4
  106. data/lib/linguist/language.rb +6 -3
  107. data/lib/linguist/languages.json +1 -1
  108. data/lib/linguist/languages.yml +385 -43
  109. data/lib/linguist/linguist.bundle +0 -0
  110. data/lib/linguist/linguist.so +0 -0
  111. data/lib/linguist/repository.rb +7 -3
  112. data/lib/linguist/samples.json +1 -1
  113. data/lib/linguist/shebang.rb +4 -1
  114. data/lib/linguist/strategy/modeline.rb +4 -0
  115. data/lib/linguist/vendor.yml +3 -0
  116. metadata +36 -5
  117. data/grammars/source.SASLog.json +0 -1
  118. data/grammars/source.mcfunction-snapshot.json +0 -1
  119. data/grammars/source.protobuf.json +0 -1
@@ -1 +1 @@
1
- {"name":"Ballerina","scopeName":"source.ballerina","patterns":[{"include":"#serviceDefinition"},{"include":"#functionDefinition"},{"include":"#typeDefinition"},{"include":"#annotationDefinition"},{"include":"#documentationDef"},{"include":"#mdDocumentation"},{"include":"#objectDec"},{"include":"#classDec"},{"include":"#record"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#comment"},{"include":"#code"}],"repository":{"annotationAttachment":{"patterns":[{"name":"storage.type.annotation.ballerina","match":"@((?:(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)):)?(?:(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))"}]},"annotationDefinition":{"patterns":[{"begin":"\\bannotation\\b","end":";","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"booleans":{"patterns":[{"name":"constant.language.boolean.ballerina","match":"\\b(true|false)\\b"}]},"butClause":{"patterns":[{"begin":"=\u003e","end":",|(?=\\})","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.operator.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":"((?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))\\s*(?=\\()"}]},"callableUnitBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#workerDef"},{"include":"#serviceDefinition"},{"include":"#objectDec"},{"include":"#functionDefinition"},{"include":"#forkStatement"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"classBody":{"patterns":[{"begin":"\\bclass\\b","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#objectBody"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"delimiter.curly"}}}]},"classDec":{"patterns":[{"begin":"\\bclass\\b","end":"\\}","patterns":[{"include":"#comment"},{"include":"#objectBody"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"delimiter.curly"}}}]},"code":{"patterns":[{"include":"#booleans"},{"include":"#matchStatement"},{"include":"#butExp"},{"include":"#xml"},{"include":"#stringTemplate"},{"include":"#keywords"},{"include":"#strings"},{"include":"#comment"},{"include":"#annotationAttachment"},{"include":"#numbers"},{"match":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"},{"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((?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}}]},"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"}}}]},"errorDestructure":{"patterns":[{"begin":"error","end":"(?==\u003e)","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"storage.type.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"}}}]},"functionDefinition":{"patterns":[{"begin":"\\bfunction\\b","end":"\\}|(?=;|=)","patterns":[{"include":"#comment"},{"include":"#functionParameters"},{"include":"#functionReturns"},{"name":"keyword.ballerina","match":"extern\\b"},{"include":"#functionName"},{"include":"#callableUnitBody"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"functionName":{"patterns":[{"name":"entity.name.function.ballerina","match":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"}]},"functionParameters":{"patterns":[{"begin":"\\(|\\[","end":"\\)|\\]","patterns":[{"name":"keyword","match":"public"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#parameter"},{"include":"#parameterTuple"},{"include":"#defaultValue"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"delimiter.parenthesis"}},"endCaptures":{"0":{"name":"delimiter.parenthesis"}}}]},"functionReturns":{"patterns":[{"begin":"\\breturns\\b","end":"(?=\\{|;|,|=)","patterns":[{"include":"#record"},{"include":"#objectDec"},{"include":"#tupleType"},{"include":"#multiType"},{"name":"storage.type.ballerina","match":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"curly"}}}]},"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)|(?:(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)))","end":"(?=\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#defaultValue"},{"include":"#comment"},{"include":"#parameterTuple"},{"name":"variable.parameter.ballerina","match":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"functionTypeType":{"patterns":[{"begin":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)","end":"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))","beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"keywords":{"patterns":[{"name":"keyword.control.ballerina","match":"\\b(if|else|fork|join|while|foreach|in|return|returns|break|transaction|transactional|retry|commit|rollback|continue|typeof|enum|wait|check|checkpanic|panic|trap|match)\\b"},{"name":"keyword.other.ballerina","match":"\\b(public|private|function|external|type|record|object|remote|abstract|client|true|false|fail|import|version)\\b"},{"name":"keyword.other.ballerina","match":"\\b(as|on|resource|listener|const|final|is|null|lock|annotation|source|worker|parameter|field|isolated)\\b"},{"name":"keyword.other.ballerina","match":"\\b(xmlns|table|key|let|new|from|where|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":"keyword.operator.ballerina","match":"(!|%|\\+|\\-|~=|===|==|=|!=|!==|\u003c|\u003e|\u0026|\\||\\?:|\\.\\.\\.|\\?|\u003c=|=\u003e|\u003e=|\u0026\u0026|\\|\\||~|\u003e\u003e|\u003e\u003e\u003e)"},{"include":"#types"}]},"literal":{"patterns":[{"include":"#booleans"},{"include":"#numbers"},{"include":"#strings"},{"include":"#maps"}]},"maps":{"patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}]}]},"matchBindingPattern":{"patterns":[{"begin":"var","end":"(?==\u003e)|,","patterns":[{"include":"#errorDestructure"},{"include":"#code"},{"name":"variable.parameter.ballerina","match":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"matchStatement":{"patterns":[{"begin":"\\bmatch\\b","end":"\\}","patterns":[{"include":"#matchStatementBody"},{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.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":{"patterns":[{"include":"#mdDocumentationReturnParamDescription"},{"include":"#mdDocumentationParamDescription"},{"name":"comment.mddocs.ballerina","match":"#.*"}]},"mdDocumentationParamDescription":{"patterns":[{"begin":"(#)(?: *?)(\\+)(?: *)((?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))?(?: *)(-)?(.*)","end":"(?=[^#\\r\\n]|(?:# *?\\+))","patterns":[{"name":"comment.mddocs.paramdesc.ballerina","match":"#.*"}],"beginCaptures":{"1":{"name":"comment.mddocs.ballerina"},"2":{"name":"keyword.ballerina"},"3":{"name":"variable.parameter.ballerina"},"4":{"name":"keyword.ballerina"},"5":{"name":"comment.mddocs.paramdesc.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=\\|)((?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))|((?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))(?=\\|)"},{"name":"keyword.operator.ballerina","match":"\\|"}]},"numbers":{"patterns":[{"name":"constant.numeric.decimal.ballerina","match":"\\b0[xX][\\da-f]+\\b|\\b\\d+(?:\\.(?:\\d+|$))?"}]},"objectBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#mdDocumentation"},{"include":"#documentationDef"},{"include":"#functionDefinition"},{"include":"#annotationAttachment"},{"name":"keyword.ballerina","match":"(public|private|extern|resource|remote|isolated|final)"},{"include":"#comment"},{"include":"#variableDefInline"},{"include":"#code"},{"include":"#variableDef"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"objectDec":{"patterns":[{"begin":"\\bobject\\b(?!:)","end":"\\}","patterns":[{"include":"#objectBody"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"delimiter.curly"}}}]},"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((?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))\\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)|((?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))(?=\\|)|(?:(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)))","end":"(?:\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#parameterWithDescriptor"},{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#defaultValue"},{"include":"#comment"},{"include":"#parameterTuple"},{"name":"variable.parameter.ballerina","match":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"}],"beginCaptures":{"0":{"name":"storage.type.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":"variable.parameter.ballerina","match":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"}]}]},"parameterTupleType":{"patterns":[{"begin":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)","end":"(?:\\,)|(?:\\|)|(?=\\])","beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"parameterWithDescriptor":{"patterns":[{"begin":"\\\u0026","end":"(?=\\,)|(?=\\|)|(?=\\))","patterns":[{"include":"#parameter"}],"beginCaptures":{"0":{"name":"keyword.operator.ballerina"}}}]},"paranthesised":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#functionDefinition"},{"include":"#comment"},{"include":"#code"}]}]},"paranthesisedBracket":{"patterns":[{"begin":"\\[","end":"\\]","patterns":[{"include":"#comment"},{"include":"#code"}]}]},"record":{"patterns":[{"begin":"\\brecord\\b","end":"\\}","patterns":[{"include":"#recordBody"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"delimiter.curly"}}}]},"recordBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#annotationAttachment"},{"include":"#comment"},{"include":"#objectMemberFunctionDec"},{"include":"#variableDefInline"},{"include":"#code"},{"include":"#variableDef"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"recordLiteral":{"patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"serviceBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#documentationDef"},{"include":"#annotationAttachment"},{"include":"#functionDefinition"},{"include":"#recordLiteral"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"serviceDefinition":{"patterns":[{"begin":"\\bservice\\b","end":"\\}|;|=","patterns":[{"include":"#comment"},{"include":"#objectDec"},{"include":"#classBody"},{"include":"#serviceBody"},{"include":"#serviceOn"},{"include":"#serviceName"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"serviceName":{"patterns":[{"name":"entity.name.function.ballerina","match":"(\\/((?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)*)|\\\"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)\\\")"}]},"serviceOn":{"patterns":[{"begin":"on","end":"(?={)","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"stringTemplate":{"patterns":[{"begin":"(\\bstring|\\bbase[1-9]*)(\\s*)(`)|(`)","end":"`","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"include":"#templateVariable"},{"name":"string","match":"."}],"beginCaptures":{"1":{"name":"keyword.ballerina"},"2":{},"3":{"name":"string.template.ballerina"}},"endCaptures":{"0":{"name":"string.template.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"}}}]},"templateVariable":{"patterns":[{"begin":"\\${","end":"}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"constant.character.escape.ballerina"}},"endCaptures":{"0":{"name":"constant.character.escape.ballerina"}}}]},"tupleType":{"patterns":[{"begin":"\\[","end":"(?=\\]|;)","patterns":[{"include":"#comment"},{"include":"#constrainType"},{"include":"#paranthesisedBracket"},{"name":"storage.type.ballerina","match":"\\b((?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))\\b"}]}]},"typeDefinition":{"patterns":[{"begin":"\\btype\\b","end":";","patterns":[{"include":"#comment"},{"include":"#typeDescription"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"source.ballerina"}}}]},"typeDescription":{"patterns":[{"begin":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)","end":"(?=;)","patterns":[{"include":"#comment"},{"include":"#objectDec"},{"include":"#record"},{"include":"#objectMemberFunctionDec"},{"include":"#literal"},{"name":"storage.type.ballerina","match":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"}],"beginCaptures":{"0":{"name":"entity.name.function.ballerina"}},"endCaptures":{"0":{"name":"source.ballerina"}}}]},"types":{"patterns":[{"name":"storage.type.ballerina","match":"\\b(boolean|int|float|string|decimal|handle|var|any|anydata|byte|future|typedesc)\\b"},{"name":"storage.type.ballerina","match":"\\b(map|json|xml|error|never|readonly|distinct)\\b"},{"name":"storage.type.ballerina","match":"\\b(stream)\\b"}]},"variableDef":{"patterns":[{"begin":"(?:(?!\\+)(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))(?: |\\t)|(?=\\()","end":"(?:(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+))|(?=\\,)|(?=;)|\\.\\.\\.","patterns":[{"include":"#tupleType"},{"include":"#constrainType"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}},"endCaptures":{"0":{"name":"source.ballerina"}}}]},"variableDefInline":{"patterns":[{"begin":"(?=record)|(?=object)","end":"(?=;)","patterns":[{"include":"#record"},{"include":"#objectDec"},{"name":"source.ballerina","match":"(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"}]}]},"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":[{"begin":"(\\bxml)(\\s*)(`)","end":"`","patterns":[{"include":"#xmlTag"},{"include":"#xmlComment"},{"include":"#templateVariable"},{"name":"string","match":"."}],"beginCaptures":{"1":{"name":"keyword.ballerina"},"2":{},"3":{"name":"string.template.ballerina"}},"endCaptures":{"0":{"name":"string.template.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":"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.begin.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":"#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 +1 @@
1
- {"name":"Batch File","scopeName":"source.batchfile","patterns":[{"include":"#commands"},{"include":"#comments"},{"include":"#constants"},{"include":"#controls"},{"include":"#escaped_characters"},{"include":"#labels"},{"include":"#numbers"},{"include":"#operators"},{"include":"#parens"},{"include":"#strings"},{"include":"#variables"}],"repository":{"command_set":{"patterns":[{"begin":"(?\u003c=^|[\\s@])(?i:SET)(?=$|\\s)","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"include":"#command_set_inside"}],"beginCaptures":{"0":{"name":"keyword.command.batchfile"}}}]},"command_set_group":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#command_set_inside_arithmetic"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.batchfile"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.batchfile"}}}]},"command_set_inside":{"patterns":[{"include":"#escaped_characters"},{"include":"#variables"},{"include":"#numbers"},{"include":"#parens"},{"include":"#command_set_strings"},{"include":"#strings"},{"begin":"([^ ][^=]*)(=)","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"include":"#escaped_characters"},{"include":"#variables"},{"include":"#numbers"},{"include":"#parens"},{"include":"#strings"}],"beginCaptures":{"1":{"name":"variable.other.readwrite.batchfile"},"2":{"name":"keyword.operator.assignment.batchfile"}}},{"name":"meta.expression.set.batchfile","begin":"\\s+/[aA]\\s+","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"name":"string.quoted.double.batchfile","begin":"\"","end":"\"","patterns":[{"include":"#command_set_inside_arithmetic"},{"include":"#command_set_group"},{"include":"#variables"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.batchfile"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.batchfile"}}},{"include":"#command_set_inside_arithmetic"},{"include":"#command_set_group"}]},{"begin":"\\s+/[pP]\\s+","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"include":"#command_set_strings"},{"name":"meta.prompt.set.batchfile","begin":"([^ ][^=]*)(=)","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"include":"#strings"}],"beginCaptures":{"1":{"name":"variable.other.readwrite.batchfile"},"2":{"name":"keyword.operator.assignment.batchfile"}}}]}]},"command_set_inside_arithmetic":{"patterns":[{"include":"#command_set_operators"},{"include":"#numbers"},{"name":"punctuation.separator.batchfile","match":","}]},"command_set_operators":{"patterns":[{"match":"([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|\u0026\\=|\\|\\=|\\^\\=|\u003c\u003c\\=|\u003e\u003e\\=)","captures":{"1":{"name":"variable.other.readwrite.batchfile"},"2":{"name":"keyword.operator.assignment.augmented.batchfile"}}},{"name":"keyword.operator.arithmetic.batchfile","match":"\\+|\\-|/|\\*|%%|\\||\u0026|\\^|\u003c\u003c|\u003e\u003e|~"},{"name":"keyword.operator.logical.batchfile","match":"!"},{"match":"([^ ][^=]*)(=)","captures":{"1":{"name":"variable.other.readwrite.batchfile"},"2":{"name":"keyword.operator.assignment.batchfile"}}}]},"command_set_strings":{"patterns":[{"name":"string.quoted.double.batchfile","begin":"(\")\\s*([^ ][^=]*)(=)","end":"\"","patterns":[{"include":"#variables"},{"include":"#numbers"},{"include":"#escaped_characters"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.batchfile"},"2":{"name":"variable.other.readwrite.batchfile"},"3":{"name":"keyword.operator.assignment.batchfile"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.batchfile"}}}]},"commands":{"patterns":[{"name":"keyword.command.batchfile","match":"(?\u003c=^|[\\s@])(?i:adprep|append|arp|assoc|at|atmadm|attrib|auditpol|autochk|autoconv|autofmt|bcdboot|bcdedit|bdehdcfg|bitsadmin|bootcfg|brea|cacls|cd|certreq|certutil|change|chcp|chdir|chglogon|chgport|chgusr|chkdsk|chkntfs|choice|cipher|clip|cls|clscluadmin|cluster|cmd|cmdkey|cmstp|color|comp|compact|convert|copy|cprofile|cscript|csvde|date|dcdiag|dcgpofix|dcpromo|defra|del|dfscmd|dfsdiag|dfsrmig|diantz|dir|dirquota|diskcomp|diskcopy|diskpart|diskperf|diskraid|diskshadow|dispdiag|doin|dnscmd|doskey|driverquery|dsacls|dsadd|dsamain|dsdbutil|dsget|dsmgmt|dsmod|dsmove|dsquery|dsrm|edit|endlocal|eraseesentutl|eventcreate|eventquery|eventtriggers|evntcmd|expand|extract|fc|filescrn|find|findstr|finger|flattemp|fonde|forfiles|format|freedisk|fsutil|ftp|ftype|fveupdate|getmac|gettype|gpfixup|gpresult|gpupdate|graftabl|hashgen|hep|helpctr|hostname|icacls|iisreset|inuse|ipconfig|ipxroute|irftp|ismserv|jetpack|klist|ksetup|ktmutil|ktpass|label|ldifd|ldp|lodctr|logman|logoff|lpq|lpr|macfile|makecab|manage-bde|mapadmin|md|mkdir|mklink|mmc|mode|more|mount|mountvol|move|mqbup|mqsvc|mqtgsvc|msdt|msg|msiexec|msinfo32|mstsc|nbtstat|net computer|net group|net localgroup|net print|net session|net share|net start|net stop|net use|net user|net view|net|netcfg|netdiag|netdom|netsh|netstat|nfsadmin|nfsshare|nfsstat|nlb|nlbmgr|nltest|nslookup|ntackup|ntcmdprompt|ntdsutil|ntfrsutl|openfiles|pagefileconfig|path|pathping|pause|pbadmin|pentnt|perfmon|ping|pnpunatten|pnputil|popd|powercfg|powershell|powershell_ise|print|prncnfg|prndrvr|prnjobs|prnmngr|prnport|prnqctl|prompt|pubprn|pushd|pushprinterconnections|pwlauncher|qappsrv|qprocess|query|quser|qwinsta|rasdial|rcp|rd|rdpsign|regentc|recover|redircmp|redirusr|reg|regini|regsvr32|relog|ren|rename|rendom|repadmin|repair-bde|replace|reset session|rxec|risetup|rmdir|robocopy|route|rpcinfo|rpcping|rsh|runas|rundll32|rwinsta|sc|schtasks|scp|scwcmd|secedit|serverceipoptin|servrmanagercmd|serverweroptin|setspn|setx|sfc|sftp|shadow|shift|showmount|shutdown|sort|ssh|ssh-add|ssh-agent|ssh-keygen|ssh-keyscan|start|storrept|subst|sxstrace|ysocmgr|systeminfo|takeown|tapicfg|taskkill|tasklist|tcmsetup|telnet|tftp|time|timeout|title|tlntadmn|tpmvscmgr|tpmvscmgr|tacerpt|tracert|tree|tscon|tsdiscon|tsecimp|tskill|tsprof|type|typeperf|tzutil|uddiconfig|umount|unlodctr|ver|verifier|verif|vol|vssadmin|w32tm|waitfor|wbadmin|wdsutil|wecutil|wevtutil|where|whoami|winnt|winnt32|winpop|winrm|winrs|winsat|wlbs|wmic|wscript|wsl|xcopy)(?=$|\\s)"},{"begin":"(?i)(?\u003c=^|[\\s@])(echo)(?:(?=$|\\.|:)|\\s+(?:(on|off)(?=\\s*$))?)","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"include":"#escaped_characters"},{"include":"#variables"},{"include":"#numbers"},{"include":"#strings"}],"beginCaptures":{"1":{"name":"keyword.command.batchfile"},"2":{"name":"keyword.other.special-method.batchfile"}}},{"match":"(?i)(?\u003c=^|[\\s@])(setlocal)(?:\\s*$|\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\s*$))","captures":{"1":{"name":"keyword.command.batchfile"},"2":{"name":"keyword.other.special-method.batchfile"}}},{"include":"#command_set"}]},"comments":{"patterns":[{"begin":"(?:^|(\u0026))\\s*(?=((?::[+=,;: ])))","end":"\\n","patterns":[{"name":"comment.line.colon.batchfile","begin":"((?::[+=,;: ]))","end":"(?=\\n)","beginCaptures":{"1":{"name":"punctuation.definition.comment.batchfile"}}}],"beginCaptures":{"1":{"name":"keyword.operator.conditional.batchfile"}}},{"name":"comment.line.rem.batchfile","begin":"(?\u003c=^|[\\s@])(?i)(REM)(\\.)","end":"(?=$\\n|[\u0026|\u003e\u003c)])","beginCaptures":{"1":{"name":"keyword.command.rem.batchfile"},"2":{"name":"punctuation.separator.batchfile"}}},{"name":"comment.line.rem.batchfile","begin":"(?\u003c=^|[\\s@])(?i:rem)\\b","end":"\\n","patterns":[{"name":"invalid.illegal.unexpected-character.batchfile","match":"[\u003e\u003c|]"}],"beginCaptures":{"0":{"name":"keyword.command.rem.batchfile"}}}]},"constants":{"patterns":[{"name":"constant.language.batchfile","match":"\\b(?i:NUL)\\b"}]},"controls":{"patterns":[{"name":"keyword.control.statement.batchfile","match":"(?i)(?\u003c=^|\\s)(?:call|exit(?=$|\\s)|goto(?=$|\\s|:))"},{"match":"(?\u003c=^|\\s)(?i)(if)\\s+(?:(not)\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\s)","captures":{"1":{"name":"keyword.control.conditional.batchfile"},"2":{"name":"keyword.operator.logical.batchfile"},"3":{"name":"keyword.other.special-method.batchfile"}}},{"name":"keyword.control.conditional.batchfile","match":"(?\u003c=^|\\s)(?i)(?:if|else)(?=$|\\s)"},{"name":"meta.block.repeat.batchfile","begin":"(?\u003c=^|[\\s(\u0026^])(?i)for(?=\\s)","end":"\\n","patterns":[{"begin":"(?\u003c=[\\s^])(?i)in(?=\\s)","end":"(?\u003c=[\\s)^])(?i)do(?=\\s)|\\n","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.repeat.in.batchfile"}},"endCaptures":{"0":{"name":"keyword.control.repeat.do.batchfile"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.repeat.batchfile"}}}]},"escaped_characters":{"patterns":[{"name":"constant.character.escape.batchfile","match":"%%|\\^\\^!|\\^(?=.)|\\^\\n"}]},"labels":{"patterns":[{"match":"(?i)(?:^\\s*|(?\u003c=goto)\\s*)(:)([^+=,;:\\s].*)$","captures":{"1":{"name":"punctuation.separator.batchfile"},"2":{"name":"keyword.other.special-method.batchfile"}}}]},"numbers":{"patterns":[{"name":"constant.numeric.batchfile","match":"(?\u003c=^|\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\d+)(?=$|\\s|\u003c|\u003e)"}]},"operators":{"patterns":[{"name":"keyword.operator.at.batchfile","match":"@(?=\\S)"},{"name":"keyword.operator.comparison.batchfile","match":"(?\u003c=\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\s)|=="},{"name":"keyword.operator.logical.batchfile","match":"(?\u003c=\\s)(?i)(NOT)(?=\\s)"},{"name":"keyword.operator.conditional.batchfile","match":"(?\u003c!\\^)\u0026\u0026?|\\|\\|"},{"name":"keyword.operator.pipe.batchfile","match":"(?\u003c!\\^)\\|"},{"name":"keyword.operator.redirection.batchfile","match":"\u003c\u0026?|\u003e[\u0026\u003e]?"}]},"parens":{"patterns":[{"name":"meta.group.batchfile","begin":"\\(","end":"\\)","patterns":[{"name":"punctuation.separator.batchfile","match":",|;"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.batchfile"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.batchfile"}}}]},"repeatParameter":{"patterns":[{"name":"variable.parameter.repeat.batchfile","match":"(%%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?[a-zA-Z])","captures":{"1":{"name":"punctuation.definition.variable.batchfile"}}}]},"strings":{"patterns":[{"name":"string.quoted.double.batchfile","begin":"\"","end":"(\")|(\\n)","patterns":[{"name":"constant.character.escape.batchfile","match":"%%"},{"include":"#variables"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.batchfile"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.batchfile"},"2":{"name":"invalid.illegal.newline.batchfile"}}}]},"variable":{"patterns":[{"name":"variable.other.readwrite.batchfile","begin":"%(?=[^%]+%)","end":"(%)|\\n","patterns":[{"name":"meta.variable.substring.batchfile","begin":":~","end":"(?=%|\\n)","patterns":[{"include":"#variable_substring"}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}},{"name":"meta.variable.substitution.batchfile","begin":":","end":"(?=%|\\n)","patterns":[{"include":"#variable_replace"},{"begin":"=","end":"(?=%|\\n)","patterns":[{"include":"#variable_delayed_expansion"},{"name":"string.unquoted.batchfile","match":"[^%]+"}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.variable.begin.batchfile"}},"endCaptures":{"1":{"name":"punctuation.definition.variable.end.batchfile"}}}]},"variable_delayed_expansion":{"patterns":[{"name":"variable.other.readwrite.batchfile","begin":"!(?=[^!]+!)","end":"(!)|\\n","patterns":[{"name":"meta.variable.substring.batchfile","begin":":~","end":"(?=!|\\n)","patterns":[{"include":"#variable_substring"}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}},{"name":"meta.variable.substitution.batchfile","begin":":","end":"(?=!|\\n)","patterns":[{"include":"#escaped_characters"},{"include":"#variable_replace"},{"include":"#variable"},{"begin":"=","end":"(?=!|\\n)","patterns":[{"include":"#variable"},{"name":"string.unquoted.batchfile","match":"[^!]+"}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.variable.begin.batchfile"}},"endCaptures":{"1":{"name":"punctuation.definition.variable.end.batchfile"}}}]},"variable_replace":{"patterns":[{"name":"string.unquoted.batchfile","match":"[^=%!\\n]+"}]},"variable_substring":{"patterns":[{"match":"([+-]?\\d+)(?:(,)([+-]?\\d+))?","captures":{"1":{"name":"constant.numeric.batchfile"},"2":{"name":"punctuation.separator.batchfile"},"3":{"name":"constant.numeric.batchfile"}}}]},"variables":{"patterns":[{"name":"variable.parameter.batchfile","match":"(%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?\\d|\\*)","captures":{"1":{"name":"punctuation.definition.variable.batchfile"}}},{"include":"#variable"},{"include":"#variable_delayed_expansion"}]}},"injections":{"L:meta.block.repeat.batchfile":{"patterns":[{"include":"#repeatParameter"}]}}}
1
+ {"name":"Batch File","scopeName":"source.batchfile","patterns":[{"include":"#commands"},{"include":"#comments"},{"include":"#constants"},{"include":"#controls"},{"include":"#escaped_characters"},{"include":"#labels"},{"include":"#numbers"},{"include":"#operators"},{"include":"#parens"},{"include":"#strings"},{"include":"#variables"}],"repository":{"command_set":{"patterns":[{"begin":"(?\u003c=^|[\\s@])(?i:SET)(?=$|\\s)","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"include":"#command_set_inside"}],"beginCaptures":{"0":{"name":"keyword.command.batchfile"}}}]},"command_set_group":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#command_set_inside_arithmetic"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.batchfile"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.batchfile"}}}]},"command_set_inside":{"patterns":[{"include":"#escaped_characters"},{"include":"#variables"},{"include":"#numbers"},{"include":"#parens"},{"include":"#command_set_strings"},{"include":"#strings"},{"begin":"([^ ][^=]*)(=)","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"include":"#escaped_characters"},{"include":"#variables"},{"include":"#numbers"},{"include":"#parens"},{"include":"#strings"}],"beginCaptures":{"1":{"name":"variable.other.readwrite.batchfile"},"2":{"name":"keyword.operator.assignment.batchfile"}}},{"name":"meta.expression.set.batchfile","begin":"\\s+/[aA]\\s+","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"name":"string.quoted.double.batchfile","begin":"\"","end":"\"","patterns":[{"include":"#command_set_inside_arithmetic"},{"include":"#command_set_group"},{"include":"#variables"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.batchfile"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.batchfile"}}},{"include":"#command_set_inside_arithmetic"},{"include":"#command_set_group"}]},{"begin":"\\s+/[pP]\\s+","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"include":"#command_set_strings"},{"name":"meta.prompt.set.batchfile","begin":"([^ ][^=]*)(=)","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"include":"#strings"}],"beginCaptures":{"1":{"name":"variable.other.readwrite.batchfile"},"2":{"name":"keyword.operator.assignment.batchfile"}}}]}]},"command_set_inside_arithmetic":{"patterns":[{"include":"#command_set_operators"},{"include":"#numbers"},{"name":"punctuation.separator.batchfile","match":","}]},"command_set_operators":{"patterns":[{"match":"([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|\u0026\\=|\\|\\=|\\^\\=|\u003c\u003c\\=|\u003e\u003e\\=)","captures":{"1":{"name":"variable.other.readwrite.batchfile"},"2":{"name":"keyword.operator.assignment.augmented.batchfile"}}},{"name":"keyword.operator.arithmetic.batchfile","match":"\\+|\\-|/|\\*|%%|\\||\u0026|\\^|\u003c\u003c|\u003e\u003e|~"},{"name":"keyword.operator.logical.batchfile","match":"!"},{"match":"([^ =]*)(=)","captures":{"1":{"name":"variable.other.readwrite.batchfile"},"2":{"name":"keyword.operator.assignment.batchfile"}}}]},"command_set_strings":{"patterns":[{"name":"string.quoted.double.batchfile","begin":"(\")\\s*([^ ][^=]*)(=)","end":"\"","patterns":[{"include":"#variables"},{"include":"#numbers"},{"include":"#escaped_characters"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.batchfile"},"2":{"name":"variable.other.readwrite.batchfile"},"3":{"name":"keyword.operator.assignment.batchfile"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.batchfile"}}}]},"commands":{"patterns":[{"name":"keyword.command.batchfile","match":"(?\u003c=^|[\\s@])(?i:adprep|append|arp|assoc|at|atmadm|attrib|auditpol|autochk|autoconv|autofmt|bcdboot|bcdedit|bdehdcfg|bitsadmin|bootcfg|brea|cacls|cd|certreq|certutil|change|chcp|chdir|chglogon|chgport|chgusr|chkdsk|chkntfs|choice|cipher|clip|cls|clscluadmin|cluster|cmd|cmdkey|cmstp|color|comp|compact|convert|copy|cprofile|cscript|csvde|date|dcdiag|dcgpofix|dcpromo|defra|del|dfscmd|dfsdiag|dfsrmig|diantz|dir|dirquota|diskcomp|diskcopy|diskpart|diskperf|diskraid|diskshadow|dispdiag|doin|dnscmd|doskey|driverquery|dsacls|dsadd|dsamain|dsdbutil|dsget|dsmgmt|dsmod|dsmove|dsquery|dsrm|edit|endlocal|eraseesentutl|eventcreate|eventquery|eventtriggers|evntcmd|expand|extract|fc|filescrn|find|findstr|finger|flattemp|fonde|forfiles|format|freedisk|fsutil|ftp|ftype|fveupdate|getmac|gettype|gpfixup|gpresult|gpupdate|graftabl|hashgen|hep|helpctr|hostname|icacls|iisreset|inuse|ipconfig|ipxroute|irftp|ismserv|jetpack|klist|ksetup|ktmutil|ktpass|label|ldifd|ldp|lodctr|logman|logoff|lpq|lpr|macfile|makecab|manage-bde|mapadmin|md|mkdir|mklink|mmc|mode|more|mount|mountvol|move|mqbup|mqsvc|mqtgsvc|msdt|msg|msiexec|msinfo32|mstsc|nbtstat|net computer|net group|net localgroup|net print|net session|net share|net start|net stop|net use|net user|net view|net|netcfg|netdiag|netdom|netsh|netstat|nfsadmin|nfsshare|nfsstat|nlb|nlbmgr|nltest|nslookup|ntackup|ntcmdprompt|ntdsutil|ntfrsutl|openfiles|pagefileconfig|path|pathping|pause|pbadmin|pentnt|perfmon|ping|pnpunatten|pnputil|popd|powercfg|powershell|powershell_ise|print|prncnfg|prndrvr|prnjobs|prnmngr|prnport|prnqctl|prompt|pubprn|pushd|pushprinterconnections|pwlauncher|qappsrv|qprocess|query|quser|qwinsta|rasdial|rcp|rd|rdpsign|regentc|recover|redircmp|redirusr|reg|regini|regsvr32|relog|ren|rename|rendom|repadmin|repair-bde|replace|reset session|rxec|risetup|rmdir|robocopy|route|rpcinfo|rpcping|rsh|runas|rundll32|rwinsta|sc|schtasks|scp|scwcmd|secedit|serverceipoptin|servrmanagercmd|serverweroptin|setspn|setx|sfc|sftp|shadow|shift|showmount|shutdown|sort|ssh|ssh-add|ssh-agent|ssh-keygen|ssh-keyscan|start|storrept|subst|sxstrace|ysocmgr|systeminfo|takeown|tapicfg|taskkill|tasklist|tcmsetup|telnet|tftp|time|timeout|title|tlntadmn|tpmvscmgr|tpmvscmgr|tacerpt|tracert|tree|tscon|tsdiscon|tsecimp|tskill|tsprof|type|typeperf|tzutil|uddiconfig|umount|unlodctr|ver|verifier|verif|vol|vssadmin|w32tm|waitfor|wbadmin|wdsutil|wecutil|wevtutil|where|whoami|winnt|winnt32|winpop|winrm|winrs|winsat|wlbs|wmic|wscript|wsl|xcopy)(?=$|\\s)"},{"begin":"(?i)(?\u003c=^|[\\s@])(echo)(?:(?=$|\\.|:)|\\s+(?:(on|off)(?=\\s*$))?)","end":"(?=$\\n|[\u0026|\u003e\u003c)])","patterns":[{"include":"#escaped_characters"},{"include":"#variables"},{"include":"#numbers"},{"include":"#strings"}],"beginCaptures":{"1":{"name":"keyword.command.batchfile"},"2":{"name":"keyword.other.special-method.batchfile"}}},{"match":"(?i)(?\u003c=^|[\\s@])(setlocal)(?:\\s*$|\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\s*$))","captures":{"1":{"name":"keyword.command.batchfile"},"2":{"name":"keyword.other.special-method.batchfile"}}},{"include":"#command_set"}]},"comments":{"patterns":[{"begin":"(?:^|(\u0026))\\s*(?=((?::[+=,;: ])))","end":"\\n","patterns":[{"name":"comment.line.colon.batchfile","begin":"((?::[+=,;: ]))","end":"(?=\\n)","beginCaptures":{"1":{"name":"punctuation.definition.comment.batchfile"}}}],"beginCaptures":{"1":{"name":"keyword.operator.conditional.batchfile"}}},{"name":"comment.line.rem.batchfile","begin":"(?\u003c=^|[\\s@])(?i)(REM)(\\.)","end":"(?=$\\n|[\u0026|\u003e\u003c)])","beginCaptures":{"1":{"name":"keyword.command.rem.batchfile"},"2":{"name":"punctuation.separator.batchfile"}}},{"name":"comment.line.rem.batchfile","begin":"(?\u003c=^|[\\s@])(?i:rem)\\b","end":"\\n","patterns":[{"name":"invalid.illegal.unexpected-character.batchfile","match":"[\u003e\u003c|]"}],"beginCaptures":{"0":{"name":"keyword.command.rem.batchfile"}}}]},"constants":{"patterns":[{"name":"constant.language.batchfile","match":"\\b(?i:NUL)\\b"}]},"controls":{"patterns":[{"name":"keyword.control.statement.batchfile","match":"(?i)(?\u003c=^|\\s)(?:call|exit(?=$|\\s)|goto(?=$|\\s|:))"},{"match":"(?\u003c=^|\\s)(?i)(if)\\s+(?:(not)\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\s)","captures":{"1":{"name":"keyword.control.conditional.batchfile"},"2":{"name":"keyword.operator.logical.batchfile"},"3":{"name":"keyword.other.special-method.batchfile"}}},{"name":"keyword.control.conditional.batchfile","match":"(?\u003c=^|\\s)(?i)(?:if|else)(?=$|\\s)"},{"name":"meta.block.repeat.batchfile","begin":"(?\u003c=^|[\\s(\u0026^])(?i)for(?=\\s)","end":"\\n","patterns":[{"begin":"(?\u003c=[\\s^])(?i)in(?=\\s)","end":"(?\u003c=[\\s)^])(?i)do(?=\\s)|\\n","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.repeat.in.batchfile"}},"endCaptures":{"0":{"name":"keyword.control.repeat.do.batchfile"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.repeat.batchfile"}}}]},"escaped_characters":{"patterns":[{"name":"constant.character.escape.batchfile","match":"%%|\\^\\^!|\\^(?=.)|\\^\\n"}]},"labels":{"patterns":[{"match":"(?i)(?:^\\s*|(?\u003c=call|goto)\\s*)(:)([^+=,;:\\s]\\S*)","captures":{"1":{"name":"punctuation.separator.batchfile"},"2":{"name":"keyword.other.special-method.batchfile"}}}]},"numbers":{"patterns":[{"name":"constant.numeric.batchfile","match":"(?\u003c=^|\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\d+)(?=$|\\s|\u003c|\u003e)"}]},"operators":{"patterns":[{"name":"keyword.operator.at.batchfile","match":"@(?=\\S)"},{"name":"keyword.operator.comparison.batchfile","match":"(?\u003c=\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\s)|=="},{"name":"keyword.operator.logical.batchfile","match":"(?\u003c=\\s)(?i)(NOT)(?=\\s)"},{"name":"keyword.operator.conditional.batchfile","match":"(?\u003c!\\^)\u0026\u0026?|\\|\\|"},{"name":"keyword.operator.pipe.batchfile","match":"(?\u003c!\\^)\\|"},{"name":"keyword.operator.redirection.batchfile","match":"\u003c\u0026?|\u003e[\u0026\u003e]?"}]},"parens":{"patterns":[{"name":"meta.group.batchfile","begin":"\\(","end":"\\)","patterns":[{"name":"punctuation.separator.batchfile","match":",|;"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.batchfile"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.batchfile"}}}]},"repeatParameter":{"patterns":[{"name":"variable.parameter.repeat.batchfile","match":"(%%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?[a-zA-Z])","captures":{"1":{"name":"punctuation.definition.variable.batchfile"}}}]},"strings":{"patterns":[{"name":"string.quoted.double.batchfile","begin":"\"","end":"(\")|(\\n)","patterns":[{"name":"constant.character.escape.batchfile","match":"%%"},{"include":"#variables"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.batchfile"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.batchfile"},"2":{"name":"invalid.illegal.newline.batchfile"}}}]},"variable":{"patterns":[{"name":"variable.other.readwrite.batchfile","begin":"%(?=[^%]+%)","end":"(%)|\\n","patterns":[{"name":"meta.variable.substring.batchfile","begin":":~","end":"(?=%|\\n)","patterns":[{"include":"#variable_substring"}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}},{"name":"meta.variable.substitution.batchfile","begin":":","end":"(?=%|\\n)","patterns":[{"include":"#variable_replace"},{"begin":"=","end":"(?=%|\\n)","patterns":[{"include":"#variable_delayed_expansion"},{"name":"string.unquoted.batchfile","match":"[^%]+"}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.variable.begin.batchfile"}},"endCaptures":{"1":{"name":"punctuation.definition.variable.end.batchfile"}}}]},"variable_delayed_expansion":{"patterns":[{"name":"variable.other.readwrite.batchfile","begin":"!(?=[^!]+!)","end":"(!)|\\n","patterns":[{"name":"meta.variable.substring.batchfile","begin":":~","end":"(?=!|\\n)","patterns":[{"include":"#variable_substring"}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}},{"name":"meta.variable.substitution.batchfile","begin":":","end":"(?=!|\\n)","patterns":[{"include":"#escaped_characters"},{"include":"#variable_replace"},{"include":"#variable"},{"begin":"=","end":"(?=!|\\n)","patterns":[{"include":"#variable"},{"name":"string.unquoted.batchfile","match":"[^!]+"}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}}],"beginCaptures":{"0":{"name":"punctuation.separator.batchfile"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.variable.begin.batchfile"}},"endCaptures":{"1":{"name":"punctuation.definition.variable.end.batchfile"}}}]},"variable_replace":{"patterns":[{"name":"string.unquoted.batchfile","match":"[^=%!\\n]+"}]},"variable_substring":{"patterns":[{"match":"([+-]?\\d+)(?:(,)([+-]?\\d+))?","captures":{"1":{"name":"constant.numeric.batchfile"},"2":{"name":"punctuation.separator.batchfile"},"3":{"name":"constant.numeric.batchfile"}}}]},"variables":{"patterns":[{"name":"variable.parameter.batchfile","match":"(%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?\\d|\\*)","captures":{"1":{"name":"punctuation.definition.variable.batchfile"}}},{"include":"#variable"},{"include":"#variable_delayed_expansion"}]}},"injections":{"L:meta.block.repeat.batchfile":{"patterns":[{"include":"#repeatParameter"}]}}}
@@ -0,0 +1 @@
1
+ {"name":"BC","scopeName":"source.bc","patterns":[{"include":"#main"}],"repository":{"args":{"name":"meta.arguments.bc","begin":"\\G\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.arguments.begin.bc"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.bc"}}},"arrayAccess":{"name":"meta.item-access.bc","contentName":"meta.subscript.bc","begin":"\\[","end":"\\]","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.square.bracket.begin.bc"}},"endCaptures":{"0":{"name":"punctuation.section.square.bracket.end.bc"}}},"assignment":{"name":"meta.assignment.statement.bc","begin":"(?x)\n(?:\n\t\\b\n\t(?:\n\t\t(ibase|obase|scale|history|last)\n\t\t|\n\t\t(?:\n\t\t\t([a-z][a-z_0-9]+)\n\t\t\t|\n\t\t\t([a-z])\n\t\t)\n\t\t(\\s*\\[[^\\[\\]]*\\])?\n\t)\n\t|\n\t(\\.)\n\t|\n\t(?\u003c=\\])\n)\n\\s*\n([-+*/%^]?=)","end":"(?=$|;|,)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.language.$1.assignment.bc"},"2":{"name":"variable.assignment.long.bc"},"3":{"name":"variable.assignment.short.bc"},"4":{"patterns":[{"include":"#arrayAccess"}]},"5":{"name":"variable.language.last.assignment.bc"},"6":{"patterns":[{"include":"#operators"}]}}},"auto":{"name":"meta.local-variables.bc","begin":"(?\u003c=\\s|^|\\G|\\*/)\\b(auto)(?=\\s|$)","end":"$|(?=;|#|/\\*)","patterns":[{"name":"variable.local.array.long.bc","match":"\\b[a-z][a-z_0-9]+(\\[\\])","captures":{"1":{"name":"punctuation.definition.variable.array.bc"}}},{"name":"variable.local.array.short.bc","match":"\\b[a-z](\\[\\])","captures":{"1":{"name":"punctuation.definition.variable.array.bc"}}},{"name":"variable.local.scalar.long.bc","match":"\\b[a-z][a-z_0-9]+"},{"name":"variable.local.scalar.short.bc","match":"\\b[a-z]\\b"},{"include":"#lineContinuation"},{"include":"etc#comma"}],"beginCaptures":{"1":{"name":"storage.modifier.auto.bc"}}},"block":{"name":"meta.block.bc","begin":"{","end":"}","patterns":[{"include":"#statement"}],"beginCaptures":{"0":{"name":"punctuation.section.block.curly.bracket.begin.bc"}},"endCaptures":{"0":{"name":"punctuation.section.block.curly.bracket.end.bc"}}},"call":{"patterns":[{"name":"meta.expression.$1-call.bc","begin":"\\b(sqrt|length|scale|read)\\s*(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#args"}],"beginCaptures":{"1":{"name":"keyword.operator.expression.$1.bc"}}},{"name":"meta.function-call.bc","begin":"\\b(?:([scalej])|([a-z][a-z_0-9]*))\\s*(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#args"}],"beginCaptures":{"1":{"name":"support.function.math-library.bc"},"2":{"name":"entity.name.function.bc"}}}]},"comments":{"patterns":[{"name":"comment.block.bc","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.bc"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.bc"}}},{"name":"comment.line.number-sign.bc","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.bc"}}}]},"condition":{"name":"meta.condition.expression.bc","begin":"\\G\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.condition.round.bracket.begin.bc"}},"endCaptures":{"0":{"name":"punctuation.section.condition.round.bracket.end.bc"}}},"expression":{"patterns":[{"include":"#comments"},{"include":"#operators"},{"include":"#number"},{"include":"#string"},{"include":"#group"},{"include":"#call"},{"include":"#variable"},{"include":"#arrayAccess"},{"include":"#lineContinuation"},{"include":"etc#comma"}]},"for":{"name":"meta.block.for.loop.bc","begin":"\\b(for)[ \\t]*","end":"(?!\\G)","patterns":[{"begin":"\\G\\(","end":"\\)","patterns":[{"name":"meta.loop.initialisation.bc","begin":"\\G(?!;)","end":"(?=;|\\))","patterns":[{"include":"#expression"}]},{"name":"meta.loop.condition.bc","begin":";","end":";|(?=\\))","patterns":[{"include":"#expression"}],"captures":{"0":{"patterns":[{"include":"etc#semi"}]}}},{"name":"meta.loop.update.bc","begin":"(?\u003c=;)","end":"(?=\\))","patterns":[{"include":"#expression"}]}],"beginCaptures":{"0":{"name":"punctuation.section.condition.round.bracket.begin.bc"}},"endCaptures":{"0":{"name":"punctuation.section.condition.round.bracket.end.bc"}}}],"beginCaptures":{"1":{"name":"keyword.control.flow.loop.for.bc"}}},"function":{"name":"meta.function.definition.bc","begin":"(?\u003c=\\s|^|\\G)(define)(?=\\s|$)","end":"(?\u003c=})","patterns":[{"include":"#functionHead"},{"include":"#functionBody"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"storage.type.function.bc"}}},"functionBody":{"name":"meta.block.function-body.bc","begin":"{","end":"}","patterns":[{"include":"#auto"},{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.section.block.curly.bracket.begin.bc"}},"endCaptures":{"0":{"name":"punctuation.section.block.curly.bracket.end.bc"}}},"functionHead":{"begin":"\\G","end":"(?\u003c=\\))|(?={)","patterns":[{"begin":"\\G","end":"(?:(void)\\s+)?([a-z][a-z_0-9]+)|([a-z]\\b)|(?=[^\\sa-z/*#])","endCaptures":{"1":{"name":"storage.modifier.void.gnu.bc"},"2":{"name":"entity.name.function.long.bc"},"3":{"name":"entity.name.function.short.bc"}}},{"begin":"(?\u003c=[a-z_0-9])(?!\\G)\\s*(?=\\()","end":"(?!\\G)","patterns":[{"name":"meta.parameters.bc","begin":"\\G\\(","end":"\\)","patterns":[{"name":"variable.parameter.function.array.long.bc","match":"(\\*)?\\b[a-z][a-z_0-9]+(\\[\\])","captures":{"1":{"name":"storage.modifier.callable.bc"},"2":{"name":"punctuation.definition.variable.array.bc"}}},{"name":"variable.parameter.function.array.short.bc","match":"(\\*)?\\b[a-z](\\[\\])","captures":{"1":{"name":"storage.modifier.callable.bc"},"2":{"name":"punctuation.definition.variable.array.bc"}}},{"name":"variable.parameter.function.long.bc","match":"\\b[a-z][a-z_0-9]+"},{"name":"variable.parameter.function.short.bc","match":"\\b[a-z]\\b"},{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.round.bracket.begin.bc"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.round.bracket.end.bc"}}}]},{"include":"#comments"}]},"group":{"name":"meta.expression.group.bc","begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.expression.round.bracket.begin.bc"}},"endCaptures":{"0":{"name":"punctuation.section.expression.round.bracket.end.bc"}}},"if":{"patterns":[{"name":"meta.block.conditional.bc","begin":"\\b(if)[ \\t]*","end":"(?!\\G)","patterns":[{"include":"#condition"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.control.flow.conditional.if.bc"}}},{"name":"keyword.control.flow.conditional.else.bc","match":"\\b(else)\\b"}]},"keywords":{"patterns":[{"name":"keyword.control.flow.$1.bc","match":"\\b(break|continue|quit)\\b"},{"name":"keyword.control.flow.$1.gnu.bc","match":"\\b(halt)\\b"},{"name":"keyword.operator.$1.gnu.bc","match":"\\b(limits|warranty)\\b"}]},"lineContinuation":{"name":"constant.character.escape.newline.line-continuation.bc","begin":"(\\\\)$\\s*","end":"^","beginCaptures":{"1":{"name":"punctuation.definition.escape.backslash.bc"}}},"main":{"patterns":[{"include":"#comments"},{"include":"#function"},{"include":"#statement"},{"include":"#expression"}]},"number":{"name":"constant.numeric.bc","match":"[-+]?(?:[0-9A-F]+(?:\\.[0-9A-F]*)?|\\.[0-9A-F]*)"},"operators":{"patterns":[{"include":"etc#opFix"},{"match":"[\u003c=\u003e!]=|\u003c|\u003e","captures":{"0":{"patterns":[{"include":"etc#opCmp"}]}}},{"match":"[-+*/%^]?=","captures":{"0":{"patterns":[{"include":"etc#opMathAssign"},{"include":"etc#eql"}]}}},{"match":"[-^*/%+]","captures":{"0":{"patterns":[{"include":"etc#opMath"}]}}},{"match":"!|\u0026\u0026|\\|\\|","captures":{"0":{"patterns":[{"include":"etc#opLog"}]}}}]},"print":{"name":"meta.print.statement.bc","begin":"\\b(print)\\b[ \\t]*","end":"(?=$|;)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.print.bc"}}},"return":{"name":"meta.return.statement.bc","begin":"\\b(return)\\b[ \\t]*","end":"(?=$|;|(?\u003c=\\)))","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.flow.return.bc"}}},"semi":{"name":"punctuation.terminator.statement.semicolon.bc","match":";"},"statement":{"patterns":[{"include":"#if"},{"include":"#while"},{"include":"#for"},{"include":"#block"},{"include":"#assignment"},{"include":"#keywords"},{"include":"#return"},{"include":"#print"},{"include":"#semi"},{"include":"#expression"}]},"string":{"name":"string.quoted.double.bc","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.backslash.bc","match":"(\\\\)[abfnqrt\\\\]","captures":{"1":{"name":"punctuation.definition.escape.backslash.bc"}}},{"name":"invalid.illegal.unknown-escape.bc","match":"\\\\(?:[^\"]|(?=\"))"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.bc"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.bc"}}},"variable":{"patterns":[{"name":"variable.language.$1.dereference.bc","match":"\\b(ibase|obase|scale|history|last)\\b"},{"name":"variable.language.last.dereference.bc","match":"\\.(?![0-9A-F])"},{"name":"variable.dereference.long.bc","match":"\\b[a-z][a-z_0-9]+\\b"},{"name":"variable.dereference.short.bc","match":"\\b[a-z]\\b"}]},"while":{"name":"meta.block.while.loop.bc","begin":"\\b(while)[ \\t]*","end":"(?!\\G)","patterns":[{"include":"#condition"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.control.flow.loop.while.bc"}}}}}
@@ -1 +1 @@
1
- {"name":"Bicep","scopeName":"source.bicep","patterns":[{"include":"#statement"}],"repository":{"array-literal":{"name":"meta.array-literal.bicep","begin":"\\[(?:\\s|/\\*.*\\*/)*(?!\\bfor\\b)","end":"]","patterns":[{"include":"#array-property"}]},"array-property":{"name":"meta.array-property.bicep","begin":"^(?!(?:\\s|/\\*.*\\*/)*])","end":"$","patterns":[{"include":"#expression"}]},"block-comment":{"name":"comment.block.bicep","begin":"/\\*","end":"\\*/"},"comments":{"patterns":[{"include":"#line-comment"},{"include":"#block-comment"}]},"decorator":{"name":"meta.decorator.bicep","begin":"@","end":"$","patterns":[{"include":"#expression"}]},"escape-character":{"name":"constant.character.escape.bicep","match":"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)"},"expression":{"patterns":[{"include":"#identifier"},{"include":"#for-expression"},{"include":"#if-expression"},{"include":"#string-literal"},{"include":"#string-verbatim"},{"include":"#numeric-literal"},{"include":"#named-literal"},{"include":"#object-literal"},{"include":"#array-literal"},{"include":"#function-call"}]},"for-expression":{"name":"meta.for-expression.bicep","begin":"\\[(?:\\s|/\\*.*\\*/)*(\\bfor\\b)","end":"]","patterns":[{"include":"#for-expression-in"},{"include":"#for-expression-end"}],"beginCaptures":{"1":{"name":"keyword.control.declaration.bicep"}}},"for-expression-end":{"name":"meta.for-expression-end.bicep","begin":"(?\u003c=:)(?:\\s|/\\*.*\\*/)*","end":"(?:\\s|/\\*.*\\*/)*(?=])","patterns":[{"include":"#expression"}]},"for-expression-in":{"name":"meta.for-expression-in.bicep","begin":"(?\u003c=\\bfor\\b)","end":":","patterns":[{"include":"#for-expression-in-start"},{"include":"#for-expression-in-end"}]},"for-expression-in-end":{"name":"meta.for-expression-in-end.bicep","begin":"(?\u003c=\\bin\\b)(?:\\s|/\\*.*\\*/)*","end":"(?=:)","patterns":[{"include":"#expression"}]},"for-expression-in-start":{"name":"meta.for-expression-in-start.bicep","begin":"(?\u003c=\\bfor\\b)(?:\\s|/\\*.*\\*/)*","end":"(\\bin\\b)","patterns":[{"include":"#expression"}],"endCaptures":{"1":{"name":"keyword.control.declaration.bicep"}}},"function-call":{"name":"meta.function-call.bicep","begin":"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:\\s|/\\*.*\\*/)*\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"entity.name.function.bicep"}}},"identifier":{"name":"variable.other.readwrite.bicep","match":"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?!(?:\\s|/\\*.*\\*/)*\\()"},"if-expression":{"name":"meta.if-expression.bicep","begin":"(\\bif\\b)","end":"(?\u003c=})","patterns":[{"include":"#if-expression-start"},{"include":"#if-expression-end"}],"beginCaptures":{"1":{"name":"keyword.control.declaration.bicep"}}},"if-expression-end":{"name":"meta.if-expression-end.bicep","begin":"(?\u003c=\\))(?:\\s|/\\*.*\\*/)*(?={)","end":"(?\u003c=})","patterns":[{"include":"#object-literal"}]},"if-expression-start":{"name":"meta.if-expression-start.bicep","begin":"(?\u003c=\\bif\\b)(?:\\s|/\\*.*\\*/)*\\(","end":"\\)","patterns":[{"include":"#expression"}],"endCaptures":{"1":{"name":"keyword.control.declaration.bicep"}}},"line-comment":{"name":"comment.line.double-slash.bicep","match":"//.*$"},"module-statement":{"name":"meta.module-statement.bicep","begin":"(\\bmodule\\b)(?:\\s|/\\*.*\\*/)*(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:\\s|/\\*.*\\*/)*(?=')","end":"$","patterns":[{"include":"#string-literal"},{"include":"#module-statement-end"}],"beginCaptures":{"1":{"name":"keyword.control.declaration.bicep"},"2":{"name":"variable.name.bicep"}}},"module-statement-end":{"name":"meta.module-statement-end.bicep","begin":"(?\u003c=')(?:\\s|/\\*.*\\*/)*=(?:\\s|/\\*.*\\*/)*","end":"$","patterns":[{"include":"#expression"}]},"named-literal":{"name":"constant.language.bicep","match":"\\b(true|false|null)\\b"},"numeric-literal":{"name":"constant.numeric.bicep","match":"[0-9]+"},"object-literal":{"name":"meta.object-literal.bicep","begin":"{","end":"}","patterns":[{"include":"#object-property"}]},"object-property":{"name":"meta.object-property.bicep","begin":"^(?!(?:\\s|/\\*.*\\*/)*})","end":"$","patterns":[{"include":"#object-property-start"},{"include":"#object-property-end"}]},"object-property-end":{"name":"meta.object-property-end.bicep","begin":"(?\u003c=:)(?:\\s|/\\*.*\\*/)*","end":"(?:\\s|/\\*.*\\*/)*$","patterns":[{"include":"#expression"}]},"object-property-key-identifier":{"name":"meta.object-property-key-identifier.bicep","match":"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)","captures":{"1":{"name":"variable.other.property.bicep"}}},"object-property-start":{"name":"meta.object-property-start.bicep","begin":"^(?:\\s|/\\*.*\\*/)*","end":"(?:\\s|/\\*.*\\*/)*:","patterns":[{"include":"#string-literal"},{"include":"#object-property-key-identifier"}]},"output-statement":{"name":"meta.output-statement.bicep","begin":"(\\boutput\\b)(?:\\s|/\\*.*\\*/)*(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:\\s|/\\*.*\\*/)*(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:\\s|/\\*.*\\*/)*=(?:\\s|/\\*.*\\*/)*","end":"$","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.declaration.bicep"},"2":{"name":"variable.name.bicep"},"3":{"name":"variable.name.bicep"}}},"param-statement":{"name":"meta.param-statement.bicep","begin":"(\\bparam\\b)(?:\\s|/\\*.*\\*/)*(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:\\s|/\\*.*\\*/)*(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)","end":"$","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.declaration.bicep"},"2":{"name":"variable.name.bicep"},"3":{"name":"variable.name.bicep"}}},"resource-statement":{"name":"meta.resource-statement.bicep","begin":"(\\bresource\\b)(?:\\s|/\\*.*\\*/)*(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:\\s|/\\*.*\\*/)*(?=')","end":"$","patterns":[{"include":"#string-literal"},{"include":"#resource-statement-end"}],"beginCaptures":{"1":{"name":"keyword.control.declaration.bicep"},"2":{"name":"variable.name.bicep"}}},"resource-statement-end":{"name":"meta.resource-statement-end.bicep","begin":"(?\u003c=')(?:\\s|/\\*.*\\*/)*=(?:\\s|/\\*.*\\*/)*","end":"$","patterns":[{"include":"#expression"}]},"statement":{"patterns":[{"include":"#comments"},{"include":"#decorator"},{"include":"#targetscope-statement"},{"include":"#param-statement"},{"include":"#resource-statement"},{"include":"#module-statement"},{"include":"#var-statement"},{"include":"#output-statement"}]},"string-literal":{"name":"string.quoted.single.bicep","begin":"'(?!'')","end":"'","patterns":[{"include":"#escape-character"},{"include":"#string-literal-subst"}]},"string-literal-subst":{"name":"meta.string-literal-subst.bicep","begin":"(?\u003c!\\\\)(\\${)","end":"(})","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.bicep"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bicep"}}},"string-verbatim":{"name":"string.quoted.multi.bicep","begin":"'''","end":"'''"},"targetscope-statement":{"name":"meta.targetscope-statement.bicep","begin":"(\\btargetScope\\b)(?:\\s|/\\*.*\\*/)*=(?:\\s|/\\*.*\\*/)*","end":"$","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.declaration.bicep"}}},"var-statement":{"name":"meta.var-statement.bicep","begin":"(\\bvar\\b)(?:\\s|/\\*.*\\*/)*(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:\\s|/\\*.*\\*/)*=(?:\\s|/\\*.*\\*/)*","end":"$","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.declaration.bicep"},"2":{"name":"variable.name.bicep"}}}}}
1
+ {"name":"Bicep","scopeName":"source.bicep","patterns":[{"include":"#expression"},{"include":"#comments"}],"repository":{"array-literal":{"name":"meta.array-literal.bicep","begin":"\\[(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\bfor\\b)","end":"]","patterns":[{"include":"#expression"},{"include":"#comments"}]},"block-comment":{"name":"comment.block.bicep","begin":"/\\*","end":"\\*/"},"comments":{"patterns":[{"include":"#line-comment"},{"include":"#block-comment"}]},"decorator":{"name":"meta.decorator.bicep","begin":"@(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(?=\\b[_$[:alpha:]][_$[:alnum:]]*\\b)","patterns":[{"include":"#expression"},{"include":"#comments"}]},"escape-character":{"name":"constant.character.escape.bicep","match":"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)"},"expression":{"patterns":[{"include":"#string-literal"},{"include":"#string-verbatim"},{"include":"#numeric-literal"},{"include":"#named-literal"},{"include":"#object-literal"},{"include":"#array-literal"},{"include":"#keyword"},{"include":"#identifier"},{"include":"#function-call"},{"include":"#decorator"}]},"function-call":{"name":"meta.function-call.bicep","begin":"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"entity.name.function.bicep"}}},"identifier":{"name":"variable.other.readwrite.bicep","match":"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\()"},"keyword":{"name":"keyword.control.declaration.bicep","match":"\\b(targetScope|resource|module|param|var|output|for|in|if|existing|import|from)\\b"},"line-comment":{"name":"comment.line.double-slash.bicep","match":"//.*(?=$)"},"named-literal":{"name":"constant.language.bicep","match":"\\b(true|false|null)\\b"},"numeric-literal":{"name":"constant.numeric.bicep","match":"[0-9]+"},"object-literal":{"name":"meta.object-literal.bicep","begin":"{","end":"}","patterns":[{"include":"#object-property"},{"include":"#comments"}]},"object-property":{"name":"meta.object-property.bicep","begin":"(?\u003c=^)(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*})","end":"(?=$)","patterns":[{"include":"#object-property-key-identifier"},{"include":"#string-literal"},{"include":"#object-property-end"},{"include":"#comments"}]},"object-property-end":{"name":"meta.object-property-end.bicep","begin":":((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)","end":"(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*$)","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"patterns":[{"include":"#line-comment"},{"include":"#block-comment"}]}}},"object-property-key-identifier":{"name":"meta.object-property-key-identifier.bicep","match":"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)","captures":{"1":{"name":"variable.other.property.bicep"}}},"string-literal":{"name":"string.quoted.single.bicep","begin":"'(?!'')","end":"'","patterns":[{"include":"#escape-character"},{"include":"#string-literal-subst"}]},"string-literal-subst":{"name":"meta.string-literal-subst.bicep","begin":"(?\u003c!\\\\)(\\${)","end":"(})","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.bicep"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bicep"}}},"string-verbatim":{"name":"string.quoted.multi.bicep","begin":"'''","end":"'''"}}}
@@ -1 +1 @@
1
- {"name":"Boo","scopeName":"source.boo","patterns":[{"name":"comment.line.source.boo","begin":"(#|//)","end":"\\n"},{"name":"comment.block.source.boo","begin":"/\\*","end":"\\*/"},{"name":"keyword.control.source.boo","match":"\\b(import|from|if|else|elif|unless|for|in|while|continue|break|pass|return|namespace|try|raise|except|ensure|assert|yield|goto|get|set|of|ref|unsafe|new|match|case|otherwise|debug|using|lock|block|macro|self|event|property)\\b"},{"name":"keyword.operator.types.source.boo","match":"\\b(isa|is|as|cast)\\b"},{"name":"keyword.operator.logical.source.boo","match":"\\b(and|or|not)\\b"},{"name":"keyword.operator.assignment.augmented.source.boo","match":"(\\*=|/=|%=|\\+=|-=|\\*\\*=|\u003e\u003e=|\u003c\u003c=|\u0026=|\\|=|\\^=|\\+\\+|--)"},{"name":"keyword.operator.arithmetic.source.boo","match":"(\\*|/|%|\\+|-|\\*\\*|\u003e\u003e|\u003c\u003c|\u0026|\\||\\^)"},{"name":"keyword.operator.comparison.source.boo","match":"(\u003c|\u003e|\u003c=|\u003e=|==|!=)"},{"name":"keyword.operator.assignment.source.boo","match":"(=)"},{"name":"keyword.operator.source.boo","match":"(\\(|\\)|\\[|\\]|{|}|:|,)"},{"name":"constant.numeric.source.boo","match":"\\b\\d+(\\.\\d+)?(f|F|L)?\\b"},{"name":"constant.language.source.boo","match":"\\b(true|false|null|value)\\b"},{"name":"string.quoted.single.source.boo","begin":"'","end":"'"},{"name":"string.quoted.double.source.boo","begin":"\"","end":"\""},{"name":"string.quoted.double.source.boo","begin":"\"\"\"","end":"\"\"\""},{"name":"storage.type.source.boo","match":"\\b(sbyte|short|int|long|byte|ushort|uint|ulong|single|double|decimal|char|string|bool|object|duck|date|enum)\\b"},{"name":"storage.modifier.source.boo","match":"\\b(public|protected|internal|private|abstract|final|static|partial|virtual|override)\\b"},{"name":"support.function.source.boo","match":"\\b(print|enumerate|gets|prompt|join|map|array|matrix|iterator|shellp|shell|shellm|super|enemurate|range|reversed|zip|cat|typeof|sizeof|len)\\b"},{"name":"meta.property.source.boo","begin":"(?\u003c=\\[)\\s*([Gg]etter|Setter|Property)\\s*(?=\\()","end":"(\\))\\s*(\\])","patterns":[{"contentName":"meta.name.property.source.boo","begin":"(?\u003c=\\()","end":"(?=,|\\))","patterns":[{"contentName":"entity.name.function.source.boo","begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])"},{"include":"$self"}]},{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.property.source.boo"}},"endCaptures":{"1":{"name":"keyword.operator.source.boo"},"2":{"name":"keyword.operator.source.boo"}}},{"name":"storage.type.property.source.boo","match":"\\b([Gg]etter|Setter|Property)\\b"},{"name":"meta.function.source.boo","begin":"\\b(def)\\s+(?=[A-Za-z_][A-Za-z0-9_]*\\s*\\([^\\n]*\\))","end":"(\\))\\s*(?:(\\:?)|(.*$\\n?))","patterns":[{"contentName":"entity.name.function.source.boo","begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])"},{"contentName":"meta.function.parameters.source.boo","begin":"(\\()\\s*(ref\\b)?","end":"(?=\\)\\s*\\:?)","patterns":[{"include":"#keyword_arguments"},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.operator.source.boo"},"2":{"name":"keyword.control.source.boo"}}}],"beginCaptures":{"1":{"name":"storage.type.function.source.boo"}},"endCaptures":{"1":{"name":"keyword.operator.source.boo"},"2":{"name":"keyword.operator.source.boo"},"3":{"name":"invalid.illegal.missing-section-begin.source.boo"}}},{"name":"meta.function.source.boo","begin":"\\b(def|do)(?=\\s*\\()","end":"(\\))\\s*(\\:)","patterns":[{"contentName":"meta.function.parameters.source.boo","begin":"(\\()","end":"(?=\\)\\s*\\:?)","patterns":[{"include":"#keyword_arguments"},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.operator.source.boo"}}}],"beginCaptures":{"1":{"name":"storage.type.closure.source.boo"}},"endCaptures":{"1":{"name":"keyword.operator.source.boo"},"2":{"name":"keyword.operator.source.boo"}}},{"name":"meta.function.source.boo","begin":"\\b(def)\\s+(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(\\()|\\s*($\\n?|#.*$\\n?)","patterns":[{"contentName":"entity.name.function.source.boo","begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#entity_name_function"}]}],"beginCaptures":{"1":{"name":"storage.type.function.source.boo"}},"endCaptures":{"1":{"name":"keyword.operator.source.boo"},"2":{"name":"invalid.illegal.missing-parameters.source.boo"}}},{"name":"storage.type.function.source.boo","match":"\\b(def)\\b"},{"name":"storage.type.closure.source.boo","match":"\\b(do)\\b"},{"name":"keyword.control.source.boo","match":"\\b(constructor|destructor)\\b"},{"name":"meta.callable.source.boo","begin":"\\b(callable)\\s+(?=[A-Za-z_][A-Za-z0-9_]*\\s*\\()","end":"(\\))","patterns":[{"contentName":"entity.name.callable.source.boo","begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])"},{"contentName":"meta.callable.parameters.source.boo","begin":"(\\()","end":"(?=\\)\\s*\\:?)","patterns":[{"include":"#keyword_arguments"},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.operator.source.boo"}}}],"beginCaptures":{"1":{"name":"storage.type.callable.source.boo"}},"endCaptures":{"1":{"name":"keyword.operator.source.boo"}}},{"name":"storage.type.callable.source.boo","match":"\\b(callable)\\b"},{"name":"meta.class.old-style.source.boo","contentName":"entity.name.class.source.boo","begin":"\\b(class|interface|struct)\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*(?:(\\:)|($\\n?)))","end":"\\s*(?:(:)|($\\n?))","patterns":[{"include":"#entity_name_class"}],"beginCaptures":{"1":{"name":"storage.type.class.source.boo"}},"endCaptures":{"1":{"name":"keyword.operator.source.boo"},"2":{"name":"invalid.illegal.missing-section-begin.source.boo"}}},{"name":"meta.class.source.boo","begin":"\\b(class|interface|struct)\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*\\([^\\n]*\\))","end":"(\\))\\s*(?:(\\:)|(.*$\\n?))","patterns":[{"contentName":"entity.name.class.source.boo","begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#entity_name_class"}]},{"contentName":"meta.class.inheritance.source.boo","begin":"(\\()","end":"(?=\\)|:)","patterns":[{"contentName":"entity.other.inherited-class.source.boo","begin":"(?\u003c=\\(|,)\\s*","end":"\\s*(?:(,)|(?=\\)))","patterns":[{"include":"$self"}],"endCaptures":{"1":{"name":"punctuation.separator.inheritance.source.boo"}}}],"beginCaptures":{"1":{"name":"keyword.operator.source.boo"}}}],"beginCaptures":{"1":{"name":"storage.type.class.source.boo"}},"endCaptures":{"1":{"name":"keyword.operator.source.boo"},"2":{"name":"keyword.operator.source.boo"},"3":{"name":"invalid.illegal.missing-section-begin.source.boo"}}},{"name":"meta.class.source.boo","begin":"\\b(class|interface|struct)\\s+(?=[a-zA-Z_][a-zA-Z_0-9])","end":"(\\()|\\s*($\\n?|#.*$\\n?)","patterns":[{"contentName":"entity.name.class.source.boo","begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#entity_name_function"}]}],"beginCaptures":{"1":{"name":"storage.type.class.source.boo"}},"endCaptures":{"1":{"name":"keyword.operator.source.boo"},"2":{"name":"invalid.illegal.missing-inheritance.source.boo"}}},{"name":"storage.type.class.source.boo","match":"\\b(class|interface|struct)\\b"},{"match":"\\b([a-z_]+[A-Za-z_0-9]*\\s+(as))\\b","captures":{"1":{"name":"variable.source.boo"},"2":{"name":"keyword.operator.source.boo"}}}],"repository":{"keyword_arguments":{"begin":"\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*","end":"\\s*(?:(,)|(?=\\n|\\)[:\\s]))","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"variable.parameter.function.json"}},"endCaptures":{"1":{"name":"punctuation.separator.parameters.json"}}}}}
1
+ {"name":"Boo","scopeName":"source.boo","patterns":[{"name":"meta.class.boo","match":"^\\s*((static|partial|abstract|final)\\s+)*(class)\\s+([A-Za-z_][A-Za-z0-9_]*)","captures":{"1":{"name":"storage.modifier.boo"},"3":{"name":"storage.type.class.boo"},"4":{"name":"entity.name.type.class.boo"}}},{"name":"meta.function.boo","match":"^\\s*((static|private|protected|public|virtual|override|abstract|final)\\s+)*(def)\\s+([A-Za-z_][A-Za-z0-9_]*)","captures":{"1":{"name":"storage.modifier.boo"},"3":{"name":"storage.type.function.boo"},"4":{"name":"entity.name.function.boo"}}},{"name":"keyword.control.boo","match":"\\b(assert|break|block|callable|case|class|continue|def|debug|else|elif|ensure|enum|event|except|for|from|get|goto|if|import|in|interface|lock|macro|match|namespace|new|of|otherwise|override|pass|raise|ref|return|self|set|struct|then|try|unless|unsafe|using|virtual|while|yield)\\b"},{"name":"keyword.operator.logical.boo","match":"\\b(and|or|not|is)\\b"},{"name":"keyword.operator.cast.boo","match":"\\b(isa|as|cast)\\b"},{"name":"keyword.operator.comparison.boo","match":"\u003c\\=|\u003e\\=|\\=\\=|\u003c|\u003e|\\!\\="},{"name":"keyword.operator.assignment.augmented.boo","match":"\\+\\=|-\\=|\\*\\=|/\\=|//\\=|%\\=|\u0026\\=|\\|\\=|\\^\\=|\u003e\u003e\\=|\u003c\u003c\\=|\\*\\*\\="},{"name":"keyword.operator.arithmetic.boo","match":"\\+|\\-|\\*|\\*\\*|\\b/\\b|%|\u003c\u003c|\u003e\u003e|\u0026|\\||\\^|~"},{"name":"keyword.operator.assignment.boo","match":"\\="},{"name":"punctuation.boo","match":"(\\(|\\)|\\[|\\]|{|})"},{"name":"comment.line.boo","begin":"(#|//)","end":"\\n"},{"name":"comment.block.boo","begin":"/\\*","end":"\\*/"},{"name":"constant.numeric.boo","match":"\\b\\d+(\\.\\d+)?(f|F|L)?\\b"},{"name":"constant.language.boo","match":"\\b(true|false|null|value)\\b"},{"name":"string.quoted.single.boo","begin":"'","end":"'"},{"name":"string.quoted.double.boo","begin":"\"","end":"\""},{"name":"string.quoted.triple.boo","begin":"\"\"\"","end":"\"\"\""},{"name":"string.quoted.backtick.boo","begin":"`","end":"`"},{"name":"storage.type.boo","match":"\\b(bool|byte|char|date|decimal|double|duck|int|long|object|sbyte|short|single|string|uint|ulong|ushort)\\b"},{"name":"storage.modifier.boo","match":"\\b(public|protected|internal|private|abstract|final|static|partial)\\b"},{"name":"variable.language.boo","match":"\\b(self|super)\\b"},{"name":"support.function.builtin.boo","match":"\\b(print|gets|prompt|join|map|array|len|matrix|iterator|shellp|shell|shellm|enemurate|range|reversed|zip|cat|typeof|sizeof)\\b"},{"match":"\\b([a-z_]+[A-Za-z0-9_]*(\\s+as\\s+([A-Za-z0-9_]+)))\\b","captures":{"1":{"name":"variable.parameter.boo"},"2":{"name":"keyword.operator.cast.boo"},"3":{"name":"storage.type.boo"}}},{"name":"variable.boo","match":"\\b[a-z_]+[A-Za-z_0-9]*\\b"}]}
@@ -0,0 +1 @@
1
+ {"name":"Android Blueprint","scopeName":"source.bp","patterns":[{"include":"#comments"},{"include":"#variables"},{"include":"#module"}],"repository":{"bool":{"name":"constant.language.bp","match":"\\b(true|false)\\b"},"comments":{"patterns":[{"name":"comment.line.double-slash.bp","match":"(//).*$\\n?"},{"name":"comment.block.bp","begin":"/\\*","end":"\\*/"}]},"lists":{"patterns":[{"name":"meta.structure.array.bp","begin":"\\[","end":"\\]","patterns":[{"name":"punctuation.separator.array.json","match":","},{"include":"#strings"},{"include":"#comments"}],"beginCaptures":{"0":{"name":"punctuation.definition.array.begin.bp"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.bp"}}}]},"map":{"patterns":[{"name":"meta.structure.dictionary.bp","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"name":"support.variable","match":"\\w+"},{"name":"meta.structure.dictionary.value.bp","begin":":","end":"(,)|(?=\\})","patterns":[{"include":"#values"}],"beginCaptures":{"0":{"name":"punctuation.separator.dictionary.key-value.bp"}},"endCaptures":{"1":{"name":"punctuation.separator.dictionary.pair.bp"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.dictionary.begin.bp"}},"endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.bp"}}}]},"module":{"name":"meta.structure.module.bp","begin":"\\b(\\w+)\\b","end":"\\n","patterns":[{"include":"#map"}],"beginCaptures":{"1":{"name":"support.variable.bp"}}},"strings":{"name":"string.quoted.double.bp","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.bp"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.bp"}}},"values":{"patterns":[{"include":"#bool"},{"include":"#lists"},{"include":"#map"},{"include":"#strings"},{"include":"#comments"}]},"variables":{"patterns":[{"name":"meta.assignment","begin":"(\\w+)\\s*(=)","end":"\\n","patterns":[{"include":"#values"}],"beginCaptures":{"1":{"name":"variable.other.bp"},"2":{"name":"punctuation.definition.assignment.bp"}}}]}}}
@@ -0,0 +1 @@
1
+ {"name":"SELinux Common Intermediate Language","scopeName":"source.cil","patterns":[{"include":"#main"}],"repository":{"comments":{"patterns":[{"name":"comment.line.number-sign.cil","match":"(;).*","captures":{"1":{"name":"punctuation.definition.comment.cil"}}}]},"constants":{"patterns":[{"name":"constant.numeric.integer.decimal.cil","match":"\\b([0-9]+)\\b"},{"name":"meta.string.aidl","match":"(\")([^\\\"]*)(\")","captures":{"1":{"name":"punctuation.definition.string.begin.aidl"},"2":{"name":"string.quoted.double.aidl"},"3":{"name":"punctuation.definition.string.end.aidl"}}}]},"keywords":{"patterns":[{"name":"keyword.cil","match":"\\b(allow|allowx|any|auditallow|auditallowx|block|blockabstract|blockinherit|boolean|booleanif|call|category|categoryalias|categoryaliasactual|categoryorder|categoryset|char|class|classcommon|classmap|classmapping|classorder|classpermission|classpermissionset|common|constrain|context|defaultrange|defaultrole|defaulttype|defaultuser|deny|devicetreecon|dir|dontaudit|dontauditx|expandtypeattribute|file|filecon|fsuse|genfscon|glblub|handleunknown|high|ibendportcon|ibpkeycon|in|ioctl|iomemcon|ioportcon|ipaddr|level|levelrange|low|low-high|macro|mls|mlsconstrain|mlsvalidatetrans|name|netifcon|neverallow|neverallowx|\u003cnode\u003e|nodecon|optional|pcidevicecon|perm|permissionx|pipe|pirqcon|policycap|portcon|rangetransition|reject|role|roleallow|roleattribute|roleattributeset|rolebounds|roletransition|roletype|\u003croot\u003e|selinuxuser|selinuxuserdefault|sensitivity|sensitivityalias|sensitivityaliasactual|sensitivitycategory|sensitivityorder|sid|sidcontext|sidorder|socket|source|\u003csrc_cil\u003e|\u003csrc_hll\u003e|\u003csrc_info\u003e|string|symlink|target|task|trans|tunable|tunableif|type|typealias|typealiasactual|typeattribute|typeattributeset|typebounds|typechange|typemember|typepermissive|typetransition|unordered|user|userattribute|userattributeset|userbounds|userlevel|userprefix|userrange|userrole|validatetrans|xattr)\\b"},{"name":"keyword.operator.word.cil","match":"\\b(and|or|xor|not|all|eq|neq|dom|domby|incomp|range)\\b"},{"name":"constant.language.cil","match":"\\b(\\*|dccp|false|h1|h2|l1|l2|object_r|r1|r2|r3|sctp|self|t1|t2|t2|tcp|true|u1|u2|u3|udp)\\b"}]},"main":{"patterns":[{"include":"#comments"},{"include":"#keywords"},{"include":"#constants"},{"include":"#punctuation"}]},"punctuation":{"patterns":[{"name":"punctuation.section.parens.begin.cil","match":"(\\()"},{"name":"punctuation.section.parens.end.cil","match":"(\\))"}]}}}
@@ -1 +1 @@
1
- {"name":"Cirru","scopeName":"source.cirru","patterns":[{"name":"string.quoted.double.cirru","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.cirru","match":"\\\\."}]},{"name":"constant.numeric.cirru","match":"-?\\b\\d\\S*\\b"},{"name":"keyword.operator.cirru","match":"(?=^)\\s*\\,"},{"name":"support.function.cirru","match":"(?=^)\\s*[^\\(\\)\\s\\$][^\\(\\)\\s]*"},{"name":"support.function.cirru","match":"(?\u003c=\\()[^\\(\\)\\s\\$][^\\(\\)\\s]*"},{"name":"support.function.cirru","match":"(?=\\$\\s+)[^\\(\\)\\s\\$][^\\(\\)\\s]*"},{"name":"keyword.operator.cirru","match":"\\s\\$\\s*$"},{"name":"entity.cirru","match":"\\s+((\\$\\s+)+)([^\\(\\)\\s\\$][^\\(\\)\\s]*)","captures":{"1":{"name":"keyword.operator.cirru"},"3":{"name":"support.function.cirru"}}},{"name":"keyword.operator.cirru","match":"[\\)\\(]"},{"name":"variable.parameter.cirru","match":"(?!=($\\s+))[^\\(\\)\\s\\$][^\\(\\)\\s]*"}]}
1
+ {"name":"Cirru","scopeName":"source.cirru","patterns":[{"name":"string.quoted.double.cirru","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.cirru","match":"\\\\."}]},{"name":"constant.numeric.cirru","match":"-?\\b\\d\\S*\\b"},{"name":"keyword.operator.cirru","match":"(?=^)\\s*\\,"},{"name":"keyword.operator.cirru","match":"\\s\\$\\s*$"},{"name":"support.function.cirru","match":"(?=^)\\s*[^\\(\\)\\s][^\\(\\)\\s]*"},{"name":"support.function.cirru","match":"(?\u003c=\\()[^\\(\\)\\s][^\\(\\)\\s]*"},{"name":"support.function.cirru","match":"(?=\\$\\s+)[^\\(\\)\\s][^\\(\\)\\s]*"},{"name":"entity.cirru","match":"\\s+((\\$\\s+)+)([^\\(\\)\\s][^\\(\\)\\s]*)","captures":{"1":{"name":"keyword.operator.cirru"},"3":{"name":"support.function.cirru"}}},{"name":"keyword.operator.cirru","match":"[\\)\\(]"},{"name":"variable.parameter.cirru","match":"(?!=($\\s+))[^\\(\\)\\s][^\\(\\)\\s]*"}]}