github-linguist 7.26.0 → 7.28.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/ext/linguist/lex.linguist_yy.c +313 -294
  3. data/ext/linguist/lex.linguist_yy.h +5 -4
  4. data/ext/linguist/tokenizer.l +5 -2
  5. data/grammars/inline.edgeql.json +1 -0
  6. data/grammars/inline.hbs.json +1 -0
  7. data/grammars/inline.template.json +1 -0
  8. data/grammars/markdown.d2.codeblock.json +1 -0
  9. data/grammars/markdown.lean4.codeblock.json +1 -0
  10. data/grammars/markdown.move.codeblock.json +1 -0
  11. data/grammars/mdx.LANGUAGE.codeblock.json +1 -0
  12. data/grammars/source.abap.json +1 -1
  13. data/grammars/source.aidl.json +1 -1
  14. data/grammars/source.al.json +1 -1
  15. data/grammars/source.ballerina.json +1 -1
  16. data/grammars/source.bicep.json +1 -1
  17. data/grammars/source.cds.json +1 -1
  18. data/grammars/source.cobol.json +1 -1
  19. data/grammars/source.cs.json +1 -1
  20. data/grammars/source.d2.json +1 -1
  21. data/grammars/source.dart.json +1 -1
  22. data/grammars/source.denizenscript.json +1 -1
  23. data/grammars/source.directivesmf.json +1 -0
  24. data/grammars/source.dm.json +1 -1
  25. data/grammars/source.earthfile.json +1 -1
  26. data/grammars/source.edgeql.json +1 -0
  27. data/grammars/source.emacs.lisp.json +1 -1
  28. data/grammars/source.fsharp.json +1 -1
  29. data/grammars/source.gdresource.json +1 -1
  30. data/grammars/source.gdscript.json +1 -1
  31. data/grammars/source.genero-4gl.json +1 -0
  32. data/grammars/source.genero-per.json +1 -0
  33. data/grammars/source.gjs.json +1 -0
  34. data/grammars/source.gleam.json +1 -1
  35. data/grammars/source.gsc.json +1 -1
  36. data/grammars/source.gts.json +1 -0
  37. data/grammars/source.hcl.json +1 -0
  38. data/grammars/source.hcl.terraform.json +1 -0
  39. data/grammars/source.ice.json +1 -0
  40. data/grammars/source.igor.json +1 -1
  41. data/grammars/source.julia.json +1 -1
  42. data/grammars/source.kotlin.json +1 -1
  43. data/grammars/source.lean4.json +1 -0
  44. data/grammars/source.lean4.markdown.json +1 -0
  45. data/grammars/source.matlab.json +1 -1
  46. data/grammars/source.mdx.json +1 -1
  47. data/grammars/source.meta-info.json +1 -1
  48. data/grammars/source.mo.json +1 -1
  49. data/grammars/source.nasal.json +1 -1
  50. data/grammars/source.nim.json +1 -1
  51. data/grammars/source.nushell.json +1 -1
  52. data/grammars/source.odin.json +1 -1
  53. data/grammars/source.pic.json +1 -1
  54. data/grammars/source.praat.json +1 -0
  55. data/grammars/source.prisma.json +1 -1
  56. data/grammars/source.ql.json +1 -1
  57. data/grammars/source.raku.json +1 -1
  58. data/grammars/source.rascal.json +1 -1
  59. data/grammars/source.rbs.json +1 -1
  60. data/grammars/source.rego.json +1 -1
  61. data/grammars/source.rescript.json +1 -1
  62. data/grammars/source.rez.json +1 -0
  63. data/grammars/source.rpgle.json +1 -1
  64. data/grammars/source.rust.json +1 -1
  65. data/grammars/source.scala.json +1 -1
  66. data/grammars/source.scenic.json +1 -1
  67. data/grammars/source.sentinel.json +1 -0
  68. data/grammars/source.slice.json +1 -1
  69. data/grammars/source.solidity.json +1 -1
  70. data/grammars/source.stan.json +1 -1
  71. data/grammars/source.swift.json +1 -1
  72. data/grammars/source.talon.json +1 -1
  73. data/grammars/source.textgrid.json +1 -0
  74. data/grammars/source.toit.json +1 -0
  75. data/grammars/source.ts.json +1 -1
  76. data/grammars/source.tsx.json +1 -1
  77. data/grammars/source.typst.json +1 -0
  78. data/grammars/source.vba.json +1 -1
  79. data/grammars/source.viml.json +1 -1
  80. data/grammars/source.vyper.json +1 -1
  81. data/grammars/source.wit.json +1 -1
  82. data/grammars/source.yul.json +1 -1
  83. data/grammars/text.adblock.json +1 -1
  84. data/grammars/text.hash-commented.json +1 -1
  85. data/grammars/text.html.ember-handlebars.json +1 -0
  86. data/grammars/text.html.statamic.json +1 -1
  87. data/grammars/text.md.json +1 -1
  88. data/grammars/text.tex.json +1 -1
  89. data/grammars/text.tex.latex.sweave.json +1 -0
  90. data/grammars/text.xml.svg.json +1 -1
  91. data/grammars/version +1 -1
  92. data/lib/linguist/VERSION +1 -1
  93. data/lib/linguist/generated.rb +14 -4
  94. data/lib/linguist/heuristics.rb +2 -0
  95. data/lib/linguist/heuristics.yml +26 -11
  96. data/lib/linguist/languages.json +1 -1
  97. data/lib/linguist/languages.yml +129 -12
  98. data/lib/linguist/samples.json +1 -1
  99. metadata +35 -14
  100. data/grammars/govulncheck.json +0 -1
  101. data/grammars/source.dmf.json +0 -1
  102. data/grammars/source.genero-forms.json +0 -1
  103. data/grammars/source.genero.json +0 -1
  104. data/grammars/source.nimcfg.json +0 -1
