[{"displayName":"Cadence","name":"cadence","patterns":[{"include":"#comments"},{"include":"#declarations"},{"include":"#keywords"},{"include":"#code-block"},{"include":"#expressions"},{"include":"#composite"},{"include":"#event"}],"repository":{"code-block":{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cadence"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.scope.end.cadence"}},"patterns":[{"include":"$self"}]},"comments":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.cadence"}},"match":"\\A^(#!).*$\\n?","name":"comment.line.number-sign.cadence"},{"begin":"/\\*\\*(?!/)","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cadence"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.cadence"}},"name":"comment.block.documentation.cadence","patterns":[{"include":"#nested"}]},{"begin":"/\\*:","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cadence"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.cadence"}},"name":"comment.block.documentation.playground.cadence","patterns":[{"include":"#nested"}]},{"begin":"/\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cadence"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.cadence"}},"name":"comment.block.cadence","patterns":[{"include":"#nested"}]},{"match":"\\*/","name":"invalid.illegal.unexpected-end-of-block-comment.cadence"},{"begin":"(^[\\t ]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.cadence"}},"end":"(?!\\G)","patterns":[{"begin":"///","beginCaptures":{"0":{"name":"punctuation.definition.comment.cadence"}},"end":"$","name":"comment.line.triple-slash.documentation.cadence"},{"begin":"//:","beginCaptures":{"0":{"name":"punctuation.definition.comment.cadence"}},"end":"$","name":"comment.line.double-slash.documentation.cadence"},{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.cadence"}},"end":"$","name":"comment.line.double-slash.cadence"}]}],"repository":{"nested":{"begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}]}}},"composite":{"begin":"\\b((?:struct|resource|contract|attachment)(?:\\s+interface)?|enum)\\s+([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)","beginCaptures":{"1":{"name":"storage.type.$1.cadence"},"2":{"name":"entity.name.type.$1.cadence"}},"end":"(?<=})|(?=\\s*\\Z)","name":"meta.definition.type.composite.cadence","patterns":[{"include":"#comments"},{"include":"#conformance-clause"},{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.type.begin.cadence"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.type.end.cadence"}},"name":"meta.definition.type.body.cadence","patterns":[{"include":"$self"}]}]},"conformance-clause":{"begin":"(:)(?=\\s*\\{)|(:)\\s*","beginCaptures":{"1":{"name":"invalid.illegal.empty-conformance-clause.cadence"},"2":{"name":"punctuation.separator.conformance-clause.cadence"}},"end":"(?!\\G)$|(?=[={}])","name":"meta.conformance-clause.cadence","patterns":[{"begin":"\\G","end":"(?!\\G)$|(?=[={}])","patterns":[{"include":"#comments"},{"include":"#type"}]}]},"declarations":{"patterns":[{"include":"#var-let-declaration"},{"include":"#function"},{"include":"#initializer"},{"include":"#prepare-execute"},{"include":"#execute-phase"},{"include":"#pre-post"},{"include":"#transaction"}]},"event":{"begin":"\\b(event)\\b\\s+([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)\\s*","beginCaptures":{"1":{"name":"storage.type.event.cadence"},"2":{"name":"entity.name.type.event.cadence"}},"end":"(?<=\\))","name":"meta.definition.type.event.cadence","patterns":[{"include":"#comments"},{"include":"#parameter-clause"}]},"execute-phase":{"begin":"(?<!\\.)\\b(execute)\\b\\s*(?=\\{)","beginCaptures":{"1":{"name":"storage.modifier.phase.cadence"}},"end":"(?<=})","name":"meta.definition.transaction.phase.cadence","patterns":[{"include":"#comments"},{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.phase.begin.cadence"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.phase.end.cadence"}},"patterns":[{"include":"$self"}]}]},"expression-element-list":{"patterns":[{"include":"#comments"},{"begin":"([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)\\s*(:)","beginCaptures":{"1":{"name":"variable.parameter.function-call.cadence"},"2":{"name":"punctuation.separator.argument-label.cadence"}},"end":"(?=[]),])","patterns":[{"include":"#expressions"}]},{"begin":"(?![]),])(?=\\S)","end":"(?=[]),])","patterns":[{"include":"#expressions"}]}]},"expressions":{"patterns":[{"include":"#comments"},{"include":"#keywords"},{"include":"#language-variables"},{"include":"#function-expression"},{"include":"#path-literals"},{"begin":"(?!\\b(?:if|while|for|return|create|destroy|emit|as)\\b)([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)\\s*(<)(?=[\\&(@\\[_{\\p{Lu}]|auth\\b|\\s*$)","beginCaptures":{"1":{"name":"entity.name.function.cadence"},"2":{"name":"punctuation.definition.type-arguments.begin.cadence"}},"end":"(>)(?!\\s*[<=>])","endCaptures":{"1":{"name":"punctuation.definition.type-arguments.end.cadence"}},"name":"meta.type.arguments.cadence","patterns":[{"include":"#type"},{"match":",","name":"punctuation.separator.type-argument.cadence"}]},{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.cadence"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.cadence"}},"name":"meta.group.cadence","patterns":[{"include":"#expression-element-list"}]},{"begin":"(?<=\\.)([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)\\s*(\\()","beginCaptures":{"1":{"name":"entity.name.function.cadence"},"2":{"name":"punctuation.definition.arguments.begin.cadence"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.cadence"}},"name":"meta.function-call.method.cadence","patterns":[{"include":"#expression-element-list"}]},{"match":"(?<=\\.)[_\\p{L}][_\\p{L}\\p{N}\\p{M}]*","name":"variable.other.member.cadence"},{"include":"#function-call-expression"},{"match":"(?<!\\.)\\b(?!(?:contract|struct|resource|event|enum|attachment|entitlement|import|fun|let|var|if|else|switch|case|default|while|for|in|break|continue|return|emit|as|create|destroy|attach|to|remove|from|pub|priv|access|all|self|view|auth|transaction|prepare|execute|pre|post|init|true|false|nil|Type|Int|UInt|Int8|Int16|Int32|Int64|Int128|Int256|UInt8|UInt16|UInt32|UInt64|UInt128|UInt256|Word8|Word16|Word32|Word64|Fix64|Fix128|UFix64|UFix128|String|Character|Bool|Address|Void|AnyStruct|AnyResource|Any|Never|mapping|include)\\b)[_\\p{L}][_\\p{L}\\p{N}\\p{M}]*\\b","name":"variable.other.readwrite.cadence"},{"include":"#literals"},{"include":"#operators"}]},"function":{"begin":"\\b(fun)\\b\\s+([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)\\s*","beginCaptures":{"1":{"name":"storage.type.function.cadence"},"2":{"name":"entity.name.function.cadence"}},"end":"(?<=})|;|(?=}\\s*$)|$","name":"meta.definition.function.cadence","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"include":"#function-result"},{"begin":"(\\{)","beginCaptures":{"1":{"name":"punctuation.section.function.begin.cadence"}},"end":"(})","endCaptures":{"1":{"name":"punctuation.section.function.end.cadence"}},"name":"meta.definition.function.body.cadence","patterns":[{"include":"$self"}]}]},"function-call-expression":{"patterns":[{"begin":"(?<!\\.)\\b(?!set|init|transaction|prepare|execute|access|auth)([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)\\s*(\\()","beginCaptures":{"1":{"name":"entity.name.function.cadence"},"2":{"name":"punctuation.definition.arguments.begin.cadence"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.cadence"}},"name":"meta.function-call.cadence","patterns":[{"include":"#expression-element-list"}]}]},"function-expression":{"begin":"(?<!\\.)\\b(?:(view)\\s+)?(fun)\\b(?=\\s*\\()","beginCaptures":{"1":{"name":"storage.modifier.view.cadence"},"2":{"name":"storage.type.function.cadence"}},"end":"(?<=})|$","name":"meta.function.expression.cadence","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"include":"#function-result"},{"begin":"(\\{)","beginCaptures":{"1":{"name":"punctuation.section.function.begin.cadence"}},"end":"(})","endCaptures":{"1":{"name":"punctuation.section.function.end.cadence"}},"name":"meta.definition.function.body.cadence","patterns":[{"include":"$self"}]}]},"function-result":{"begin":"(?<![-!%\\&*+./<=>^|~])(:)(?![-!%\\&*+./<=>^|~])\\s*","beginCaptures":{"1":{"name":"keyword.operator.function-result.cadence"}},"end":"(?<![\\&<@\\[])(?!\\G)(?=\\s*\\{)|(?=;|(?<!\\{)})|$","name":"meta.function-result.cadence","patterns":[{"include":"#type"}]},"initializer":{"begin":"(?<!\\.)\\b(init)\\s*(?=[(<])","beginCaptures":{"1":{"name":"storage.type.function.cadence"}},"end":"(?<=})|$","name":"meta.definition.function.initializer.cadence","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"begin":"(\\{)","beginCaptures":{"1":{"name":"punctuation.section.function.begin.cadence"}},"end":"(})","endCaptures":{"1":{"name":"punctuation.section.function.end.cadence"}},"name":"meta.definition.function.body.cadence","patterns":[{"include":"$self"}]}]},"keywords":{"patterns":[{"match":"(?<!\\.)\\bvar\\b","name":"storage.type.var.cadence"},{"match":"(?<!\\.)\\blet\\b","name":"storage.type.let.cadence"},{"begin":"(?<!\\.)\\b(entitlement)\\s+(mapping)\\s+([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)\\s*(\\{)","beginCaptures":{"1":{"name":"keyword.declaration.entitlement.cadence"},"2":{"name":"keyword.other.mapping.cadence"},"3":{"name":"entity.name.type.entitlement-mapping.cadence"},"4":{"name":"punctuation.definition.type.begin.cadence"}},"end":"(})","endCaptures":{"1":{"name":"punctuation.definition.type.end.cadence"}},"name":"meta.definition.entitlement-mapping.cadence","patterns":[{"include":"#comments"},{"match":"\\binclude\\b","name":"keyword.other.mapping.include.cadence"},{"captures":{"1":{"name":"entity.name.type.entitlement-mapping.cadence"}},"match":"(?<=\\binclude)\\s+([_\\p{L}][._\\p{L}\\p{N}\\p{M}]*)"},{"match":"[_\\p{L}][._\\p{L}\\p{N}\\p{M}]*","name":"entity.name.type.entitlement.cadence"},{"match":"->","name":"punctuation.separator.mapping.cadence"}]},{"captures":{"1":{"name":"keyword.declaration.entitlement.cadence"},"2":{"name":"entity.name.type.entitlement.cadence"}},"match":"(?<!\\.)\\b(entitlement)\\b\\s+([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)"},{"begin":"(?<!\\.)\\b(access)\\b\\s*(\\()","beginCaptures":{"1":{"name":"storage.modifier.access.cadence"},"2":{"name":"punctuation.section.group.begin.cadence"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.section.group.end.cadence"}},"name":"meta.access.modifier.cadence","patterns":[{"include":"#comments"},{"match":"\\bmapping\\b","name":"keyword.other.mapping.cadence"},{"captures":{"1":{"name":"entity.name.type.entitlement-mapping.cadence"}},"match":"(?<=\\bmapping)\\s+([_\\p{L}][._\\p{L}\\p{N}\\p{M}]*)"},{"match":"\\b(?:all|self|contract|account)\\b","name":"constant.language.access.audience.cadence"},{"match":",","name":"punctuation.separator.entitlement.cadence"},{"match":"\\|","name":"punctuation.separator.entitlement.cadence"},{"match":"[_\\p{L}][._\\p{L}\\p{N}\\p{M}]*","name":"entity.name.type.entitlement.cadence"}]},{"match":"(?<!\\.)\\b(?:if|else|switch|case|default)\\b","name":"keyword.control.branch.cadence"},{"match":"(?<!\\.)\\b(?:return|continue|break)\\b","name":"keyword.control.transfer.cadence"},{"match":"(?<!\\.)\\b(?:while|for|in)\\b","name":"keyword.control.loop.cadence"},{"match":"(?<!\\.)\\b(?:create|destroy|emit|attach|to|remove|from)\\b","name":"keyword.other.cadence"},{"match":"(?<!\\.)\\b(p(?:ub|riv))\\b","name":"invalid.deprecated.keyword.cadence"},{"match":"(?<!\\.)\\bview\\b","name":"storage.modifier.view.cadence"},{"match":"(?<!\\.)\\b(auth)\\b","name":"keyword.other.auth.cadence"},{"begin":"(?<!\\.)\\b(import)\\b","beginCaptures":{"1":{"name":"keyword.control.import.cadence"}},"end":"(?=$|//|/\\*|;)","name":"meta.import.cadence","patterns":[{"match":"\\bfrom\\b","name":"keyword.control.import.cadence"},{"include":"#literals"},{"match":"\\b[_\\p{L}][_\\p{L}\\p{N}\\p{M}]*\\b","name":"variable.other.readwrite.cadence"}]}]},"language-variables":{"patterns":[{"match":"\\b(self)\\b","name":"variable.language.cadence"}]},"literals":{"patterns":[{"include":"#boolean"},{"include":"#numeric"},{"include":"#string"},{"match":"\\bnil\\b","name":"constant.language.nil.cadence"}],"repository":{"boolean":{"match":"\\b(true|false)\\b","name":"constant.language.boolean.cadence"},"numeric":{"patterns":[{"include":"#binary"},{"include":"#octal"},{"include":"#hexadecimal"},{"include":"#fixed-point"},{"include":"#decimal"}],"repository":{"binary":{"match":"(\\B-|\\b)0b[01]([01_]*[01])?\\b","name":"constant.numeric.integer.binary.cadence"},"decimal":{"match":"(\\B-|\\b)[0-9]([0-9_]*[0-9])?\\b","name":"constant.numeric.integer.decimal.cadence"},"fixed-point":{"match":"(\\B-|\\b)[0-9]([0-9_]*[0-9])?\\.[0-9]([0-9_]*[0-9])?\\b","name":"constant.numeric.float.cadence"},"hexadecimal":{"match":"(\\B-|\\b)0x\\h([_\\h]*\\h)?\\b","name":"constant.numeric.integer.hexadecimal.cadence"},"octal":{"match":"(\\B-|\\b)0o[0-7]([0-7_]*[0-7])?\\b","name":"constant.numeric.integer.octal.cadence"}}},"string":{"patterns":[{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cadence"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.cadence"}},"name":"string.quoted.double.single-line.cadence","patterns":[{"match":"[\\n\\r]","name":"invalid.illegal.returns-not-allowed.cadence"},{"begin":"\\\\\\(","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.cadence meta.embedded.cadence"}},"contentName":"meta.embedded.line.cadence","end":"\\)","endCaptures":{"0":{"name":"punctuation.section.embedded.end.cadence meta.embedded.cadence"}},"name":"meta.interpolation.cadence","patterns":[{"begin":"\\(","beginCaptures":{"0":{"name":"punctuation.section.group.begin.cadence"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.section.group.end.cadence"}},"patterns":[{"include":"#expressions"}]},{"include":"#expressions"}]},{"include":"#string-guts"}]}],"repository":{"string-guts":{"patterns":[{"match":"\\\\[\"'0\\\\nrt]","name":"constant.character.escape.cadence"},{"match":"\\\\u\\{\\h{1,8}}","name":"constant.character.escape.unicode.cadence"}]}}}}},"operators":{"patterns":[{"match":"<->","name":"keyword.operator.swap.cadence"},{"match":"\\?\\.","name":"keyword.operator.optional.chain.cadence"},{"begin":"\\b(as(?:\\?|!?))\\b","beginCaptures":{"0":{"name":"keyword.operator.type.cast.cadence"}},"end":"(?=$|;|//|/\\\\*|\")|(?=[),}])|(?<=>)(?=\\s*\\{(?!\\s*[_\\p{L}][._\\p{L}\\p{N}\\p{M}]*\\s*:))|(?<=[])>?}\\p{L}\\p{N}])(?=\\s*\\{(?!\\s*[_\\p{L}][._\\p{L}\\p{N}\\p{M}]*\\s*:))|(?=\\?\\?)","name":"meta.type.cast-target.cadence","patterns":[{"begin":"\\{(?=\\s*[_\\p{L}][._\\p{L}\\p{N}\\p{M}]*\\s*:)","beginCaptures":{"0":{"name":"punctuation.definition.type.dictionary.begin.cadence"}},"end":"(})","endCaptures":{"1":{"name":"punctuation.definition.type.dictionary.end.cadence"}},"name":"meta.type.dictionary.cadence","patterns":[{"include":"#comments"},{"include":"#type"},{"match":":","name":"punctuation.separator.type.dictionary.cadence"},{"match":",","name":"punctuation.separator.type.dictionary.cadence"}]},{"include":"#type"}]},{"match":"-","name":"keyword.operator.arithmetic.unary.cadence"},{"match":"(?<=\\))!","name":"keyword.operator.force-unwrap.cadence"},{"match":"!","name":"keyword.operator.logical.not.cadence"},{"match":"=","name":"keyword.operator.assignment.cadence"},{"match":"<-","name":"keyword.operator.move.cadence"},{"match":"<-!","name":"keyword.operator.force-move.cadence"},{"match":"[-*+/]","name":"keyword.operator.arithmetic.cadence"},{"match":"%","name":"keyword.operator.arithmetic.remainder.cadence"},{"match":">>","name":"keyword.operator.bitwise.shift.cadence"},{"match":"<<","name":"keyword.operator.bitwise.shift.cadence"},{"match":"==|!=|[<>]|>=|<=","name":"keyword.operator.comparison.cadence"},{"match":"\\?\\?","name":"keyword.operator.coalescing.cadence"},{"match":"&&|\\|\\|","name":"keyword.operator.logical.cadence"},{"match":"[!?]","name":"keyword.operator.type.optional.cadence"}]},"parameter-clause":{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.cadence"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.cadence"}},"name":"meta.parameter-clause.cadence","patterns":[{"include":"#comments"},{"include":"#parameter-list"}]},"parameter-list":{"patterns":[{"include":"#comments"},{"captures":{"1":{"name":"keyword.operator.unnamed-parameter.cadence"},"2":{"name":"variable.parameter.cadence"}},"match":"(_)\\s+([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)(?=\\s*:)"},{"captures":{"1":{"name":"entity.name.label.cadence"},"2":{"name":"variable.parameter.cadence"}},"match":"([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)\\s+([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)(?=\\s*:)"},{"captures":{"1":{"name":"variable.parameter.cadence"}},"match":"([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)(?=\\s*:)"},{"begin":":\\s*(?!\\s)","end":"(?=[),])","patterns":[{"include":"#type"},{"match":":","name":"invalid.illegal.extra-colon-in-parameter-list.cadence"}]}]},"path-literals":{"patterns":[{"captures":{"1":{"name":"punctuation.separator.path.cadence"},"2":{"name":"constant.other.path.cadence"}},"match":"(/)((storage|public)(/[_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)?)"}]},"pre-post":{"begin":"(?<!\\.)\\b(p(?:re|ost))\\b\\s*(?=\\{)","beginCaptures":{"1":{"name":"storage.modifier.phase.cadence"}},"end":"(?<=})","name":"meta.definition.transaction.phase.cadence","patterns":[{"include":"#comments"},{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.phase.begin.cadence"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.phase.end.cadence"}},"patterns":[{"include":"$self"}]}]},"prepare-execute":{"begin":"(?<!\\.)\\b(prepare)\\b\\s*(?=\\()","beginCaptures":{"1":{"name":"storage.modifier.phase.cadence"}},"end":"(?<=})","name":"meta.definition.transaction.phase.cadence","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.phase.begin.cadence"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.phase.end.cadence"}},"patterns":[{"include":"$self"}]}]},"transaction":{"begin":"\\b(transaction)\\b","beginCaptures":{"1":{"name":"storage.type.transaction.cadence"}},"end":"(?<=\\))|(?<=})","name":"meta.definition.transaction.cadence","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.transaction.begin.cadence"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.transaction.end.cadence"}},"name":"meta.definition.transaction.body.cadence","patterns":[{"include":"$self"}]}]},"type":{"patterns":[{"begin":"(?<!\\.)\\b(?:(view)\\s+)?(fun)\\b\\s*(\\()","beginCaptures":{"1":{"name":"storage.modifier.view.cadence"},"2":{"name":"storage.type.function.cadence"},"3":{"name":"punctuation.definition.parameters.begin.cadence"}},"end":"(?=[]),>}]|$)","name":"meta.type.function.cadence","patterns":[{"include":"#comments"},{"begin":"\\G","end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.cadence"}},"patterns":[{"include":"#type"},{"match":",","name":"punctuation.separator.parameter.cadence"}]},{"begin":"(:)","beginCaptures":{"1":{"name":"keyword.operator.function-result.cadence"}},"end":"(?=[]),>}]|$)","name":"meta.function-result.cadence","patterns":[{"include":"#type"}]}]},{"include":"#comments"},{"begin":"(?<!\\.)([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)\\s*(<)","beginCaptures":{"1":{"name":"entity.name.type.cadence"},"2":{"name":"punctuation.definition.type-arguments.begin.cadence"}},"end":"(>)","endCaptures":{"1":{"name":"punctuation.definition.type-arguments.end.cadence"}},"name":"meta.type.arguments.cadence","patterns":[{"include":"#type"},{"match":",","name":"punctuation.separator.type-argument.cadence"}]},{"begin":"(?<!\\.)\\b(auth)\\b\\s*(\\()","beginCaptures":{"1":{"name":"keyword.other.auth.cadence"},"2":{"name":"punctuation.section.group.begin.cadence"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.section.group.end.cadence"}},"name":"meta.auth.entitlements.cadence","patterns":[{"include":"#comments"},{"match":"\\bmapping\\b","name":"keyword.other.mapping.cadence"},{"captures":{"1":{"name":"entity.name.type.entitlement-mapping.cadence"}},"match":"(?<=\\bmapping)\\s+([_\\p{L}][._\\p{L}\\p{N}\\p{M}]*)"},{"match":",","name":"punctuation.separator.entitlement.cadence"},{"match":"\\|","name":"punctuation.separator.entitlement.cadence"},{"match":"[_\\p{L}][._\\p{L}\\p{N}\\p{M}]*","name":"entity.name.type.entitlement.cadence"}]},{"begin":"\\{(?![^}]*:)(?!.*}\\s*\\()","beginCaptures":{"0":{"name":"punctuation.definition.type.intersection.begin.cadence"}},"end":"(})","endCaptures":{"1":{"name":"punctuation.definition.type.intersection.end.cadence"}},"patterns":[{"include":"#comments"},{"include":"#type"},{"match":",","name":"punctuation.separator.type.intersection.cadence"}]},{"begin":"\\{(?=\\s*[_\\p{L}][._\\p{L}\\p{N}\\p{M}]*\\s*:)(?!.*}\\s*\\()","beginCaptures":{"0":{"name":"punctuation.definition.type.dictionary.begin.cadence"}},"end":"(})","endCaptures":{"1":{"name":"punctuation.definition.type.dictionary.end.cadence"}},"name":"meta.type.dictionary.cadence","patterns":[{"include":"#comments"},{"include":"#type"},{"match":":","name":"punctuation.separator.type.dictionary.cadence"},{"match":",","name":"punctuation.separator.type.dictionary.cadence"}]},{"begin":"\\[","beginCaptures":{"0":{"name":"punctuation.definition.type.array.begin.cadence"}},"end":"(])","endCaptures":{"1":{"name":"punctuation.definition.type.array.end.cadence"}},"name":"meta.type.array.cadence","patterns":[{"include":"#comments"},{"include":"#type"}]},{"captures":{"1":{"name":"punctuation.definition.type.reference.cadence"}},"match":"([\\&@])(?=\\s*\\{)"},{"captures":{"1":{"name":"punctuation.definition.type.reference.cadence"},"2":{"name":"entity.name.type.cadence"}},"match":"([\\&@])\\s*([_\\p{L}][._\\p{L}\\p{N}\\p{M}]*)"},{"match":"([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)","name":"entity.name.type.cadence"},{"match":"[!?]","name":"keyword.operator.type.optional.cadence"}]},"var-let-declaration":{"begin":"\\b(var|let)\\b\\s+([_\\p{L}][_\\p{L}\\p{N}\\p{M}]*)","beginCaptures":{"1":{"name":"storage.type.$1.cadence"},"2":{"name":"variable.other.declaration.cadence"}},"end":"=|<-!??|;|(?=//)|$","patterns":[{"include":"#comments"},{"begin":":\\s*(?!\\s)","beginCaptures":{"0":{"name":"keyword.operator.type.annotation.cadence"}},"end":"(?=//|=|<-!??|;|$)","patterns":[{"include":"#type"},{"include":"#comments"}]}]}},"scopeName":"source.cadence"}]