@@ -1 +1 @@
1
- {"name":"Ballerina","scopeName":"source.ballerina","patterns":[{"include":"#statements"}],"repository":{"access-modifier":{"patterns":[{"name":"storage.modifier.ballerina keyword.other.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(public|private)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"annotationAttachment":{"patterns":[{"match":"(@)((?:[_$[:alpha:]][_$[:alnum:]]*))\\s*(:?)\\s*((?:[_$[:alpha:]][_$[:alnum:]]*)?)","captures":{"1":{"name":"punctuation.decorator.ballerina"},"2":{"name":"support.type.ballerina"},"3":{"name":"punctuation.decorator.ballerina"},"4":{"name":"support.type.ballerina"}}}]},"annotationDefinition":{"patterns":[{"begin":"\\bannotation\\b","end":";","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"array-literal":{"name":"meta.array.literal.ballerina","begin":"\\s*(\\[)","end":"\\]","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"meta.brace.square.ballerina"}},"endCaptures":{"0":{"name":"meta.brace.square.ballerina"}}},"booleans":{"patterns":[{"name":"constant.language.boolean.ballerina","match":"\\b(true|false)\\b"}]},"butClause":{"patterns":[{"begin":"=\u003e","end":",|(?=\\})","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"meta.arrow.ballerina storage.type.function.arrow.ballerina"}}}]},"butExp":{"patterns":[{"begin":"\\bbut\\b","end":"\\}","patterns":[{"include":"#butExpBody"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"butExpBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#parameter"},{"include":"#butClause"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"call":{"patterns":[{"name":"entity.name.function.ballerina","match":"(?:\\')?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()"}]},"callableUnitBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#workerDef"},{"include":"#service-decl"},{"include":"#objectDec"},{"include":"#function-defn"},{"include":"#forkStatement"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"class-body":{"name":"meta.class.body.ballerina","begin":"\\{","end":"\\}","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#function-defn"},{"include":"#var-expr"},{"include":"#variable-initializer"},{"include":"#access-modifier"},{"include":"#keywords"},{"begin":"(?\u003c=:)\\s*","end":"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"class-defn":{"name":"meta.class.ballerina","begin":"(\\s+)(class\\b)|^class\\b(?=\\s+|/[/*])","end":"(?\u003c=\\})","patterns":[{"include":"#keywords"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","captures":{"0":{"name":"entity.name.type.class.ballerina"}}},{"include":"#class-body"}],"beginCaptures":{"0":{"name":"storage.type.class.ballerina keyword.other.ballerina"}}},"code":{"patterns":[{"include":"#booleans"},{"include":"#matchStatement"},{"include":"#butExp"},{"include":"#xml"},{"include":"#stringTemplate"},{"include":"#keywords"},{"include":"#strings"},{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#annotationAttachment"},{"include":"#numbers"},{"include":"#maps"},{"include":"#paranthesised"},{"include":"#paranthesisedBracket"}]},"comment":{"patterns":[{"name":"comment.ballerina","match":"\\/\\/.*"}]},"constrainType":{"patterns":[{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#comment"},{"include":"#constrainType"},{"name":"storage.type.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}}]},"control-statement":{"patterns":[{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))","end":"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.control.flow.ballerina"}}},{"include":"#for-loop"},{"include":"#if-statement"},{"name":"keyword.control.conditional.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"decl-block":{"name":"meta.block.ballerina","begin":"\\{","end":"(?=\\} external;)|(\\})","patterns":[{"include":"#statements"},{"include":"#mdDocumentation"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"declaration":{"patterns":[{"include":"#import-declaration"},{"include":"#var-expr"},{"include":"#typeDefinition"},{"include":"#function-defn"},{"include":"#service-decl"},{"include":"#class-defn"},{"include":"#enum-decl"},{"include":"#source"},{"include":"#keywords"}]},"defaultValue":{"patterns":[{"begin":"[=:]","end":"(?=[,)])","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.operator.ballerina"}}}]},"defaultWithParentheses":{"patterns":[{"begin":"\\(","end":"\\)","beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"documentationBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"match":"(P|R|T|F|V)({{)(.*)(}})","captures":{"1":{"name":"keyword.other.ballerina.documentation"},"2":{"name":"keyword.other.ballerina.documentation"},"3":{"name":"variable.parameter.ballerina.documentation"},"4":{"name":"keyword.other.ballerina.documentation"}}},{"name":"comment.block.code.ballerina.documentation","begin":"\\```","end":"\\```"},{"name":"comment.block.code.ballerina.documentation","begin":"\\``","end":"\\``"},{"name":"comment.block.code.ballerina.documentation","begin":"\\`","end":"\\`"},{"name":"comment.block.ballerina.documentation","match":"."}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"documentationDef":{"patterns":[{"begin":"\\b(?:documentation|deprecated)\\b","end":"\\}","patterns":[{"include":"#documentationBody"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"delimiter.curly"}}}]},"enum-decl":{"name":"meta.enum.declaration.ballerina","begin":"(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"begin":"\\{","end":"\\}","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=,|\\}|$)","patterns":[{"include":"#comment"},{"include":"#variable-initializer"}],"beginCaptures":{"0":{"name":"variable.other.enummember.ballerina"}}},{"begin":"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))","end":"(?=,|\\}|$)","patterns":[{"include":"#string"},{"include":"#array-literal"},{"include":"#comment"},{"include":"#variable-initializer"}]},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}],"beginCaptures":{"1":{"name":"storage.modifier.ballerina"},"2":{"name":"keyword.other.ballerina"},"3":{"name":"entity.name.type.enum.ballerina"}}},"errorDestructure":{"patterns":[{"begin":"error","end":"(?==\u003e)","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"expression":{"patterns":[{"include":"#keywords"},{"include":"#expressionWithoutIdentifiers"},{"include":"#identifiers"}]},"expression-operators":{"patterns":[{"name":"keyword.operator.assignment.compound.ballerina","match":"\\*=|(?\u003c!\\()/=|%=|\\+=|\\-="},{"name":"keyword.operator.assignment.compound.bitwise.ballerina","match":"\\\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|\\|="},{"name":"keyword.operator.bitwise.shift.ballerina","match":"\u003c\u003c|\u003e\u003e\u003e|\u003e\u003e"},{"name":"keyword.operator.comparison.ballerina","match":"===|!==|==|!="},{"name":"keyword.operator.relational.ballerina","match":"\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e"},{"match":"(?\u003c=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))","captures":{"1":{"name":"keyword.operator.logical.ballerina"},"2":{"name":"keyword.operator.assignment.compound.ballerina"},"3":{"name":"keyword.operator.arithmetic.ballerina"}}},{"name":"keyword.operator.logical.ballerina","match":"\\!|\u0026\u0026|\\|\\||\\?\\?"},{"name":"keyword.operator.bitwise.ballerina","match":"\\\u0026|~|\\^|\\|"},{"name":"keyword.operator.assignment.ballerina","match":"\\="},{"name":"keyword.operator.decrement.ballerina","match":"--"},{"name":"keyword.operator.increment.ballerina","match":"\\+\\+"},{"name":"keyword.operator.arithmetic.ballerina","match":"%|\\*|/|-|\\+"}]},"expressionWithoutIdentifiers":{"patterns":[{"include":"#xml"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#comment"},{"include":"#object-literal"},{"include":"#ternary-expression"},{"include":"#expression-operators"},{"include":"#literal"},{"include":"#paranthesised"}]},"for-loop":{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))foreach\\s*","end":"(?=\\{)","patterns":[{"name":"keyword.other.ballerina","match":"\\bin\\b"},{"include":"#identifiers"},{"include":"#comment"},{"include":"#var-expr"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.control.loop.ballerina"},"1":{"name":"support.type.primitive.ballerina"}}},"forkBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#workerDef"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"forkStatement":{"patterns":[{"begin":"\\bfork\\b","end":"\\}","patterns":[{"include":"#forkBody"}],"beginCaptures":{"0":{"name":"keyword.control.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"function-body":{"patterns":[{"include":"#comment"},{"include":"#functionParameters"},{"include":"#decl-block"},{"name":"meta.block.ballerina","begin":"\\=\u003e","end":"(?=\\;)|(?=\\,)|(?=)(?=\\);)","patterns":[{"include":"#statements"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"meta.arrow.ballerina storage.type.function.arrow.ballerina"}}},{"name":"keyword.generator.asterisk.ballerina","match":"\\*"}]},"function-defn":{"name":"meta.function.ballerina","begin":"(?:(public|private)\\s+)?(function\\b)","end":"(?\u003c=\\;)|(?\u003c=\\})|(?\u003c=\\,)|(?=)(?=\\);)","patterns":[{"name":"keyword.ballerina","match":"\\bexternal\\b"},{"include":"#stringTemplate"},{"include":"#annotationAttachment"},{"include":"#functionReturns"},{"include":"#functionName"},{"include":"#functionParameters"},{"include":"#punctuation-semicolon"},{"include":"#function-body"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"},"2":{"name":"keyword.other.ballerina"}}},"function-parameters-body":{"patterns":[{"include":"#comment"},{"include":"#numbers"},{"include":"#string"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#keywords"},{"include":"#parameter-name"},{"include":"#array-literal"},{"include":"#variable-initializer"},{"include":"#identifiers"},{"name":"punctuation.separator.parameter.ballerina","match":"\\,"}]},"functionName":{"patterns":[{"name":"keyword.other.ballerina","match":"\\bfunction\\b"},{"include":"#type-primitive"},{"include":"#self-literal"},{"include":"#string"},{"match":"\\s+(\\b(self)|\\b(is|new|isolated|null|function|in)\\b|(string|int|boolean|float|byte|decimal|json|xml|anydata)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))","captures":{"2":{"name":"variable.language.this.ballerina"},"3":{"name":"keyword.other.ballerina"},"4":{"name":"support.type.primitive.ballerina"},"5":{"name":"storage.type.ballerina"},"6":{"name":"meta.definition.function.ballerina entity.name.function.ballerina"}}}]},"functionParameters":{"name":"meta.parameters.ballerina","begin":"\\(|\\[","end":"\\)|\\]","patterns":[{"include":"#function-parameters-body"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}},"functionReturns":{"name":"meta.type.function.return.ballerina","begin":"\\s*(returns)\\s*","end":"(?==\u003e)|(\\=)|(?=\\{)|(\\))|(?=\\;)","patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numbers"},{"include":"#keywords"},{"include":"#type-primitive"},{"match":"\\s*\\b(var)(?=\\s+|\\[|\\?)","captures":{"1":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.ballerina","match":"\\|"},{"name":"keyword.operator.optional.ballerina","match":"\\?"},{"include":"#type-annotation"},{"include":"#type-tuple"},{"include":"#keywords"},{"name":"variable.other.readwrite.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"}},"endCaptures":{"1":{"name":"keyword.operator.ballerina"}}},"functionType":{"patterns":[{"begin":"\\bfunction\\b","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#comment"},{"include":"#functionTypeParamList"},{"include":"#functionTypeReturns"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"functionTypeParamList":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"name":"keyword","match":"public"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#parameterTuple"},{"include":"#functionTypeType"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"delimiter.parenthesis"}},"endCaptures":{"0":{"name":"delimiter.parenthesis"}}}]},"functionTypeReturns":{"patterns":[{"begin":"\\breturns\\b","end":"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))","patterns":[{"include":"#functionTypeReturnsParameter"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword"}}}]},"functionTypeReturnsParameter":{"patterns":[{"begin":"((?=record|object|function)|(?:[_$[:alpha:]][_$[:alnum:]]*))","end":"(?=\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#defaultValue"},{"include":"#comment"},{"include":"#parameterTuple"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"functionTypeType":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))","beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"identifiers":{"patterns":[{"match":"(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((\n (function\\s*[(\u003c*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=\u003e)\n )) |\n ((\n ((\u003c\\s*$)|((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if =\u003e is on new line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with =\u003e on same line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=\u003e # arrow operator\n)\n ))\n))","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"variable.other.property.ballerina"}}},{"include":"#type-primitive"},{"include":"#self-literal"},{"name":"keyword.control.ballerina","match":"\\b(check|foreach|if|checkpanic)\\b"},{"include":"#call"},{"name":"support.type.primitive.ballerina","match":"\\b(var)\\b"},{"match":"([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?","captures":{"1":{"name":"variable.other.readwrite.ballerina"},"3":{"name":"punctuation.accessor.ballerina"},"4":{"name":"entity.name.function.ballerina"},"5":{"name":"punctuation.definition.parameters.begin.ballerina"},"6":{"name":"punctuation.definition.parameters.end.ballerina"}}},{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#type-annotation"}]},"if-statement":{"patterns":[{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?=\\bif\\b\\s*(?!\\{))","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(if)\\s*(\\()?","end":"(\\))|(?=\\{)","patterns":[{"include":"#decl-block"},{"include":"#keywords"},{"include":"#identifiers"},{"include":"#type-primitive"},{"include":"#xml"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#comment"},{"include":"#ternary-expression"},{"include":"#expression-operators"},{"include":"#literal"},{"include":"#paranthesised"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.ballerina"},"2":{"name":"meta.brace.round.ballerina"}},"endCaptures":{"1":{"name":"meta.brace.round.ballerina"}}},{"begin":"(?\u003c=\\))(?=\\s|\\=)","end":"(?=\\{)","patterns":[{"include":"#literal"},{"include":"#keywords"}]},{"include":"#decl-block"}]}]},"import-clause":{"patterns":[{"include":"#comment"},{"match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*))","captures":{"1":{"name":"keyword.control.default.ballerina"},"3":{"name":"variable.other.readwrite.ballerina meta.import.module.ballerina"},"5":{"name":"keyword.control.default.ballerina"},"6":{"name":"variable.other.readwrite.alias.ballerina"}}},{"name":"variable.other.readwrite.alias.ballerina","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]},"import-declaration":{"name":"meta.import.ballerina","begin":"\\bimport\\b","end":"\\;","patterns":[{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#keywords"},{"include":"#comment"},{"include":"#import-clause"},{"include":"#punctuation-accessor"}],"beginCaptures":{"0":{"name":"keyword.control.import.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}},"keywords":{"patterns":[{"name":"keyword.control.ballerina","match":"\\b(fork|join|while|returns|transaction|transactional|retry|commit|rollback|typeof|enum|wait|match)\\b"},{"name":"keyword.control.flow.ballerina","match":"\\b(return|break|continue|check|checkpanic|panic|trap|from|where)\\b"},{"name":"keyword.other.ballerina","match":"\\b(public|private|external|return|record|object|remote|abstract|client|true|false|fail|import|version)\\b"},{"name":"keyword.other.ballerina","match":"\\b(as|on|function|resource|listener|const|final|is|null|lock|annotation|source|worker|parameter|field|isolated|in)\\b"},{"name":"keyword.other.ballerina","match":"\\b(xmlns|table|key|let|new|select|start|flush|default|do|base16|base64|conflict)\\b"},{"name":"keyword.other.ballerina","match":"\\b(limit|outer|equals|order|by|ascending|descending|class|configurable|variable|module|service)\\b"},{"name":"meta.arrow.ballerina storage.type.function.arrow.ballerina","match":"(=\u003e)"},{"name":"keyword.operator.ballerina","match":"(!|%|\\+|\\-|~=|===|==|=|!=|!==|\u003c|\u003e|\u0026|\\||\\?:|\\.\\.\\.|\u003c=|\u003e=|\u0026\u0026|\\|\\||~|\u003e\u003e|\u003e\u003e\u003e)"},{"include":"#types"},{"include":"#self-literal"},{"include":"#type-primitive"}]},"literal":{"patterns":[{"include":"#booleans"},{"include":"#numbers"},{"include":"#strings"},{"include":"#maps"},{"include":"#self-literal"},{"include":"#array-literal"}]},"maps":{"patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}]}]},"matchBindingPattern":{"patterns":[{"begin":"var","end":"(?==\u003e)|,","patterns":[{"include":"#errorDestructure"},{"include":"#code"},{"name":"variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"matchStatement":{"patterns":[{"begin":"\\bmatch\\b","end":"\\}","patterns":[{"include":"#matchStatementBody"},{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.control.ballerina"}}}]},"matchStatementBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#literal"},{"include":"#matchBindingPattern"},{"include":"#matchStatementPatternClause"},{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"matchStatementPatternClause":{"patterns":[{"begin":"=\u003e","end":"((\\})|;|,)","patterns":[{"include":"#callableUnitBody"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"mdDocumentation":{"name":"comment.mddocs.ballerina","begin":"\\#","end":"[\\r\\n]+","patterns":[{"include":"#mdDocumentationReturnParamDescription"},{"include":"#mdDocumentationParamDescription"}]},"mdDocumentationParamDescription":{"patterns":[{"begin":"(\\+\\s+)(\\'?[_$[:alpha:]][_$[:alnum:]]*)(\\s*\\-\\s+)","end":"(?=[^#\\r\\n]|(?:# *?\\+))","patterns":[{"name":"comment.mddocs.paramdesc.ballerina","match":"#.*"}],"beginCaptures":{"1":{"name":"keyword.operator.ballerina"},"2":{"name":"variable.other.readwrite.ballerina"},"3":{"name":"keyword.operator.ballerina"}}}]},"mdDocumentationReturnParamDescription":{"patterns":[{"begin":"(#)(?: *?)(\\+)(?: *)(return)(?: *)(-)?(.*)","end":"(?=[^#\\r\\n]|(?:# *?\\+))","patterns":[{"name":"comment.mddocs.returnparamdesc.ballerina","match":"#.*"}],"beginCaptures":{"1":{"name":"comment.mddocs.ballerina"},"2":{"name":"keyword.ballerina"},"3":{"name":"keyword.ballerina"},"4":{"name":"keyword.ballerina"},"5":{"name":"comment.mddocs.returnparamdesc.ballerina"}}}]},"multiType":{"patterns":[{"name":"storage.type.ballerina","match":"(?\u003c=\\|)([_$[:alpha:]][_$[:alnum:]]*)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)"},{"name":"keyword.operator.ballerina","match":"\\|"}]},"numbers":{"patterns":[{"name":"constant.numeric.decimal.ballerina","match":"\\b0[xX][\\da-fA-F]+\\b|\\b\\d+(?:\\.(?:\\d+|$))?"}]},"object-literal":{"name":"meta.objectliteral.ballerina","begin":"\\{","end":"\\}","patterns":[{"include":"#object-member"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"object-member":{"patterns":[{"include":"#comment"},{"include":"#function-defn"},{"include":"#literal"},{"include":"#keywords"},{"include":"#expression"},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?=\\[)","end":"(?=:)|((?\u003c=[\\]])(?=\\s*[\\(\\\u003c]))","patterns":[{"include":"#comment"}]},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?=[\\'\\\"\\`])","end":"(?=:)|((?\u003c=[\\'\\\"\\`])(?=((\\s*[\\(\\\u003c,}])|(\\n*})|(\\s+(as)\\s+))))","patterns":[{"include":"#comment"},{"include":"#string"}]},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?x)(?=(\\b(?\u003c!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))","end":"(?=:)|(?=\\s*([\\(\\\u003c,}])|(\\s+as\\s+))","patterns":[{"include":"#comment"},{"include":"#numbers"}]},{"name":"meta.method.declaration.ballerina","begin":"(?\u003c=[\\]\\'\\\"\\`])(?=\\s*[\\(\\\u003c])","end":"(?=\\}|;|,)|(?\u003c=\\})","patterns":[{"include":"#function-body"}]},{"name":"meta.object.member.ballerina","match":"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)","captures":{"0":{"name":"meta.object-literal.key.ballerina"},"1":{"name":"constant.numeric.decimal.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((\n (function\\s*[(\u003c*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=\u003e)\n )) |\n ((\n ((\u003c\\s*$)|((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if =\u003e is on new line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with =\u003e on same line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=\u003e # arrow operator\n)\n ))\n)))","captures":{"0":{"name":"meta.object-literal.key.ballerina"},"1":{"name":"entity.name.function.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)","captures":{"0":{"name":"meta.object-literal.key.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"\\.\\.\\.","end":"(?=,|\\})","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.spread.ballerina"}}},{"name":"meta.object.member.ballerina","match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)","captures":{"1":{"name":"variable.other.readwrite.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+(const)(?=\\s*([,}]|$))","captures":{"1":{"name":"keyword.control.as.ballerina"},"2":{"name":"storage.modifier.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+","end":"(?=[;),}\\]:?\\-\\+\\\u003e]|\\|\\||\\\u0026\\\u0026|\\!\\=\\=|$|^|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+))","beginCaptures":{"1":{"name":"keyword.control.as.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)","end":"(?=,|\\}|$|\\/\\/|\\/\\*)","patterns":[{"include":"#expression"}]}]},"objectDec":{"patterns":[{"begin":"\\bobject\\b(?!:)","end":"(?\u003c=\\})","patterns":[{"include":"#decl-block"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}}]},"objectInitBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"objectInitParameters":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#code"},{"name":"variable.parameter.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}}]},"objectMemberFunctionDec":{"patterns":[{"begin":"\\bfunction\\b","end":";","patterns":[{"include":"#functionParameters"},{"name":"keyword.ballerina","match":"\\breturns\\b"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"parameter":{"patterns":[{"begin":"((?=record|object|function)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)|(?:[_$[:alpha:]][_$[:alnum:]]*))","end":"(?:\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#parameterWithDescriptor"},{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#defaultValue"},{"include":"#comment"},{"include":"#parameterTuple"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"parameter-name":{"patterns":[{"match":"\\s*\\b(var)\\s+","captures":{"1":{"name":"support.type.primitive.ballerina"}}},{"match":"(?x)(?:(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+)?(?:(\\.\\.\\.)\\s*)?(?\u003c!=|:)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(this)|(string|int|boolean|float|byte|decimal|json|xml|anydata)|\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)","captures":{"10":{"name":"keyword.operator.optional.ballerina"},"2":{"name":"keyword.operator.rest.ballerina"},"3":{"name":"support.type.primitive.ballerina"},"4":{"name":"keyword.other.ballerina"},"5":{"name":"constant.language.boolean.ballerina"},"6":{"name":"keyword.control.flow.ballerina"},"7":{"name":"storage.type.ballerina"},"8":{"name":"variable.parameter.ballerina"},"9":{"name":"variable.parameter.ballerina"}}}]},"parameterTuple":{"patterns":[{"begin":"\\[","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))","patterns":[{"include":"#record"},{"include":"#objectDec"},{"include":"#parameterTupleType"},{"include":"#parameterTupleEnd"},{"include":"#comment"}]}]},"parameterTupleEnd":{"patterns":[{"begin":"\\]","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))","patterns":[{"include":"#defaultWithParentheses"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}]}]},"parameterTupleType":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?:\\,)|(?:\\|)|(?=\\])","beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"parameterWithDescriptor":{"patterns":[{"begin":"\\\u0026","end":"(?=\\,)|(?=\\|)|(?=\\))","patterns":[{"include":"#parameter"}],"beginCaptures":{"0":{"name":"keyword.operator.ballerina"}}}]},"parameters":{"patterns":[{"name":"keyword.control.flow.ballerina","match":"\\s*(return|break|continue|check|checkpanic|panic|trap|from|where)\\b"},{"name":"keyword.other.ballerina","match":"\\s*(let|select)\\b"},{"name":"punctuation.separator.parameter.ballerina","match":"\\,"}]},"paranthesised":{"name":"meta.brace.round.block.ballerina","begin":"\\(","end":"\\)","patterns":[{"include":"#self-literal"},{"include":"#function-defn"},{"include":"#decl-block"},{"include":"#comment"},{"include":"#string"},{"include":"#parameters"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#stringTemplate"},{"include":"#parameter-name"},{"include":"#variable-initializer"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brace.round.ballerina"}},"endCaptures":{"0":{"name":"meta.brace.round.ballerina"}}},"paranthesisedBracket":{"patterns":[{"begin":"\\[","end":"\\]","patterns":[{"include":"#comment"},{"include":"#code"}]}]},"punctuation-accessor":{"patterns":[{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"}}}]},"punctuation-comma":{"patterns":[{"name":"punctuation.separator.comma.ballerina","match":","}]},"punctuation-semicolon":{"patterns":[{"name":"punctuation.terminator.statement.ballerina","match":";"}]},"record":{"name":"meta.record.ballerina","begin":"\\brecord\\b","end":"(?\u003c=\\})","patterns":[{"include":"#recordBody"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}},"recordBody":{"patterns":[{"include":"#decl-block"}]},"recordLiteral":{"patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"self-literal":{"patterns":[{"match":"(\\bself\\b)\\s*(.)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()","captures":{"1":{"name":"variable.language.this.ballerina"},"2":{"name":"punctuation.accessor.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"name":"variable.language.this.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))self\\b(?!\\$)"}]},"service-decl":{"name":"meta.service.declaration.ballerina","begin":"\\bservice\\b","end":"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|(?\u003c=\\})|(?\u003c=\\,)","patterns":[{"include":"#class-defn"},{"include":"#serviceName"},{"include":"#serviceOn"},{"include":"#serviceBody"},{"include":"#objectDec"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}},"serviceBody":{"patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#documentationDef"},{"include":"#decl-block"}]},"serviceName":{"patterns":[{"include":"#string"},{"name":"entity.service.path.ballerina"}]},"serviceOn":{"patterns":[{"begin":"on","end":"(?={)","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}}]},"source":{"patterns":[{"begin":"(\\bsource\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=\\,)|(?=\\;)","beginCaptures":{"1":{"name":"keyword.other.ballerina"},"2":{"name":"variable.other.readwrite.ballerina"}}}]},"statements":{"patterns":[{"include":"#stringTemplate"},{"include":"#declaration"},{"include":"#control-statement"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-semicolon"},{"include":"#string"},{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#keywords"},{"include":"#annotationAttachment"}]},"string":{"patterns":[{"name":"string.quoted.double.ballerina","begin":"\"","end":"(\")|((?:[^\\\\\\n])$)","patterns":[{"include":"#string-character-escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ballerina"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ballerina"},"2":{"name":"invalid.illegal.newline.ballerina"}}}]},"string-character-escape":{"patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"}]},"stringTemplate":{"patterns":[{"name":"string.template.ballerina","begin":"((string)|([_$[:alpha:]][_$[:alnum:]]*))?(`)","end":"\\\\?`","patterns":[{"include":"#template-substitution-element"},{"include":"#string-character-escape"}],"beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ballerina"},"2":{"name":"support.type.primitive.ballerina"},"4":{"name":"punctuation.definition.string.template.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.string.template.end.ballerina"}}}]},"strings":{"patterns":[{"begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"name":"string","match":"."}],"beginCaptures":{"0":{"name":"string.begin.ballerina"}},"endCaptures":{"0":{"name":"string.end.ballerina"}}}]},"template-substitution-element":{"patterns":[{"name":"meta.template.expression.ballerina","contentName":"meta.embedded.line.ballerina","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.ballerina"}}}]},"templateVariable":{"patterns":[{"begin":"\\${","end":"}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"constant.character.escape.ballerina"}},"endCaptures":{"0":{"name":"constant.character.escape.ballerina"}}}]},"ternary-expression":{"begin":"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)","end":"\\s*","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.ternary.ballerina"}},"endCaptures":{"1":{"name":"keyword.operator.ternary.ballerina"}}},"tupleType":{"patterns":[{"begin":"\\[","end":"(?=\\]|;)","patterns":[{"include":"#comment"},{"include":"#constrainType"},{"include":"#paranthesisedBracket"},{"name":"storage.type.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}]}]},"type":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numbers"},{"include":"#type-primitive"},{"include":"#type-tuple"}]},"type-annotation":{"patterns":[{"name":"meta.type.annotation.ballerina","begin":"(\\:)","end":"(?\u003c![:|\u0026])((?=$|^|[,);\\}\\]\\?\\\u003e\\=\u003e]|//)|(?==[^\u003e])|((?\u003c=[\\}\u003e\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))(\\?)?","patterns":[{"include":"#booleans"},{"include":"#stringTemplate"},{"include":"#self-literal"},{"include":"#xml"},{"include":"#call"},{"match":"\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|\\b(var)\\b|([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?","captures":{"1":{"name":"keyword.other.ballerina"},"10":{"name":"punctuation.definition.parameters.begin.ballerina"},"11":{"name":"punctuation.definition.parameters.end.ballerina"},"2":{"name":"constant.language.boolean.ballerina"},"3":{"name":"keyword.control.ballerina"},"4":{"name":"storage.type.ballerina"},"5":{"name":"support.type.primitive.ballerina"},"6":{"name":"variable.other.readwrite.ballerina"},"8":{"name":"punctuation.accessor.ballerina"},"9":{"name":"entity.name.function.ballerina"}}},{"name":"keyword.operator.optional.ballerina","match":"\\?"},{"include":"#multiType"},{"include":"#type"},{"include":"#paranthesised"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ballerina"}}}]},"type-primitive":{"patterns":[{"name":"support.type.primitive.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(string|int|boolean|float|byte|decimal|json|xml|anydata)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"type-tuple":{"name":"meta.type.tuple.ballerina","begin":"\\[","end":"\\]","patterns":[{"include":"#self-literal"},{"include":"#booleans"},{"name":"keyword.operator.rest.ballerina","match":"\\.\\.\\."},{"match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)","captures":{"1":{"name":"entity.name.label.ballerina"},"2":{"name":"keyword.operator.optional.ballerina"},"3":{"name":"punctuation.separator.label.ballerina"}}},{"include":"#identifiers"},{"include":"#type"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"meta.brace.square.ballerina"}},"endCaptures":{"0":{"name":"meta.brace.square.ballerina"}}},"typeDefinition":{"patterns":[{"begin":"(\\btype\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"\\;","patterns":[{"include":"#functionParameters"},{"include":"#functionReturns"},{"include":"#mdDocumentation"},{"include":"#record"},{"include":"#string"},{"include":"#keywords"},{"include":"#multiType"},{"include":"#type-primitive"},{"name":"variable.other.readwrite.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"},{"include":"#type-annotation"},{"include":"#typeDescription"},{"include":"#decl-block"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"},"2":{"name":"entity.name.type.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}}]},"typeDescription":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?=;)","patterns":[{"include":"#numbers"},{"include":"#decl-block"},{"include":"#type-primitive"},{"name":"storage.type.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}]}]},"types":{"patterns":[{"name":"storage.type.ballerina","match":"\\b(handle|any|future|typedesc)\\b"},{"name":"support.type.primitive.ballerina","match":"\\b(boolean|int|string|float|decimal|byte|json|xml|anydata)\\b"},{"name":"storage.type.ballerina","match":"\\b(map|error|never|readonly|distinct)\\b"},{"name":"storage.type.ballerina","match":"\\b(stream)\\b"}]},"var-expr":{"patterns":[{"name":"meta.var.expr.ballerina","begin":"(?=\\b(var))","end":"(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?=(if)\\s+))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"begin":"\\b(var)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.type.annotation.ballerina","match":"\\|"},{"name":"keyword.other.ballerina","match":"\\bin\\b"},{"include":"#comment"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#numbers"},{"include":"#multiType"},{"include":"#self-literal"},{"include":"#var-single-variable"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"},{"include":"#keywords"},{"include":"#type-tuple"}],"beginCaptures":{"0":{"name":"storage.modifier.ballerina support.type.primitive.ballerina"}}},{"include":"#punctuation-comma"},{"name":"meta.var.expr.ballerina","begin":"(?=\\b(const(?!\\s+enum\\b)))","end":"(?!\\b(const(?!\\s+enum\\b)))((?=\\bannotation\\b|;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"begin":"\\b(const(?!\\s+enum\\b))\\s+","end":"(?=\\S)","beginCaptures":{"0":{"name":"keyword.other.ballerina"}}},{"include":"#comment"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#var-single-const"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"}]},{"include":"#punctuation-comma"},{"name":"meta.var.expr.ballerina","begin":"(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"include":"#xml"},{"begin":"(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.type.annotation.ballerina","match":"\\|"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#numbers"},{"include":"#multiType"},{"include":"#var-single-variable"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"},{"include":"#keywords"},{"include":"#type-tuple"}],"beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"include":"#punctuation-comma"}]},"var-single-const":{"patterns":[{"name":"meta.var-single-variable.expr.ballerina"},{"begin":"\\b(var)\\s*","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"include":"#types"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=$|^|[;,=}]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))","beginCaptures":{"1":{"name":"meta.definition.variable.ballerina variable.other.constant.ballerina"}}}]},"var-single-variable":{"patterns":[{"name":"meta.var-single-variable.expr.ballerina","begin":"((string|int|boolean|float|byte|decimal|json|xml|anydata)|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?=\\s+|\\;|\\\u003e|\\|)","end":"(?=$|^|[;,=}])","patterns":[{"include":"#call"},{"include":"#self-literal"},{"include":"#if-statement"},{"include":"#string"},{"include":"#numbers"},{"include":"#keywords"}],"beginCaptures":{"2":{"name":"support.type.primitive.ballerina"},"3":{"name":"storage.type.ballerina"},"4":{"name":"meta.definition.variable.ballerina variable.other.readwrite.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}},{"name":"meta.var-single-variable.expr.ballerina","begin":"([_$[:alpha:]][_$[:alnum:]]*)\\s+(\\!)?","end":"(?=$|^|[;,=}]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))","beginCaptures":{"1":{"name":"meta.definition.variable.ballerina variable.other.readwrite.ballerina"},"2":{"name":"keyword.operator.definiteassignment.ballerina"}}}]},"variable-initializer":{"patterns":[{"begin":"(?\u003c!=|!)(=)(?!=|\u003e)(?=\\s*\\S)","end":"(?=$|[,);}\\]])","patterns":[{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#xml"},{"include":"#function-defn"},{"include":"#expression"},{"include":"#punctuation-accessor"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.ballerina"}}},{"begin":"(?\u003c!=|!)(=)(?!=|\u003e)","end":"(?=[,);}\\]]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))|(?=^\\s*$)|(?\u003c=\\S)(?\u003c!=)(?=\\s*$)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.ballerina"}}}]},"variableDef":{"patterns":[{"begin":"(?:(?!\\+)[_$[:alpha:]][_$[:alnum:]]*)(?: |\\t)|(?=\\()","end":"(?:[_$[:alpha:]][_$[:alnum:]]*)|(?=\\,)|(?=;)|\\.\\.\\.","patterns":[{"include":"#tupleType"},{"include":"#constrainType"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"variableDefInline":{"patterns":[{"begin":"(?=record)|(?=object)","end":"(?=;)","patterns":[{"include":"#record"},{"include":"#objectDec"}]}]},"workerBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#code"}]}]},"workerDef":{"patterns":[{"begin":"\\bworker\\b","end":"\\}","patterns":[{"include":"#functionReturns"},{"include":"#workerBody"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"xml":{"patterns":[{"name":"string.template.ballerina","begin":"(\\bxml)(\\s*)(`)","end":"`","patterns":[{"include":"#xmlTag"},{"include":"#xmlComment"},{"include":"#templateVariable"},{"name":"string","match":"."}],"beginCaptures":{"1":{"name":"support.type.primitive.ballerina"},"3":{"name":"punctuation.definition.string.template.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.string.template.end.ballerina"}}}]},"xmlComment":{"patterns":[{"name":"comment.block.xml.ballerina","begin":"\u003c!--","end":"--\u003e","beginCaptures":{"0":{"name":"comment.block.xml.ballerina"}},"endCaptures":{"0":{"name":"comment.block.xml.ballerina"}}}]},"xmlDoubleQuotedString":{"patterns":[{"begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"name":"string","match":"."}],"beginCaptures":{"0":{"name":"string.begin.ballerina"}},"endCaptures":{"0":{"name":"string.end.ballerina"}}}]},"xmlSingleQuotedString":{"patterns":[{"begin":"\\'","end":"\\'","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"name":"string","match":"."}],"beginCaptures":{"0":{"name":"string.begin.ballerina"}},"endCaptures":{"0":{"name":"string.end.ballerina"}}}]},"xmlTag":{"patterns":[{"begin":"(\u003c\\/?\\??)\\s*([-_a-zA-Z0-9]+)","end":"\\??\\/?\u003e","patterns":[{"include":"#xmlSingleQuotedString"},{"include":"#xmlDoubleQuotedString"},{"name":"keyword.other.ballerina","match":"xmlns"},{"name":"entity.other.attribute-name.xml.ballerina","match":"([a-zA-Z0-9-]+)"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.xml.ballerina"},"2":{"name":"entity.name.tag.xml.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.xml.ballerina"}}}]}}}
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"},{"include":"#regex"}]},"comment":{"patterns":[{"name":"comment.ballerina","match":"\\/\\/.*"}]},"constrainType":{"patterns":[{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#comment"},{"include":"#constrainType"},{"name":"storage.type.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}}]},"control-statement":{"patterns":[{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))","end":"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.control.flow.ballerina"}}},{"include":"#for-loop"},{"include":"#if-statement"},{"name":"keyword.control.conditional.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"decl-block":{"name":"meta.block.ballerina","begin":"\\{","end":"(?=\\} external;)|(\\})","patterns":[{"include":"#statements"},{"include":"#mdDocumentation"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"declaration":{"patterns":[{"include":"#import-declaration"},{"include":"#var-expr"},{"include":"#typeDefinition"},{"include":"#function-defn"},{"include":"#service-decl"},{"include":"#class-defn"},{"include":"#enum-decl"},{"include":"#source"},{"include":"#keywords"}]},"defaultValue":{"patterns":[{"begin":"[=:]","end":"(?=[,)])","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.operator.ballerina"}}}]},"defaultWithParentheses":{"patterns":[{"begin":"\\(","end":"\\)","beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"documentationBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"match":"(P|R|T|F|V)({{)(.*)(}})","captures":{"1":{"name":"keyword.other.ballerina.documentation"},"2":{"name":"keyword.other.ballerina.documentation"},"3":{"name":"variable.parameter.ballerina.documentation"},"4":{"name":"keyword.other.ballerina.documentation"}}},{"name":"comment.block.code.ballerina.documentation","begin":"\\```","end":"\\```"},{"name":"comment.block.code.ballerina.documentation","begin":"\\``","end":"\\``"},{"name":"comment.block.code.ballerina.documentation","begin":"\\`","end":"\\`"},{"name":"comment.block.ballerina.documentation","match":"."}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"documentationDef":{"patterns":[{"begin":"\\b(?:documentation|deprecated)\\b","end":"\\}","patterns":[{"include":"#documentationBody"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"delimiter.curly"}}}]},"enum-decl":{"name":"meta.enum.declaration.ballerina","begin":"(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"begin":"\\{","end":"\\}","patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=,|\\}|$)","patterns":[{"include":"#comment"},{"include":"#variable-initializer"}],"beginCaptures":{"0":{"name":"variable.other.enummember.ballerina"}}},{"begin":"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))","end":"(?=,|\\}|$)","patterns":[{"include":"#string"},{"include":"#array-literal"},{"include":"#comment"},{"include":"#variable-initializer"}]},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}],"beginCaptures":{"1":{"name":"storage.modifier.ballerina"},"2":{"name":"keyword.other.ballerina"},"3":{"name":"entity.name.type.enum.ballerina"}}},"errorDestructure":{"patterns":[{"begin":"error","end":"(?==\u003e)","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"expression":{"patterns":[{"include":"#keywords"},{"include":"#expressionWithoutIdentifiers"},{"include":"#identifiers"},{"include":"#regex"}]},"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"},{"include":"#regex"}]},"flags-on-off":{"name":"meta.flags.regexp.ballerina","patterns":[{"name":"constant.other.flag.regexp.ballerina","begin":"(\\??)([imsx]*)(-?)([imsx]*)(:)","end":"()","patterns":[{"include":"#regexp"},{"include":"#template-substitution-element"}],"beginCaptures":{"1":{"name":"punctuation.other.non-capturing-group-begin.regexp.ballerina"},"2":{"name":"keyword.other.non-capturing-group.flags-on.regexp.ballerina"},"3":{"name":"punctuation.other.non-capturing-group.off.regexp.ballerina"},"4":{"name":"keyword.other.non-capturing-group.flags-off.regexp.ballerina"},"5":{"name":"punctuation.other.non-capturing-group-end.regexp.ballerina"}}}]},"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"},{"include":"#regex"}],"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"},{"include":"#regex"},{"name":"punctuation.separator.parameter.ballerina","match":"\\,"}]},"functionName":{"patterns":[{"name":"keyword.other.ballerina","match":"\\bfunction\\b"},{"include":"#type-primitive"},{"include":"#self-literal"},{"include":"#string"},{"match":"\\s+(\\b(self)|\\b(is|new|isolated|null|function|in)\\b|(string|int|boolean|float|byte|decimal|json|xml|anydata)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))","captures":{"2":{"name":"variable.language.this.ballerina"},"3":{"name":"keyword.other.ballerina"},"4":{"name":"support.type.primitive.ballerina"},"5":{"name":"storage.type.ballerina"},"6":{"name":"meta.definition.function.ballerina entity.name.function.ballerina"}}}]},"functionParameters":{"name":"meta.parameters.ballerina","begin":"\\(|\\[","end":"\\)|\\]","patterns":[{"include":"#function-parameters-body"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}},"functionReturns":{"name":"meta.type.function.return.ballerina","begin":"\\s*(returns)\\s*","end":"(?==\u003e)|(\\=)|(?=\\{)|(\\))|(?=\\;)","patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numbers"},{"include":"#keywords"},{"include":"#type-primitive"},{"match":"\\s*\\b(var)(?=\\s+|\\[|\\?)","captures":{"1":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.ballerina","match":"\\|"},{"name":"keyword.operator.optional.ballerina","match":"\\?"},{"include":"#type-annotation"},{"include":"#type-tuple"},{"include":"#keywords"},{"name":"variable.other.readwrite.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"}},"endCaptures":{"1":{"name":"keyword.operator.ballerina"}}},"functionType":{"patterns":[{"begin":"\\bfunction\\b","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#comment"},{"include":"#functionTypeParamList"},{"include":"#functionTypeReturns"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"functionTypeParamList":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"name":"keyword","match":"public"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#parameterTuple"},{"include":"#functionTypeType"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"delimiter.parenthesis"}},"endCaptures":{"0":{"name":"delimiter.parenthesis"}}}]},"functionTypeReturns":{"patterns":[{"begin":"\\breturns\\b","end":"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))","patterns":[{"include":"#functionTypeReturnsParameter"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"keyword"}}}]},"functionTypeReturnsParameter":{"patterns":[{"begin":"((?=record|object|function)|(?:[_$[:alpha:]][_$[:alnum:]]*))","end":"(?=\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#defaultValue"},{"include":"#comment"},{"include":"#parameterTuple"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"functionTypeType":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))","beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"identifiers":{"patterns":[{"match":"(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((\n (function\\s*[(\u003c*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=\u003e)\n )) |\n ((\n ((\u003c\\s*$)|((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if =\u003e is on new line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with =\u003e on same line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=\u003e # arrow operator\n)\n ))\n))","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"match":"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.ballerina"},"2":{"name":"punctuation.accessor.optional.ballerina"},"3":{"name":"variable.other.property.ballerina"}}},{"include":"#type-primitive"},{"include":"#self-literal"},{"name":"keyword.control.ballerina","match":"\\b(check|foreach|if|checkpanic)\\b"},{"include":"#call"},{"name":"support.type.primitive.ballerina","match":"\\b(var)\\b"},{"match":"([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?","captures":{"1":{"name":"variable.other.readwrite.ballerina"},"3":{"name":"punctuation.accessor.ballerina"},"4":{"name":"entity.name.function.ballerina"},"5":{"name":"punctuation.definition.parameters.begin.ballerina"},"6":{"name":"punctuation.definition.parameters.end.ballerina"}}},{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#type-annotation"}]},"if-statement":{"patterns":[{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?=\\bif\\b\\s*(?!\\{))","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(if)\\s*(\\()?","end":"(\\))|(?=\\{)","patterns":[{"include":"#decl-block"},{"include":"#keywords"},{"include":"#identifiers"},{"include":"#type-primitive"},{"include":"#xml"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#comment"},{"include":"#ternary-expression"},{"include":"#expression-operators"},{"include":"#literal"},{"include":"#paranthesised"},{"include":"#regex"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.ballerina"},"2":{"name":"meta.brace.round.ballerina"}},"endCaptures":{"1":{"name":"meta.brace.round.ballerina"}}},{"begin":"(?\u003c=\\))(?=\\s|\\=)","end":"(?=\\{)","patterns":[{"include":"#literal"},{"include":"#keywords"}]},{"include":"#decl-block"}]}]},"import-clause":{"patterns":[{"include":"#comment"},{"match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*))","captures":{"1":{"name":"keyword.control.default.ballerina"},"3":{"name":"variable.other.readwrite.ballerina meta.import.module.ballerina"},"5":{"name":"keyword.control.default.ballerina"},"6":{"name":"variable.other.readwrite.alias.ballerina"}}},{"name":"variable.other.readwrite.alias.ballerina","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]},"import-declaration":{"name":"meta.import.ballerina","begin":"\\bimport\\b","end":"\\;","patterns":[{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#keywords"},{"include":"#comment"},{"include":"#import-clause"},{"include":"#punctuation-accessor"}],"beginCaptures":{"0":{"name":"keyword.control.import.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}},"keywords":{"patterns":[{"name":"keyword.control.ballerina","match":"\\b(fork|join|while|returns|transaction|transactional|retry|commit|rollback|typeof|enum|wait|match)\\b"},{"name":"keyword.control.flow.ballerina","match":"\\b(return|break|continue|check|checkpanic|panic|trap|from|where)\\b"},{"name":"keyword.other.ballerina","match":"\\b(public|private|external|return|record|object|remote|abstract|client|true|false|fail|import|version)\\b"},{"name":"keyword.other.ballerina","match":"\\b(as|on|function|resource|listener|const|final|is|null|lock|annotation|source|worker|parameter|field|isolated|in)\\b"},{"name":"keyword.other.ballerina","match":"\\b(xmlns|table|key|let|new|select|start|flush|default|do|base16|base64|conflict)\\b"},{"name":"keyword.other.ballerina","match":"\\b(limit|outer|equals|order|by|ascending|descending|class|configurable|variable|module|service|group|collect)\\b"},{"name":"meta.arrow.ballerina storage.type.function.arrow.ballerina","match":"(=\u003e)"},{"name":"keyword.operator.ballerina","match":"(!|%|\\+|\\-|~=|===|==|=|!=|!==|\u003c|\u003e|\u0026|\\||\\?:|\\.\\.\\.|\u003c=|\u003e=|\u0026\u0026|\\|\\||~|\u003e\u003e|\u003e\u003e\u003e)"},{"include":"#types"},{"include":"#self-literal"},{"include":"#type-primitive"}]},"literal":{"patterns":[{"include":"#booleans"},{"include":"#numbers"},{"include":"#strings"},{"include":"#maps"},{"include":"#self-literal"},{"include":"#array-literal"}]},"maps":{"patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}]}]},"matchBindingPattern":{"patterns":[{"begin":"var","end":"(?==\u003e)|,","patterns":[{"include":"#errorDestructure"},{"include":"#code"},{"name":"variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"matchStatement":{"patterns":[{"begin":"\\bmatch\\b","end":"\\}","patterns":[{"include":"#matchStatementBody"},{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.control.ballerina"}}}]},"matchStatementBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#literal"},{"include":"#matchBindingPattern"},{"include":"#matchStatementPatternClause"},{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina.documentation"}}}]},"matchStatementPatternClause":{"patterns":[{"begin":"=\u003e","end":"((\\})|;|,)","patterns":[{"include":"#callableUnitBody"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}}]},"mdDocumentation":{"name":"comment.mddocs.ballerina","begin":"\\#","end":"[\\r\\n]+","patterns":[{"include":"#mdDocumentationReturnParamDescription"},{"include":"#mdDocumentationParamDescription"}]},"mdDocumentationParamDescription":{"patterns":[{"begin":"(\\+\\s+)(\\'?[_$[:alpha:]][_$[:alnum:]]*)(\\s*\\-\\s+)","end":"(?=[^#\\r\\n]|(?:# *?\\+))","patterns":[{"name":"comment.mddocs.paramdesc.ballerina","match":"#.*"}],"beginCaptures":{"1":{"name":"keyword.operator.ballerina"},"2":{"name":"variable.other.readwrite.ballerina"},"3":{"name":"keyword.operator.ballerina"}}}]},"mdDocumentationReturnParamDescription":{"patterns":[{"begin":"(#)(?: *?)(\\+)(?: *)(return)(?: *)(-)?(.*)","end":"(?=[^#\\r\\n]|(?:# *?\\+))","patterns":[{"name":"comment.mddocs.returnparamdesc.ballerina","match":"#.*"}],"beginCaptures":{"1":{"name":"comment.mddocs.ballerina"},"2":{"name":"keyword.ballerina"},"3":{"name":"keyword.ballerina"},"4":{"name":"keyword.ballerina"},"5":{"name":"comment.mddocs.returnparamdesc.ballerina"}}}]},"multiType":{"patterns":[{"name":"storage.type.ballerina","match":"(?\u003c=\\|)([_$[:alpha:]][_$[:alnum:]]*)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)"},{"name":"keyword.operator.ballerina","match":"\\|"}]},"numbers":{"patterns":[{"name":"constant.numeric.decimal.ballerina","match":"\\b0[xX][\\da-fA-F]+\\b|\\b\\d+(?:\\.(?:\\d+|$))?"}]},"object-literal":{"name":"meta.objectliteral.ballerina","begin":"\\{","end":"\\}","patterns":[{"include":"#object-member"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}},"object-member":{"patterns":[{"include":"#comment"},{"include":"#function-defn"},{"include":"#literal"},{"include":"#keywords"},{"include":"#expression"},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?=\\[)","end":"(?=:)|((?\u003c=[\\]])(?=\\s*[\\(\\\u003c]))","patterns":[{"include":"#comment"}]},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?=[\\'\\\"\\`])","end":"(?=:)|((?\u003c=[\\'\\\"\\`])(?=((\\s*[\\(\\\u003c,}])|(\\n*})|(\\s+(as)\\s+))))","patterns":[{"include":"#comment"},{"include":"#string"}]},{"name":"meta.object.member.ballerina meta.object-literal.key.ballerina","begin":"(?x)(?=(\\b(?\u003c!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))","end":"(?=:)|(?=\\s*([\\(\\\u003c,}])|(\\s+as\\s+))","patterns":[{"include":"#comment"},{"include":"#numbers"}]},{"name":"meta.method.declaration.ballerina","begin":"(?\u003c=[\\]\\'\\\"\\`])(?=\\s*[\\(\\\u003c])","end":"(?=\\}|;|,)|(?\u003c=\\})","patterns":[{"include":"#function-body"}]},{"name":"meta.object.member.ballerina","match":"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)","captures":{"0":{"name":"meta.object-literal.key.ballerina"},"1":{"name":"constant.numeric.decimal.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((\n (function\\s*[(\u003c*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=\u003e)\n )) |\n ((\n ((\u003c\\s*$)|((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if =\u003e is on new line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with =\u003e on same line\n(\n (\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\\\u003e)*\u003e\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^\u003c\u003e\\(\\)\\{\\}]|\\\u003c([^\u003c\u003e]|\\\u003c([^\u003c\u003e]|\\\u003c[^\u003c\u003e]+\\\u003e)+\\\u003e)+\\\u003e|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=\u003e # arrow operator\n)\n ))\n)))","captures":{"0":{"name":"meta.object-literal.key.ballerina"},"1":{"name":"entity.name.function.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)","captures":{"0":{"name":"meta.object-literal.key.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"\\.\\.\\.","end":"(?=,|\\})","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.spread.ballerina"}}},{"name":"meta.object.member.ballerina","match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)","captures":{"1":{"name":"variable.other.readwrite.ballerina"}}},{"name":"meta.object.member.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+(const)(?=\\s*([,}]|$))","captures":{"1":{"name":"keyword.control.as.ballerina"},"2":{"name":"storage.modifier.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+","end":"(?=[;),}\\]:?\\-\\+\\\u003e]|\\|\\||\\\u0026\\\u0026|\\!\\=\\=|$|^|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(as)\\s+))","beginCaptures":{"1":{"name":"keyword.control.as.ballerina"}}},{"name":"meta.object.member.ballerina","begin":"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)","end":"(?=,|\\}|$|\\/\\/|\\/\\*)","patterns":[{"include":"#expression"}]}]},"objectDec":{"patterns":[{"begin":"\\bobject\\b(?!:)","end":"(?\u003c=\\})","patterns":[{"include":"#decl-block"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}}]},"objectInitBody":{"patterns":[{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"objectInitParameters":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#code"},{"name":"variable.parameter.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ballerina"}}}]},"objectMemberFunctionDec":{"patterns":[{"begin":"\\bfunction\\b","end":";","patterns":[{"include":"#functionParameters"},{"name":"keyword.ballerina","match":"\\breturns\\b"},{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.block.ballerina"}}}]},"parameter":{"patterns":[{"begin":"((?=record|object|function)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)|(?:[_$[:alpha:]][_$[:alnum:]]*))","end":"(?:\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])","patterns":[{"include":"#parameterWithDescriptor"},{"include":"#record"},{"include":"#objectDec"},{"include":"#functionType"},{"include":"#constrainType"},{"include":"#defaultValue"},{"include":"#comment"},{"include":"#parameterTuple"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}],"beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"parameter-name":{"patterns":[{"match":"\\s*\\b(var)\\s+","captures":{"1":{"name":"support.type.primitive.ballerina"}}},{"match":"(?x)(?:(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+)?(?:(\\.\\.\\.)\\s*)?(?\u003c!=|:)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(this)|(string|int|boolean|float|byte|decimal|json|xml|anydata)|\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)","captures":{"10":{"name":"keyword.operator.optional.ballerina"},"2":{"name":"keyword.operator.rest.ballerina"},"3":{"name":"support.type.primitive.ballerina"},"4":{"name":"keyword.other.ballerina"},"5":{"name":"constant.language.boolean.ballerina"},"6":{"name":"keyword.control.flow.ballerina"},"7":{"name":"storage.type.ballerina"},"8":{"name":"variable.parameter.ballerina"},"9":{"name":"variable.parameter.ballerina"}}}]},"parameterTuple":{"patterns":[{"begin":"\\[","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))","patterns":[{"include":"#record"},{"include":"#objectDec"},{"include":"#parameterTupleType"},{"include":"#parameterTupleEnd"},{"include":"#comment"}]}]},"parameterTupleEnd":{"patterns":[{"begin":"\\]","end":"(?=\\,)|(?=\\|)|(?=\\:)|(?==\u003e)|(?=\\))","patterns":[{"include":"#defaultWithParentheses"},{"name":"default.variable.parameter.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}]}]},"parameterTupleType":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?:\\,)|(?:\\|)|(?=\\])","beginCaptures":{"0":{"name":"storage.type.ballerina"}}}]},"parameterWithDescriptor":{"patterns":[{"begin":"\\\u0026","end":"(?=\\,)|(?=\\|)|(?=\\))","patterns":[{"include":"#parameter"}],"beginCaptures":{"0":{"name":"keyword.operator.ballerina"}}}]},"parameters":{"patterns":[{"name":"keyword.control.flow.ballerina","match":"\\s*(return|break|continue|check|checkpanic|panic|trap|from|where)\\b"},{"name":"keyword.other.ballerina","match":"\\s*(let|select)\\b"},{"name":"punctuation.separator.parameter.ballerina","match":"\\,"}]},"paranthesised":{"name":"meta.brace.round.block.ballerina","begin":"\\(","end":"\\)","patterns":[{"include":"#self-literal"},{"include":"#function-defn"},{"include":"#decl-block"},{"include":"#comment"},{"include":"#string"},{"include":"#parameters"},{"include":"#annotationAttachment"},{"include":"#recordLiteral"},{"include":"#stringTemplate"},{"include":"#parameter-name"},{"include":"#variable-initializer"},{"include":"#expression"},{"include":"#regex"}],"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"}}}]},"regex":{"patterns":[{"name":"regexp.template.ballerina","begin":"(\\bre)(\\s*)(`)","end":"`","patterns":[{"include":"#template-substitution-element"},{"include":"#regexp"}],"beginCaptures":{"1":{"name":"support.type.primitive.ballerina"},"3":{"name":"punctuation.definition.regexp.template.begin.ballerina"}},"endCaptures":{"1":{"name":"punctuation.definition.regexp.template.end.ballerina"}}}]},"regex-character-class":{"patterns":[{"name":"keyword.other.character-class.regexp.ballerina","match":"\\\\[wWsSdDtrn]|\\."},{"name":"constant.character.escape.backslash.regexp","match":"\\\\[^pPu]"}]},"regex-unicode-properties-general-category":{"patterns":[{"name":"constant.other.unicode-property-general-category.regexp.ballerina","match":"(Lu|Ll|Lt|Lm|Lo|L|Mn|Mc|Me|M|Nd|Nl|No|N|Pc|Pd|Ps|Pe|Pi|Pf|Po|P|Sm|Sc|Sk|So|S|Zs|Zl|Zp|Z|Cf|Cc|Cn|Co|C)"}]},"regex-unicode-property-key":{"patterns":[{"name":"keyword.other.unicode-property-key.regexp.ballerina","begin":"(sc=|gc=)","end":"()","patterns":[{"include":"#regex-unicode-properties-general-category"}],"beginCaptures":{"1":{"name":"keyword.other.unicode-property-key.regexp.ballerina"}},"endCaptures":{"1":{"name":"punctuation.other.unicode-property.end.regexp.ballerina"}}}]},"regexp":{"patterns":[{"name":"keyword.control.assertion.regexp.ballerina","match":"\\^|\\$"},{"name":"keyword.operator.quantifier.regexp.ballerina","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp.ballerina","match":"\\|"},{"name":"meta.group.assertion.regexp.ballerina","begin":"(\\()","end":"(\\))","patterns":[{"include":"#template-substitution-element"},{"include":"#regexp"},{"include":"#flags-on-off"},{"include":"#unicode-property-escape"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp.ballerina"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp.ballerina"}}},{"name":"constant.other.character-class.set.regexp.ballerina","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp.ballerina","match":"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\[^pPu]))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\[^pPu]))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.escape.backslash.regexp"},"3":{"name":"constant.character.numeric.regexp"},"4":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"},{"include":"#unicode-values"},{"include":"#unicode-property-escape"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.start.regexp.ballerina"},"2":{"name":"keyword.operator.negation.regexp.ballerina"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.end.regexp.ballerina"}}},{"include":"#template-substitution-element"},{"include":"#regex-character-class"},{"include":"#unicode-values"},{"include":"#unicode-property-escape"}]},"self-literal":{"patterns":[{"match":"(\\bself\\b)\\s*(.)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()","captures":{"1":{"name":"variable.language.this.ballerina"},"2":{"name":"punctuation.accessor.ballerina"},"3":{"name":"entity.name.function.ballerina"}}},{"name":"variable.language.this.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))self\\b(?!\\$)"}]},"service-decl":{"name":"meta.service.declaration.ballerina","begin":"\\bservice\\b","end":"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|(?\u003c=\\})|(?\u003c=\\,)","patterns":[{"include":"#class-defn"},{"include":"#serviceName"},{"include":"#serviceOn"},{"include":"#serviceBody"},{"include":"#objectDec"}],"beginCaptures":{"0":{"name":"keyword.ballerina"}}},"serviceBody":{"patterns":[{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#documentationDef"},{"include":"#decl-block"}]},"serviceName":{"patterns":[{"include":"#string"},{"name":"entity.service.path.ballerina","match":"(\\/([_$[:alpha:]][_$[:alnum:]]*)|\\\"[_$[:alpha:]][_$[:alnum:]]*\\\")"}]},"serviceOn":{"patterns":[{"begin":"on","end":"(?={)","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"keyword.other.ballerina"}}}]},"source":{"patterns":[{"begin":"(\\bsource\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=\\,)|(?=\\;)","beginCaptures":{"1":{"name":"keyword.other.ballerina"},"2":{"name":"variable.other.readwrite.ballerina"}}}]},"statements":{"patterns":[{"include":"#stringTemplate"},{"include":"#declaration"},{"include":"#control-statement"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-semicolon"},{"include":"#string"},{"include":"#comment"},{"include":"#mdDocumentation"},{"include":"#keywords"},{"include":"#annotationAttachment"},{"include":"#regex"}]},"string":{"patterns":[{"name":"string.quoted.double.ballerina","begin":"\"","end":"(\")|((?:[^\\\\\\n])$)","patterns":[{"include":"#string-character-escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ballerina"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ballerina"},"2":{"name":"invalid.illegal.newline.ballerina"}}}]},"string-character-escape":{"patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"}]},"stringTemplate":{"patterns":[{"name":"string.template.ballerina","begin":"((string)|([_$[:alpha:]][_$[:alnum:]]*))?(`)","end":"\\\\?`","patterns":[{"include":"#template-substitution-element"},{"include":"#string-character-escape"}],"beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ballerina"},"2":{"name":"support.type.primitive.ballerina"},"4":{"name":"punctuation.definition.string.template.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.string.template.end.ballerina"}}}]},"strings":{"patterns":[{"begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.ballerina","match":"\\\\."},{"name":"string","match":"."}],"beginCaptures":{"0":{"name":"string.begin.ballerina"}},"endCaptures":{"0":{"name":"string.end.ballerina"}}}]},"template-substitution-element":{"patterns":[{"name":"meta.template.expression.ballerina","contentName":"meta.embedded.line.ballerina","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.ballerina"}},"endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.ballerina"}}}]},"templateVariable":{"patterns":[{"begin":"\\${","end":"}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"constant.character.escape.ballerina"}},"endCaptures":{"0":{"name":"constant.character.escape.ballerina"}}}]},"ternary-expression":{"begin":"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)","end":"\\s*","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.ternary.ballerina"}},"endCaptures":{"1":{"name":"keyword.operator.ternary.ballerina"}}},"tupleType":{"patterns":[{"begin":"\\[","end":"(?=\\]|;)","patterns":[{"include":"#comment"},{"include":"#constrainType"},{"include":"#paranthesisedBracket"},{"name":"storage.type.ballerina","match":"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}]}]},"type":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numbers"},{"include":"#type-primitive"},{"include":"#type-tuple"}]},"type-annotation":{"patterns":[{"name":"meta.type.annotation.ballerina","begin":"(\\:)","end":"(?\u003c![:|\u0026])((?=$|^|[,);\\}\\]\\?\\\u003e\\=\u003e]|//)|(?==[^\u003e])|((?\u003c=[\\}\u003e\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))(\\?)?","patterns":[{"include":"#booleans"},{"include":"#stringTemplate"},{"include":"#regex"},{"include":"#self-literal"},{"include":"#xml"},{"include":"#call"},{"match":"\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|\\b(var)\\b|([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?","captures":{"1":{"name":"keyword.other.ballerina"},"10":{"name":"punctuation.definition.parameters.begin.ballerina"},"11":{"name":"punctuation.definition.parameters.end.ballerina"},"2":{"name":"constant.language.boolean.ballerina"},"3":{"name":"keyword.control.ballerina"},"4":{"name":"storage.type.ballerina"},"5":{"name":"support.type.primitive.ballerina"},"6":{"name":"variable.other.readwrite.ballerina"},"8":{"name":"punctuation.accessor.ballerina"},"9":{"name":"entity.name.function.ballerina"}}},{"name":"keyword.operator.optional.ballerina","match":"\\?"},{"include":"#multiType"},{"include":"#type"},{"include":"#paranthesised"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ballerina"}}}]},"type-primitive":{"patterns":[{"name":"support.type.primitive.ballerina","match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(string|int|boolean|float|byte|decimal|json|xml|anydata)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"type-tuple":{"name":"meta.type.tuple.ballerina","begin":"\\[","end":"\\]","patterns":[{"include":"#self-literal"},{"include":"#booleans"},{"name":"keyword.operator.rest.ballerina","match":"\\.\\.\\."},{"match":"(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)","captures":{"1":{"name":"entity.name.label.ballerina"},"2":{"name":"keyword.operator.optional.ballerina"},"3":{"name":"punctuation.separator.label.ballerina"}}},{"include":"#identifiers"},{"include":"#type"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"meta.brace.square.ballerina"}},"endCaptures":{"0":{"name":"meta.brace.square.ballerina"}}},"typeDefinition":{"patterns":[{"begin":"(\\btype\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)","end":"\\;","patterns":[{"include":"#functionParameters"},{"include":"#functionReturns"},{"include":"#mdDocumentation"},{"include":"#record"},{"include":"#string"},{"include":"#keywords"},{"include":"#multiType"},{"include":"#type-primitive"},{"name":"variable.other.readwrite.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"},{"include":"#type-annotation"},{"include":"#typeDescription"},{"include":"#decl-block"}],"beginCaptures":{"1":{"name":"keyword.other.ballerina"},"2":{"name":"entity.name.type.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}}]},"typeDescription":{"patterns":[{"begin":"[_$[:alpha:]][_$[:alnum:]]*","end":"(?=;)","patterns":[{"include":"#numbers"},{"include":"#decl-block"},{"include":"#type-primitive"},{"name":"storage.type.ballerina","match":"[_$[:alpha:]][_$[:alnum:]]*"}]}]},"types":{"patterns":[{"name":"storage.type.ballerina","match":"\\b(handle|any|future|typedesc)\\b"},{"name":"support.type.primitive.ballerina","match":"\\b(boolean|int|string|float|decimal|byte|json|xml|anydata)\\b"},{"name":"storage.type.ballerina","match":"\\b(map|error|never|readonly|distinct)\\b"},{"name":"storage.type.ballerina","match":"\\b(stream)\\b"}]},"unicode-property-escape":{"patterns":[{"name":"keyword.other.unicode-property.regexp.ballerina","begin":"(\\\\p|\\\\P)(\\{)","end":"(\\})","patterns":[{"include":"#regex-unicode-properties-general-category"},{"include":"#regex-unicode-property-key"}],"beginCaptures":{"1":{"name":"keyword.other.unicode-property.regexp.ballerina"},"2":{"name":"punctuation.other.unicode-property.begin.regexp.ballerina"}},"endCaptures":{"1":{"name":"punctuation.other.unicode-property.end.regexp.ballerina"}}}]},"unicode-values":{"patterns":[{"name":"keyword.other.unicode-value.ballerina","begin":"(\\\\u)(\\{)","end":"(\\})","patterns":[{"name":"constant.other.unicode-value.regexp.ballerina","match":"([0-9A-Fa-f]{1,6})"}],"beginCaptures":{"1":{"name":"keyword.other.unicode-value.regexp.ballerina"},"2":{"name":"punctuation.other.unicode-value.begin.regexp.ballerina"}},"endCaptures":{"1":{"name":"punctuation.other.unicode-value.end.regexp.ballerina"}}}]},"var-expr":{"patterns":[{"name":"meta.var.expr.ballerina","begin":"(?=\\b(var))","end":"(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?=(if)\\s+))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"begin":"\\b(var)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.type.annotation.ballerina","match":"\\|"},{"name":"keyword.other.ballerina","match":"\\bin\\b"},{"include":"#comment"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#numbers"},{"include":"#multiType"},{"include":"#self-literal"},{"include":"#var-single-variable"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"},{"include":"#keywords"},{"include":"#type-tuple"},{"include":"#regex"}],"beginCaptures":{"0":{"name":"storage.modifier.ballerina support.type.primitive.ballerina"}}},{"include":"#punctuation-comma"},{"name":"meta.var.expr.ballerina","begin":"(?=\\b(const(?!\\s+enum\\b)))","end":"(?!\\b(const(?!\\s+enum\\b)))((?=\\bannotation\\b|;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"begin":"\\b(const(?!\\s+enum\\b))\\s+","end":"(?=\\S)","beginCaptures":{"0":{"name":"keyword.other.ballerina"}}},{"include":"#comment"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#var-single-const"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"}]},{"include":"#punctuation-comma"},{"name":"meta.var.expr.ballerina","begin":"(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?\u003c!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))","patterns":[{"include":"#xml"},{"begin":"(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\s+|\\[|\\?|\\||\\:)","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"name":"keyword.operator.type.annotation.ballerina","match":"\\|"},{"include":"#string"},{"include":"#stringTemplate"},{"include":"#numbers"},{"include":"#multiType"},{"include":"#var-single-variable"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"},{"include":"#type-annotation"},{"include":"#keywords"},{"include":"#type-tuple"},{"include":"#regex"}],"beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"include":"#punctuation-comma"}]},"var-single-const":{"patterns":[{"name":"meta.var-single-variable.expr.ballerina"},{"begin":"\\b(var)\\s*","end":"(?=\\S)","beginCaptures":{"0":{"name":"support.type.primitive.ballerina"}}},{"include":"#types"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)","end":"(?=$|^|[;,=}]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))","beginCaptures":{"1":{"name":"meta.definition.variable.ballerina variable.other.constant.ballerina"}}}]},"var-single-variable":{"patterns":[{"name":"meta.var-single-variable.expr.ballerina","begin":"((string|int|boolean|float|byte|decimal|json|xml|anydata)|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?=\\s+|\\;|\\\u003e|\\|)","end":"(?=$|^|[;,=}])","patterns":[{"include":"#call"},{"include":"#self-literal"},{"include":"#if-statement"},{"include":"#string"},{"include":"#numbers"},{"include":"#keywords"}],"beginCaptures":{"2":{"name":"support.type.primitive.ballerina"},"3":{"name":"storage.type.ballerina"},"4":{"name":"meta.definition.variable.ballerina variable.other.readwrite.ballerina"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.ballerina"}}},{"name":"meta.var-single-variable.expr.ballerina","begin":"([_$[:alpha:]][_$[:alnum:]]*)\\s+(\\!)?","end":"(?=$|^|[;,=}]|((?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))\\s+))","beginCaptures":{"1":{"name":"meta.definition.variable.ballerina variable.other.readwrite.ballerina"},"2":{"name":"keyword.operator.definiteassignment.ballerina"}}}]},"variable-initializer":{"patterns":[{"begin":"(?\u003c!=|!)(=)(?!=|\u003e)(?=\\s*\\S)","end":"(?=$|[,);}\\]])","patterns":[{"name":"variable.other.property.ballerina","match":"(\\')([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#xml"},{"include":"#function-defn"},{"include":"#expression"},{"include":"#punctuation-accessor"},{"include":"#regex"}],"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":"Bicep","scopeName":"source.bicep","patterns":[{"include":"#expression"},{"include":"#comments"}],"repository":{"array-literal":{"name":"meta.array-literal.bicep","begin":"\\[(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\bfor\\b)","end":"]","patterns":[{"include":"#expression"},{"include":"#comments"}]},"block-comment":{"name":"comment.block.bicep","begin":"/\\*","end":"\\*/"},"comments":{"patterns":[{"include":"#line-comment"},{"include":"#block-comment"}]},"decorator":{"name":"meta.decorator.bicep","begin":"@(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(?=\\b[_$[:alpha:]][_$[:alnum:]]*\\b)","patterns":[{"include":"#expression"},{"include":"#comments"}]},"directive":{"name":"meta.directive.bicep","begin":"#\\b[_a-zA-Z-0-9]+\\b","end":"$","patterns":[{"include":"#directive-variable"},{"include":"#comments"}]},"directive-variable":{"name":"keyword.control.declaration.bicep","match":"\\b[_a-zA-Z-0-9]+\\b"},"escape-character":{"name":"constant.character.escape.bicep","match":"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)"},"expression":{"patterns":[{"include":"#string-literal"},{"include":"#string-verbatim"},{"include":"#numeric-literal"},{"include":"#named-literal"},{"include":"#object-literal"},{"include":"#array-literal"},{"include":"#keyword"},{"include":"#identifier"},{"include":"#function-call"},{"include":"#decorator"},{"include":"#lambda-start"},{"include":"#directive"}]},"function-call":{"name":"meta.function-call.bicep","begin":"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"entity.name.function.bicep"}}},"identifier":{"name":"variable.other.readwrite.bicep","match":"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\()"},"keyword":{"name":"keyword.control.declaration.bicep","match":"\\b(metadata|targetScope|resource|module|param|var|output|for|in|if|existing|import|as|type|with|using|func)\\b"},"lambda-start":{"name":"meta.lambda-start.bicep","begin":"(\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(,(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)*\\)|\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\)|(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=\u003e)","end":"(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=\u003e","beginCaptures":{"1":{"name":"meta.undefined.bicep","patterns":[{"include":"#identifier"},{"include":"#comments"}]}}},"line-comment":{"name":"comment.line.double-slash.bicep","match":"//.*(?=$)"},"named-literal":{"name":"constant.language.bicep","match":"\\b(true|false|null)\\b"},"numeric-literal":{"name":"constant.numeric.bicep","match":"[0-9]+"},"object-literal":{"name":"meta.object-literal.bicep","begin":"{","end":"}","patterns":[{"include":"#object-property-key"},{"include":"#expression"},{"include":"#comments"}]},"object-property-key":{"name":"variable.other.property.bicep","match":"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*:)"},"string-literal":{"name":"string.quoted.single.bicep","begin":"'(?!'')","end":"'","patterns":[{"include":"#escape-character"},{"include":"#string-literal-subst"}]},"string-literal-subst":{"name":"meta.string-literal-subst.bicep","begin":"(?\u003c!\\\\)(\\${)","end":"(})","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.bicep"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bicep"}}},"string-verbatim":{"name":"string.quoted.multi.bicep","begin":"'''","end":"'''"}}}
1
+ {"name":"Bicep","scopeName":"source.bicep","patterns":[{"include":"#expression"},{"include":"#comments"}],"repository":{"array-literal":{"name":"meta.array-literal.bicep","begin":"\\[(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\bfor\\b)","end":"]","patterns":[{"include":"#expression"},{"include":"#comments"}]},"block-comment":{"name":"comment.block.bicep","begin":"/\\*","end":"\\*/"},"comments":{"patterns":[{"include":"#line-comment"},{"include":"#block-comment"}]},"decorator":{"name":"meta.decorator.bicep","begin":"@(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(?=\\b[_$[:alpha:]][_$[:alnum:]]*\\b)","patterns":[{"include":"#expression"},{"include":"#comments"}]},"directive":{"name":"meta.directive.bicep","begin":"#\\b[_a-zA-Z-0-9]+\\b","end":"$","patterns":[{"include":"#directive-variable"},{"include":"#comments"}]},"directive-variable":{"name":"keyword.control.declaration.bicep","match":"\\b[_a-zA-Z-0-9]+\\b"},"escape-character":{"name":"constant.character.escape.bicep","match":"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)"},"expression":{"patterns":[{"include":"#string-literal"},{"include":"#string-verbatim"},{"include":"#numeric-literal"},{"include":"#named-literal"},{"include":"#object-literal"},{"include":"#array-literal"},{"include":"#keyword"},{"include":"#identifier"},{"include":"#function-call"},{"include":"#decorator"},{"include":"#lambda-start"},{"include":"#directive"}]},"function-call":{"name":"meta.function-call.bicep","begin":"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"entity.name.function.bicep"}}},"identifier":{"name":"variable.other.readwrite.bicep","match":"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\()"},"keyword":{"name":"keyword.control.declaration.bicep","match":"\\b(metadata|targetScope|resource|module|param|var|output|for|in|if|existing|import|as|type|with|using|func|assert|provider)\\b"},"lambda-start":{"name":"meta.lambda-start.bicep","begin":"(\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(,(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)*\\)|\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\)|(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=\u003e)","end":"(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=\u003e","beginCaptures":{"1":{"name":"meta.undefined.bicep","patterns":[{"include":"#identifier"},{"include":"#comments"}]}}},"line-comment":{"name":"comment.line.double-slash.bicep","match":"//.*(?=$)"},"named-literal":{"name":"constant.language.bicep","match":"\\b(true|false|null)\\b"},"numeric-literal":{"name":"constant.numeric.bicep","match":"[0-9]+"},"object-literal":{"name":"meta.object-literal.bicep","begin":"{","end":"}","patterns":[{"include":"#object-property-key"},{"include":"#expression"},{"include":"#comments"}]},"object-property-key":{"name":"variable.other.property.bicep","match":"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*:)"},"string-literal":{"name":"string.quoted.single.bicep","begin":"'(?!'')","end":"'","patterns":[{"include":"#escape-character"},{"include":"#string-literal-subst"}]},"string-literal-subst":{"name":"meta.string-literal-subst.bicep","begin":"(?\u003c!\\\\)(\\${)","end":"(})","patterns":[{"include":"#expression"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.bicep"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bicep"}}},"string-verbatim":{"name":"string.quoted.multi.bicep","begin":"'''","end":"'''"}}}
@@ -1 +1 @@
1
- {"name":"CDS","scopeName":"source.cds","patterns":[{"begin":"\\b(aspect|(abstract\\s+)?entity)\\b","end":"(?\u003c=})(;)?|(;)","patterns":[{"begin":":","end":"(?={|;)","patterns":[{"include":"#identifiers"},{"name":"punctuation.separator.object.cds","match":","}],"beginCaptures":{"0":{"name":"keyword.operator.cds"}}},{"include":"#bracedElementDef"},{"include":"#keywords"},{"include":"#identifiers"}],"beginCaptures":{"1":{"name":"keyword.strong.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"},"2":{"name":"punctuation.terminator.statement.cds"}}},{"begin":"(?i)\\b(extend)\\s+((context|service|aspect|entity|projection|type)\\s+)?(\\S+)(\\s+(with)(\\s+(actions|definitions|columns|elements|enum))?|(?=\\s*{))","end":"(?\u003c=})(;)?|(;)","patterns":[{"include":"#bracedElementDef"},{"include":"#keywords"},{"include":"#identifiers"},{"name":"punctuation.separator.object.cds","match":","}],"beginCaptures":{"1":{"name":"keyword.strong.cds"},"3":{"name":"keyword.cds"},"4":{"name":"identifier.cds"},"6":{"name":"keyword.cds"},"8":{"name":"keyword.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"},"2":{"name":"punctuation.terminator.statement.cds"}}},{"match":"(?\u003c!\\.)\\b(annotate)\\b\\s*[\\w.]+\\b\\s*\\b(with)?\\b","captures":{"1":{"name":"keyword.strong.control.import.cds"},"2":{"name":"keyword.strong.control.import.cds"}}},{"name":"meta.import.cds","begin":"(?\u003c!\\.)\\b(import|using)(?!\\s*:)\\b","end":"(;)|\\n","patterns":[{"begin":"{","end":"}","patterns":[{"match":"(?:\\b(default)\\b|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\\s*(\\bas\\b)\\s*(?:(\\bdefault\\b|\\*)|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)","captures":{"1":{"name":"variable.language.default.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.strong.cds"},"4":{"name":"invalid.illegal.cds"},"5":{"name":"variable.other.module-alias.cds"}}},{"name":"punctuation.separator.object.cds","match":","},{"include":"#comments"},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.modules.end.cds"}}},{"match":"(?:(\\*)|(?=\\D)(\\b[\\$\\.\\w]+\\b))\\s*(\\bas\\b)\\s*(?=\\D)(\\b[\\$\\.\\w]+\\b)","captures":{"1":{"name":"variable.language.import-all.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.strong.control.cds"},"4":{"name":"variable.other.module-alias.cds"}}},{"name":"variable.language.import-all.cds","match":"\\*"},{"name":"variable.language.default.cds","match":"\\b(default)\\b"},{"include":"#strings"},{"include":"#comments"},{"name":"keyword.strong.control.cds","match":"(?i)\\b(from)\\b"},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b(?=.*\\bfrom\\b)"},{"name":"punctuation.separator.object.cds","match":","}],"beginCaptures":{"1":{"name":"keyword.strong.control.import.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"}}},{"name":"meta.export.cds","match":"\\b(export)\\b\\s*\\b(default)\\b(?:\\s*)\\b((?!\\bclass\\b|\\blet\\b|\\bvar\\b|\\bconst\\b)[$_a-zA-Z][$_a-zA-Z0-9]*)?\\b","captures":{"1":{"name":"keyword.control.cds"},"2":{"name":"variable.language.default.cds"},"3":{"name":"variable.other.module.cds"}}},{"name":"meta.export.cds","begin":"(?\u003c!\\.)\\b(export)(?!\\s*:)\\b","end":"(?=;|\\bclass\\b|\\blet\\b|\\bvar\\b|\\bconst\\b|$)","patterns":[{"include":"#numbers"},{"begin":"{(?=.*\\bfrom\\b)","end":"}","patterns":[{"match":"(?:\\b(default)\\b|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\\s*(\\bas\\b)\\s*(?:\\b(default)\\b|(\\*)|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)","captures":{"1":{"name":"variable.language.default.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.control.cds"},"4":{"name":"variable.language.default.cds"},"5":{"name":"invalid.illegal.cds"},"6":{"name":"variable.other.module-alias.cds"}}},{"name":"meta.delimiter.object.comma.cds","match":","},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.modules.end.cds"}}},{"begin":"(?![\\p{L}$_]){","end":"}","patterns":[{"match":"(?:\\b(default)\\b|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\\s*(\\bas\\b)\\s*(?:\\b(default)\\b|(\\*)|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)","captures":{"1":{"name":"invalid.illegal.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.control.cds"},"4":{"name":"variable.language.default.cds"},"5":{"name":"invalid.illegal.cds"},"6":{"name":"variable.other.module-alias.cds"}}},{"name":"meta.delimiter.object.comma.cds","match":","},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.modules.end.cds"}}},{"name":"variable.language.import-all.cds","match":"\\*(?=.*\\bfrom\\b)"},{"name":"variable.language.default.cds","match":"\\b(default)\\b"},{"include":"#strings"},{"include":"#comments"},{"name":"keyword.control.cds","match":"(?i)\\b(from)\\b"},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"},{"name":"meta.delimiter.object.comma.cds","match":","},{"include":"#operators"}],"beginCaptures":{"1":{"name":"keyword.control.export.cds"}}},{"name":"meta.method.cds","begin":"\\b(?:(static)\\s+)?(?!(?:break|case|catch|continue|do|else|finally|for|if|export|import|using|package|return|switch|throw|try|while|with)[\\s\\(])([$_a-zA-Z][$_a-zA-Z0-9]*)\\s*(\\()(?=(?:[^\\(\\)]*)?\\)\\s*{)","end":"\\)","patterns":[{"include":"#function-params"}],"beginCaptures":{"1":{"name":"storage.modifier.static.cds"},"2":{"name":"entity.name.function.cds"},"3":{"name":"punctuation.definition.parameters.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.begin.cds"}}},{"name":"meta.class.cds","match":"\\b(class)(?:\\s+([$_a-zA-Z][$_a-zA-Z0-9]*))?(?:\\s+(extends)\\s+([$_a-zA-Z][$_a-zA-Z0-9]*))?\\s*($|(?={))","captures":{"1":{"name":"storage.type.class.cds"},"2":{"name":"entity.name.type.class.cds"},"3":{"name":"storage.modifier.cds"},"4":{"name":"entity.other.inherited-class.cds"}}},{"name":"storage.type.arrow.cds","match":"=\u003e"},{"name":"storage.type.var.cds","match":"(?\u003c!\\.|\\$)\\b(let|var)\\b(?!\\$)"},{"name":"storage.modifier.cds","match":"(?\u003c!\\.|\\$)\\b(get|set|const)\\b(?!\\$)"},{"name":"meta.control.yield.cds","match":"(?\u003c!\\.)\\b(yield)(?!\\s*:)\\b(?:\\s*(\\*))?","captures":{"1":{"name":"keyword.control.cds"},"2":{"name":"storage.modifier.cds"}}},{"name":"constant.language.cds","match":"\\b(false|Infinity|NaN|null|true|undefined)\\b"},{"name":"variable.language.cds","match":"(?\u003c!\\.)\\b(super|this)(?!\\s*:)\\b"},{"name":"punctuation.terminator.statement.cds","match":"\\;"},{"match":"(\\[)(\\])","captures":{"1":{"name":"punctuation.section.scope.begin.cds"},"2":{"name":"punctuation.section.scope.end.cds"}}},{"begin":"{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"name":"meta.brace.square.cds","match":"\\[|\\]"},{"name":"support.class.cds","match":"(?\u003c=new )([$_a-zA-Z][$_a-zA-Z0-9]*)(?!\\w)"},{"name":"support.class.cds","match":"(?\u003c= instanceof )([$_a-zA-Z][$_a-zA-Z0-9]*)(?!\\w)"},{"name":"support.class.cds","match":"(?\u003c!\\w)([$_a-zA-Z][$_a-zA-Z0-9]*)(?=\\.prototype\\b)"},{"name":"keyword.other.cds","match":"(?i)(?\u003c=\\.)(prototype)\\b"},{"name":"meta.function-call.cds","match":"(?\u003c!\\w)([$_a-zA-Z][$_a-zA-Z0-9]*)(?=\\()"},{"include":"#keywords"},{"include":"#numbers"},{"include":"#strings"},{"include":"#comments"},{"include":"#operators"},{"include":"#identifiers"}],"repository":{"bracedElementDef":{"begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#extendElement"},{"include":"#elementDef"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},"comments":{"patterns":[{"name":"entity.other.attribute-name","match":"@\\(?[\\w.]+\\b"},{"name":"comment.block.documentation.cds","begin":"/\\*\\*(?!/)","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cds"}}},{"name":"comment.block.cds","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cds"}}},{"name":"comment.line.double-slash.cds","match":"//.*"}]},"elementDef":{"begin":"(?=\\()|\\b(virtual(?:\\s+))?(key(?:\\s+))?(masked(?:\\s+))?(element(?:\\s+))?","end":"(?=})|(;)","patterns":[{"include":"#bracedElementDef"},{"include":"#strings"},{"include":"#comments"},{"include":"#keywords"},{"begin":"\\(","end":"\\)","patterns":[{"match":"[$_a-zA-Z][$_a-zA-Z0-9]*|\\\"[^\\\"]*(\\\"\\\"[^\\\"]*)*\\\"|!\\\\[[^\\\\]]*(\\\\]\\\\][^\\\\]]*)*\\\\]","captures":{"0":{"name":"entity.name.type.attribute-name.cds"}}},{"include":"#operators"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"begin":"([$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(\"\"[^\"]*)*\"|!\\[[^\\]]*(\\]\\][^\\]]*)*\\])(?=\\s*[:{,])","end":"(,)|(?=\\s*[:{])","beginCaptures":{"1":{"name":"entity.name.type.attribute-name.cds"}},"endCaptures":{"1":{"name":"punctuation.separator.object.cds"}}},{"match":"^\\s*([$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(\"\"[^\"]*)*\"|!\\[[^\\]]*(\\]\\][^\\]]*)*\\])\\s*$","captures":{"1":{"name":"entity.name.type.attribute-name.cds"}}},{"include":"#identifiers"},{"include":"#operators"},{"include":"#numbers"},{}],"beginCaptures":{"1":{"name":"keyword.cds"},"2":{"name":"keyword.strong.cds"},"3":{"name":"keyword.cds"},"4":{"name":"keyword.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"}}},"escapes":{"name":"constant.character.escape.cds","match":"\\\\([xu$]\\{?[0-9a-fA-F]+}?|.|$)"},"extendElement":{"begin":"\\b(?=extend\\b.*\\bwith\\b)","end":"(?\u003c=})(;)?|(;)","patterns":[{"begin":"\\bextend\\b","end":"\\bwith\\b","patterns":[{"name":"keyword.cds","match":"element(?!(?:\\s*/\\*.*\\*/\\s*|\\s+)?with\\b)"},{"name":"entity.name.type.attribute-name.cds","match":"[$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(\"\"[^\"]*)*\"|!\\[[^\\]]*(\\]\\][^\\]]*)*\\]"},{"include":"#comments"}],"beginCaptures":{"0":{"name":"keyword.strong.cds"}},"endCaptures":{"0":{"name":"keyword.cds"}}},{"begin":"{","end":"}","patterns":[{"include":"#extendElement"},{"include":"#elementDef"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"include":"#comments"},{"include":"#keywords"},{"include":"#identifiers"},{"include":"#operators"},{"name":"punctuation.section.scope.begin.cds","match":"\\("},{"name":"punctuation.section.scope.end.cds","match":"\\)"},{"include":"#numbers"}],"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"},"2":{"name":"punctuation.terminator.statement.cds"}}},"function-params":{"patterns":[{"begin":"(?=[\\p{L}$_])","end":"(?=[,)/])","patterns":[{"name":"variable.parameter.function.cds","match":"\\G[$_a-zA-Z][$_a-zA-Z0-9]*"}]},{"include":"#comments"}]},"identifiers":{"patterns":[{"name":"identifier.cds","match":"[$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(\"\"[^\"]*)*\"|!\\[[^\\]]*(\\]\\][^\\]]*)*\\]"}]},"interpolation":{"name":"meta.embedded.line.cds","contentName":"source.cds","begin":"\\${","end":"(})","patterns":[{"begin":"{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"meta.brace.curly.cds"}},"endCaptures":{"0":{"name":"meta.brace.curly.cds"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.cds"},"1":{"name":"source.cds"}}},"keywords":{"patterns":[{"name":"support.class.cds","match":"(?\u003c!\\.|\\$)\\b(Association\\s*(?:\\[[0-9.eE+, *-]*\\]\\s*)?to\\s*(?:(many|one)\\s*)?|Composition\\s*(?:\\[[0-9.eE+, *-]*\\]\\s*)?of\\s*(?:(many|one)\\s*)?|(Binary|Boolean|DateTime|Date|DecimalFloat|Decimal|Double|Int(16|32|64)|Integer64|Integer|LargeBinary|LargeString|Number|String|Timestamp|Time|UInt8|UUID)\\s*(\\([^()]*\\))?)(?!\\$|\\s*:)"},{"name":"invalid.illegal.cds","match":"(?\u003c!\\.|\\$)\\b(await)\\b(?!\\$|\\s*:)"},{"name":"invalid.deprecated.cds","match":"(?\u003c!\\.|\\$)\\b(implements|interface|package|private|protected|public)\\b(?!\\$|\\s*:)"},{"name":"invalid.illegal.cds","match":"(?\u003c!\\.|\\$)\\b(class|static|extends)\\b(?!\\$|\\s*:)"},{"name":"keyword.cds","match":"(?i)(?\u003c!\\.|\\$)\\b(all|and|any|asc|between|by|case|cast|cross|desc|distinct|element|elements|escape|except|excluding|exists|first|from|full|group|group by|having|in|inner|intersect|into|is|join|last|left|like|limit|many|minus|mixin|not null|not|null|nulls|offset|one|or|order by|outer|redirected to|select|some|top|type of|union|where|with)\\b(?!\\$|\\s*:)"},{"name":"keyword.strong.cds","match":"(?i)(?\u003c!\\.|\\$)\\b(as|key|on|type)\\b(?!\\$|\\s*:)"},{"name":"keyword.cds","match":"(?\u003c!\\.|\\$)\\b(after|always|analysis|array of|async|asynchronous|auto|both|cache|column|columns|configuration|current|cycle|day|default|depends|detection|disabled|documents|else|enabled|end|every|existing|export|extended|extract|fast|flush|fulltext|fuzzy|generated|getnumservers|hana|hash|hour|identity|import|increment|index|keeping|language|layout|leading|masked|maxvalue|merge|migration|mime|mining|minute|minutes|minvalue|mode|month|name|new|no|off|only|others|overlay|parameters|partition|partitioning|partitions|phrase|preprocess|priority|projection|projection on|queue|range|ratio|reset|returns|right|roundrobin|row|search|second|separators|start|storage|store|subtype|sync|synchronous|table|technical|temporary|text|then|token|trailing|trim|unique|unload|value|values|virtual|when|with parameters|year)\\b(?!\\$|\\s*:)"},{"name":"keyword.strong.cds","match":"(?\u003c!\\.|\\$)\\b(abstract|action|actions|annotation|aspect|context|define|entity|enum|event|expose|extend|facet|function|namespace|service|view)\\b(?!\\$|\\s*:)"}]},"numbers":{"patterns":[{"name":"constant.numeric.hex.cds","match":"(?\u003c!\\w|\\$)0[xX][[:xdigit:]]+\\b"},{"name":"constant.numeric.binary.cds","match":"(?\u003c!\\w|\\$)0[bB][01]+\\b"},{"name":"constant.numeric.octal.cds","match":"(?\u003c!\\w|\\$)0[oO][0-7]+\\b"},{"name":"constant.numeric.cds","match":"(?\u003c!\\w|\\$)[+-]?[0-9]+('.'[0-9]+)?([eE][+-]?[0-9]+)?(?!\\w)"}]},"operators":{"patterns":[{"name":"keyword.operator.assignment.compound.cds","match":"%=|\\+=|\\-=|\\*=|(?\u003c!\\()/="},{"name":"keyword.operator.assignment.compound.bitwise.cds","match":"\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|\\|="},{"name":"keyword.operator.comparison.cds","match":"!==|!=|\u003c=|\u003e=|===|==|\u003c|\u003e"},{"name":"keyword.operator.logical.cds","match":"\u0026\u0026|!|\\|\\|"},{"name":"keyword.operator.bitwise.cds","match":"\u0026|\\||\\^|~"},{"name":"keyword.cds","match":"\\:\\s*(localized)\\s+"},{"name":"keyword.operator.cds","match":"[?:]"},{"name":"keyword.operator.logical.cds","match":"!"},{"name":"keyword.operator.assignment.cds","match":"=|\\:"},{"name":"keyword.operator.decrement.cds","match":"\\-\\-"},{"name":"keyword.operator.increment.cds","match":"\\+\\+"},{"name":"keyword.operator.arithmetic.cds","match":"%|\\*|/|\\-|\\+"}]},"strings":{"patterns":[{"name":"string.quoted.single.cds","begin":"'","end":"'(?!')","patterns":[{"name":"meta.single-quote.doubled.cds","match":"''"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cds"}}},{"name":"string.quoted.other.template.cds","begin":"`","end":"`","patterns":[{"include":"#interpolation"},{"include":"#escapes"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cds"}}}]}}}
1
+ {"name":"CDS","scopeName":"source.cds","patterns":[{"begin":"\\b(aspect|(abstract\\s+)?entity|type|event)\\b","end":"(?\u003c=})(;)?|(;)","patterns":[{"include":"#atAnnoParen"},{"include":"#atAnnoNoParen"},{"begin":":","end":"(?=[{;@])","patterns":[{"include":"#identifiers"},{"name":"punctuation.separator.object.cds","match":","}],"beginCaptures":{"0":{"name":"keyword.operator.cds"}}},{"include":"#bracedElementDef"},{"include":"#keywords"},{"include":"#identifiers"}],"beginCaptures":{"1":{"name":"keyword.strong.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"},"2":{"name":"punctuation.terminator.statement.cds"}}},{"begin":"(?i)\\b(extend)\\s+((context|service|aspect|entity|projection|type)\\s+)?((?!@)\\S+)(\\s+(with)(\\s+(actions|definitions|columns|elements|enum))?|(?=\\s*{))","end":"(?\u003c=})(;)?|(;)","patterns":[{"include":"#bracedElementDef"},{"include":"#atAnnoParen"},{"include":"#atAnnoNoParen"},{"include":"#keywords"},{"include":"#identifiers"},{"name":"punctuation.separator.object.cds","match":","}],"beginCaptures":{"1":{"name":"keyword.strong.cds"},"3":{"name":"keyword.cds"},"4":{"name":"entity.name.type.cds"},"6":{"name":"keyword.cds"},"8":{"name":"keyword.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"},"2":{"name":"punctuation.terminator.statement.cds"}}},{"match":"(?\u003c!\\.)\\b(annotate)\\b\\s*([\\w.]+)\\b\\s*\\b(with)?\\b","captures":{"1":{"name":"keyword.strong.control.import.cds"},"2":{"name":"entity.name.type.cds"},"3":{"name":"keyword.strong.control.import.cds"}}},{"begin":"(?\u003c!\\.)\\b(using)(?!\\s*:)\\b","end":"(;)|\\n","patterns":[{"begin":"{","end":"}","patterns":[{"match":"(?:\\b(default)\\b|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\\s*(\\bas\\b)\\s*(?:\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)","captures":{"1":{"name":"variable.language.default.cds"},"2":{"name":"entity.name.type.cds"},"3":{"name":"keyword.strong.cds"},"4":{"name":"entity.name.type.cds"}}},{"name":"punctuation.separator.object.cds","match":","},{"include":"#comments"},{"name":"entity.name.type.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.modules.end.cds"}}},{"match":"(?:(\\*)|(?=\\D)(\\b[\\$\\.\\w]+\\b))\\s*(\\bas\\b)\\s*(?=\\D)(\\b[\\$\\.\\w]+\\b)","captures":{"1":{"name":"keyword.operator.asterisk"},"2":{"name":"entity.name.type.cds"},"3":{"name":"keyword.strong.control.cds"},"4":{"name":"entity.name.type.cds"}}},{"name":"keyword.operator.asterisk","match":"\\*"},{"name":"variable.language.default.cds","match":"\\b(default)\\b"},{"include":"#strings"},{"include":"#comments"},{"name":"keyword.strong.control.cds","match":"(?i)\\b(from)\\b"},{"name":"entity.name.type.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b(?=.*\\bfrom\\b)"},{"name":"punctuation.separator.object.cds","match":","}],"beginCaptures":{"1":{"name":"keyword.strong.control.import.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"}}},{"name":"meta.export.cds","match":"(?i)\\b(export)\\b\\s*\\b(default)\\b(?:\\s*)\\b((?!\\bclass\\b|\\blet\\b|\\bvar\\b|\\bconst\\b)[$_a-zA-Z][$_a-zA-Z0-9]*)?\\b","captures":{"1":{"name":"keyword.control.cds"},"2":{"name":"variable.language.default.cds"},"3":{"name":"variable.other.module.cds"}}},{"begin":"(?i)\\b(action|function)\\s+([$_a-zA-Z][$_a-zA-Z0-9]*)\\s*(\\()","end":"\\)","patterns":[{"include":"#function-params"}],"beginCaptures":{"1":{"name":"keyword.strong.cds"},"2":{"name":"entity.name.function.cds"},"3":{"name":"punctuation.definition.parameters.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.cds"}}},{"name":"meta.class.cds","match":"\\b(class)(?:\\s+([$_a-zA-Z][$_a-zA-Z0-9]*))?(?:\\s+(extends)\\s+([$_a-zA-Z][$_a-zA-Z0-9]*))?\\s*($|(?={))","captures":{"1":{"name":"storage.type.class.cds"},"2":{"name":"entity.name.type.class.cds"},"3":{"name":"storage.modifier.cds"},"4":{"name":"entity.other.inherited-class.cds"}}},{"name":"storage.type.arrow.cds","match":"=\u003e"},{"name":"storage.type.var.cds","match":"(?\u003c!\\.|\\$)\\b(let|var)\\b(?!\\$)"},{"name":"storage.modifier.cds","match":"(?\u003c!\\.|\\$)\\b(get|set|const)\\b(?!\\$)"},{"name":"meta.control.yield.cds","match":"(?\u003c!\\.)\\b(yield)(?!\\s*:)\\b(?:\\s*(\\*))?","captures":{"1":{"name":"keyword.control.cds"},"2":{"name":"storage.modifier.cds"}}},{"name":"constant.language.cds","match":"\\b(false|Infinity|NaN|null|true|undefined)\\b"},{"name":"variable.language.cds","match":"(?\u003c!\\.)\\b(super|this)(?!\\s*:)\\b"},{"name":"punctuation.terminator.statement.cds","match":"\\;"},{"match":"(\\[)(\\])","captures":{"1":{"name":"punctuation.section.scope.begin.cds"},"2":{"name":"punctuation.section.scope.end.cds"}}},{"begin":"{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"name":"meta.brace.square.cds","match":"\\[|\\]"},{"name":"support.class.cds","match":"(?\u003c=new )([$_a-zA-Z][$_a-zA-Z0-9]*)(?!\\w)"},{"name":"support.class.cds","match":"(?\u003c= instanceof )([$_a-zA-Z][$_a-zA-Z0-9]*)(?!\\w)"},{"name":"support.class.cds","match":"(?\u003c!\\w)([$_a-zA-Z][$_a-zA-Z0-9]*)(?=\\.prototype\\b)"},{"name":"keyword.other.cds","match":"(?i)(?\u003c=\\.)(prototype)\\b"},{"include":"#atAnnoParen"},{"include":"#atAnnoNoParen"},{"include":"#keywords"},{"include":"#numbers"},{"include":"#strings"},{"include":"#comments"},{"include":"#operators"},{"include":"#identifiers"}],"repository":{"annotationName":{"begin":"(?=[$_\"!a-zA-Z0-9])","end":"(?:(?\u003c=[$\"\\]])(?=\\s*[@:;])|(?\u003c=[_a-zA-Z0-9])\\b)(?!\\s*[#.])","patterns":[{"name":"entity.name.tag.cds","match":"[$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\]"},{"match":"\\s*(\\.)\\s*(@)?","captures":{"1":{"name":"entity.name.tag.dot.cds"},"2":{"name":"entity.name.tag.at.cds"}}},{"match":"\\s*(#)\\s*","captures":{"1":{"name":"entity.name.tag.hash.cds"}}}]},"atAnnoName":{"begin":"(@)","end":"(?:(?\u003c=[$\"\\]])(?=\\s*[@:;])|(?\u003c=[_a-zA-Z0-9])\\b)(?![#.])","patterns":[{"include":"#annotationName"}],"beginCaptures":{"1":{"name":"entity.name.tag.at.cds"}}},"atAnnoNoParen":{"begin":"(@)(?!\\s*\\()","end":"(?\u003c=[}\\]'`])(?=\\s*($|[@;]))|(?\u003c![@:])(?!\\s*:)(?=$|[\\s@,;(){}\\[\\]'`/\"!]|\\b[$_a-zA-Z])","patterns":[{"include":"#annotationName"},{"include":"#optColonAndStructure"},{"include":"#optColonAndArray"},{"include":"#colonAndNumber"},{"include":"#colonAndString"},{"include":"#colonAndTemplateString"},{"include":"#colonAndHashIdent"},{"include":"#colonAndConstant"},{"include":"#comments"}],"captures":{"1":{"name":"entity.name.tag.at.cds"}}},"atAnnoParen":{"begin":"(@)\\s*(\\()","end":"\\)","patterns":[{"include":"#annotationName"},{"include":"#optColonAndStructure"},{"include":"#optColonAndArray"},{"include":"#colonAndNumber"},{"include":"#colonAndString"},{"include":"#colonAndTemplateString"},{"include":"#colonAndHashIdent"},{"include":"#colonAndConstant"},{"name":"punctuation.separator.object.cds","match":","},{"include":"#comments"}],"beginCaptures":{"1":{"name":"entity.name.tag.at.cds"},"2":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},"bracedElementDef":{"begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#atAnnoParen"},{"include":"#atAnnoNoParen"},{"include":"#extendElement"},{"include":"#selectItemDef"},{"include":"#elementDef"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},"bracketedExpression":{"begin":"\\(","end":"\\)","patterns":[{"include":"#bracedElementDef"},{"include":"#keywords"},{"match":"(?i)(?\u003c!@|select from )(?:\\$?\\b[_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\])","captures":{"0":{"name":"entity.other.attribute-name.cds"}}},{"include":"#identifiers"},{"include":"#operators"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},"colonAndConstant":{"match":"(?i)(:)\\s*(null|true|false)\\b","patterns":[{"include":"#comments"}],"captures":{"1":{"name":"keyword.operator.colon"},"2":{"name":"constant.language.cds"}}},"colonAndHashIdent":{"match":"(:)\\s*(#)\\s*([$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\])","patterns":[{"include":"#comments"}],"captures":{"1":{"name":"keyword.operator.colon"},"2":{"name":"entity.name.tag.hash.cds"},"3":{"name":"entity.name.tag.cds"}}},"colonAndNumber":{"begin":"(:)\\s*(?=[0-9+-])","end":"(?\u003c=[[[:xdigit:]]0-9])\\b","patterns":[{"include":"#numbers"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.operator.colon"}}},"colonAndString":{"begin":"(:)\\s*(x|date|time(?:stamp)?)?\\s*(')","end":"'(?!')","patterns":[{"name":"string.quoted.single.cds meta.single-quote.doubled.cds","match":"''"},{"name":"string.quoted.single.cds","match":"."},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.operator.colon"},"2":{"name":"support.class.cds"},"3":{"name":"string.quoted.single.cds punctuation.definition.string.begin.cds"}},"endCaptures":{"0":{"name":"string.quoted.single.cds punctuation.definition.string.end.cds"}}},"colonAndTemplateString":{"begin":"(:)\\s*(?=`)","end":"(?\u003c=`)","patterns":[{"include":"#strings"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.operator.colon"}}},"comments":{"patterns":[{"name":"comment.block.documentation.cds","begin":"/\\*\\*(?!/)","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cds"}}},{"name":"comment.block.cds","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cds"}}},{"name":"comment.line.double-slash.cds","match":"//.*"}]},"elementDef":{"begin":"(?!\\s*@)(?:(?=\\()|\\b(virtual(?:\\s+))?(key(?:\\s+))?(masked(?:\\s+))?(element(?:\\s+))?)","end":"(?=})|(;)","patterns":[{"include":"#bracedElementDef"},{"include":"#strings"},{"include":"#comments"},{"include":"#atAnnoParen"},{"include":"#atAnnoNoParen"},{"include":"#keywords"},{"include":"#bracketedExpression"},{"name":"entity.other.attribute-name.cds","match":"(?\u003c!@)(?:\\$?\\b[_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\])(?=\\s*[:{,@])"},{"match":"^\\s*([$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\])\\s*$","captures":{"1":{"name":"entity.other.attribute-name.cds"}}},{"include":"#identifiers"},{"include":"#operators"},{"include":"#numbers"},{"name":"punctuation.separator.object.cds","match":","},{}],"beginCaptures":{"1":{"name":"keyword.cds"},"2":{"name":"keyword.strong.cds"},"3":{"name":"keyword.cds"},"4":{"name":"keyword.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"}}},"escapes":{"name":"constant.character.escape.cds","match":"\\\\([xu$]\\{?[0-9a-fA-F]+}?|.|$)"},"extendElement":{"begin":"\\b(?=extend\\b.*\\bwith\\b)","end":"(?\u003c=})(;)?|(;)","patterns":[{"begin":"\\bextend\\b","end":"\\bwith\\b","patterns":[{"name":"keyword.cds","match":"element(?!(?:\\s*/\\*.*\\*/\\s*|\\s+)?with\\b)"},{"name":"entity.other.attribute-name.cds","match":"(?\u003c!@)(?:\\$?\\b[_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\])"},{"include":"#comments"}],"beginCaptures":{"0":{"name":"keyword.strong.cds"}},"endCaptures":{"0":{"name":"keyword.cds"}}},{"include":"#atAnnoParen"},{"include":"#atAnnoNoParen"},{"begin":"{","end":"}","patterns":[{"include":"#extendElement"},{"include":"#elementDef"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"include":"#comments"},{"include":"#keywords"},{"include":"#identifiers"},{"include":"#operators"},{"name":"punctuation.section.scope.begin.cds","match":"\\("},{"name":"punctuation.section.scope.end.cds","match":"\\)"},{"include":"#numbers"}],"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"},"2":{"name":"punctuation.terminator.statement.cds"}}},"function-params":{"patterns":[{"name":"variable.parameter.function.cds","match":"\\$?\\b[_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\]"},{"name":"punctuation.separator.object.cds","match":","},{"include":"#comments"},{"include":"#operators"}]},"identifiers":{"patterns":[{"name":"entity.name.type.cds","match":"(?\u003c!@)(?:\\$?\\b[_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\])"}]},"keywords":{"patterns":[{"match":"(?\u003c!\\.|\\$)\\b(Association\\b\\s*(?:\\[[0-9.eE+, *-]*\\]\\s*)?to\\b\\s*(?:many\\s*|one\\s*)?|Composition\\b\\s*(?:\\[[0-9.eE+, *-]*\\]\\s*)?of\\b\\s*(?:many\\s*|one\\s*)?)(?:(?=\\s*{)|([$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\]))","captures":{"1":{"name":"support.class.cds"},"2":{"name":"entity.name.type.cds"}}},{"name":"support.class.cds","match":"(?\u003c!\\.|\\$)\\b(Binary|Boolean|DateTime|Date|DecimalFloat|Decimal|Double|Int(16|32|64)|Integer64|Integer|LargeBinary|LargeString|Number|String|Timestamp|Time|UInt8|UUID)\\b\\s*(\\([^()]*\\))?(?!\\$|\\s*:)"},{"name":"keyword.cds","match":"(?i)(?\u003c!\\.|\\$)\\b(all|and|any|asc|between|by|case|cast|cross|desc|distinct|element|elements|escape|except|excluding|exists|first|from|full|group|group by|having|in|inner|intersect|into|is|join|last|left|like|limit|many|minus|mixin|not null|not|null|nulls|offset|one|or|order by|outer|redirected to|select|some|top|type of|union|where|with)\\b(?!\\$|\\s*:)"},{"name":"keyword.strong.cds","match":"(?i)(?\u003c!\\.|\\$)\\b(as|key|on|type)\\b(?!\\$|\\s*:)"},{"name":"keyword.cds","match":"(?\u003c!\\.|\\$)\\b(array of|column|columns|current|day|default|depends|else|enabled|end|generated|hana|hour|identity|import|index|language|layout|leading|masked|merge|minute|minutes|mode|month|name|new|no|off|only|others|parameters|partition|partitions|priority|projection|projection on|queue|range|ratio|reset|returns|right|row|search|second|start|storage|store|table|technical|then|trailing|trim|unique|unload|value|values|virtual|when|with parameters|year)\\b(?!\\$|\\s*:)"},{"name":"keyword.strong.cds","match":"(?\u003c!\\.|\\$)\\b(abstract|action|actions|annotation|aspect|context|define|entity|enum|event|extend|function|namespace|service|view)\\b(?!\\$|\\s*:)"}]},"literalValue":{"patterns":[{"match":"(#)\\s*([$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\])","captures":{"1":{"name":"entity.name.tag.hash.cds"},"2":{"name":"entity.name.tag.cds"}}},{"name":"constant.language.cds","match":"(?i)\\b(?:null|true|false)\\b"},{"include":"#numbers"},{"include":"#strings"},{"match":"(?i)\\b(x|date|time(?:stamp)?)\\s*((')[^']*('))","captures":{"1":{"name":"support.class.cds"},"2":{"name":"string.quoted.single.cds"},"3":{"name":"punctuation.definition.string.begin.cds"},"4":{"name":"punctuation.definition.string.end.cds"}}},{}]},"numbers":{"patterns":[{"name":"constant.numeric.hex.cds","match":"(?\u003c!\\w|\\$)0[xX][[:xdigit:]]+\\b"},{"name":"constant.numeric.binary.cds","match":"(?\u003c!\\w|\\$)0[bB][01]+\\b"},{"name":"constant.numeric.octal.cds","match":"(?\u003c!\\w|\\$)0[oO][0-7]+\\b"},{"name":"constant.numeric.cds","match":"(?\u003c!\\w|\\$)[+-]?[0-9]+('.'[0-9]+)?([eE][+-]?[0-9]+)?(?!\\w)"}]},"operators":{"patterns":[{"name":"keyword.operator.comparison.cds","match":"!=|\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e"},{"name":"keyword.operator.concatenator.cds","match":"\\|\\|"},{"name":"keyword.operator.bitwise.cds","match":"\u0026|\\||\\^|~"},{"match":"\\:\\s*(localized)\\s+","captures":{"1":{"name":"keyword.cds"}}},{"name":"keyword.operator.cds","match":"[?:]"},{"name":"keyword.operator.logical.cds","match":"!"},{"name":"keyword.operator.assignment.cds","match":"=|\\:"},{"name":"keyword.operator.arithmetic.cds","match":"%|\\*|/|\\-|\\+"}]},"optColonAndArray":{"begin":"(:)?\\s*(\\[)","end":"\\]","patterns":[{"include":"#atAnnoNoParen"},{"include":"#annotationName"},{"match":"\\.{3}","captures":{"0":{"name":"keyword.operator.ellipsis"}}},{"match":"(?i)(up)\\s+(to)\\b","captures":{"1":{"name":"keyword.cds"},"2":{"name":"keyword.cds"}}},{"include":"#optColonAndStructure"},{"include":"#optColonAndArray"},{"include":"#literalValue"},{"name":"punctuation.separator.object.cds","match":","},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.operator.colon"},"2":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},"optColonAndStructure":{"begin":"(:)?\\s*({)","end":"}","patterns":[{"include":"#atAnnoNoParen"},{"include":"#annotationName"},{"include":"#optColonAndStructure"},{"include":"#optColonAndArray"},{"include":"#colonAndNumber"},{"include":"#colonAndString"},{"include":"#colonAndTemplateString"},{"include":"#colonAndHashIdent"},{"include":"#colonAndConstant"},{"name":"punctuation.separator.object.cds","match":","},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.operator.colon"},"2":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},"selectItemDef":{"begin":"^\\s*(?=\\*|.+\\s+as\\s+)","end":"(?=})|(,)","patterns":[{"include":"#bracedElementDef"},{"include":"#strings"},{"include":"#comments"},{"include":"#atAnnoParen"},{"include":"#atAnnoNoParen"},{"include":"#keywords"},{"include":"#bracketedExpression"},{"name":"entity.other.attribute-name.cds","match":"(?\u003c!@)(?:\\$?\\b[_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(?:\"\"[^\"]*)*\"|!\\[[^\\]]*(?:\\]\\][^\\]]*)*\\])"},{"include":"#operators"},{"include":"#numbers"},{"name":"punctuation.separator.object.cds","match":","}]},"strings":{"patterns":[{"name":"string.quoted.single.cds","begin":"'","end":"'(?!')","patterns":[{"name":"meta.single-quote.doubled.cds","match":"''"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cds"}}},{"name":"string.quoted.other.template.cds","begin":"`","end":"`(?!`)","patterns":[{"name":"string.quoted.other.template.block.cds","match":"``"},{"include":"#interpolation"},{"include":"#escapes"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cds"}}}]}}}