UNPKG

@shikijs/langs

Version:

TextMate grammars for Shiki in ESM

1 lines 96.5 kB
const lang = Object.freeze(JSON.parse("{\"displayName\":\"C#\",\"name\":\"csharp\",\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#directives\"},{\"include\":\"#declarations\"},{\"include\":\"#script-top-level\"}],\"repository\":{\"accessor-getter\":{\"patterns\":[{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"contentName\":\"meta.accessor.getter.cs\",\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#statement\"}]},{\"include\":\"#accessor-getter-expression\"},{\"include\":\"#punctuation-semicolon\"}]},\"accessor-getter-expression\":{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.arrow.cs\"}},\"contentName\":\"meta.accessor.getter.cs\",\"end\":\"(?=;|\\\\})\",\"patterns\":[{\"include\":\"#ref-modifier\"},{\"include\":\"#expression\"}]},\"accessor-setter\":{\"patterns\":[{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"contentName\":\"meta.accessor.setter.cs\",\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#statement\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.arrow.cs\"}},\"contentName\":\"meta.accessor.setter.cs\",\"end\":\"(?=;|\\\\})\",\"patterns\":[{\"include\":\"#ref-modifier\"},{\"include\":\"#expression\"}]},{\"include\":\"#punctuation-semicolon\"}]},\"anonymous-method-expression\":{\"patterns\":[{\"begin\":\"((?:\\\\b(?:async|static)\\\\b\\\\s*)*)(?:(@?[_[:alpha:]][_[:alnum:]]*)\\\\b|(\\\\()(?<tuple>(?:[^()]|\\\\(\\\\g<tuple>\\\\))*)(\\\\)))\\\\s*(=>)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"async|static\",\"name\":\"storage.modifier.$0.cs\"}]},\"2\":{\"name\":\"entity.name.variable.parameter.cs\"},\"3\":{\"name\":\"punctuation.parenthesis.open.cs\"},\"4\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#explicit-anonymous-function-parameter\"},{\"include\":\"#implicit-anonymous-function-parameter\"},{\"include\":\"#default-argument\"},{\"include\":\"#punctuation-comma\"}]},\"5\":{\"name\":\"punctuation.parenthesis.close.cs\"},\"6\":{\"name\":\"keyword.operator.arrow.cs\"}},\"end\":\"(?=[,;)}])\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"(?={)\",\"end\":\"(?=[,;)}])\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#intrusive\"}]},{\"begin\":\"\\\\b(ref)\\\\b|(?=\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ref.cs\"}},\"end\":\"(?=[,;)}])\",\"patterns\":[{\"include\":\"#expression\"}]}]},{\"begin\":\"((?:\\\\b(?:async|static)\\\\b\\\\s*)*)\\\\b(delegate)\\\\b\\\\s*\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"async|static\",\"name\":\"storage.modifier.$0.cs\"}]},\"2\":{\"name\":\"storage.type.delegate.cs\"}},\"end\":\"(?<=})|(?=[,;)}])\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#explicit-anonymous-function-parameter\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#block\"}]}]},\"anonymous-object-creation-expression\":{\"begin\":\"\\\\b(new)\\\\b\\\\s*(?=\\\\{|//|/\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.new.cs\"}},\"end\":\"(?<=\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#initializer-expression\"}]},\"argument\":{\"patterns\":[{\"match\":\"\\\\b(ref|in)\\\\b\",\"name\":\"storage.modifier.$1.cs\"},{\"begin\":\"\\\\b(out)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.out.cs\"}},\"end\":\"(?=,|\\\\)|\\\\])\",\"patterns\":[{\"include\":\"#declaration-expression-local\"},{\"include\":\"#expression\"}]},{\"include\":\"#expression\"}]},\"argument-list\":{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#named-argument\"},{\"include\":\"#argument\"},{\"include\":\"#punctuation-comma\"}]},\"array-creation-expression\":{\"begin\":\"\\\\b(new|stackalloc)\\\\b\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))?\\\\s*(?=\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.$1.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]}},\"end\":\"(?<=\\\\])\",\"patterns\":[{\"include\":\"#bracketed-argument-list\"}]},\"as-expression\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.as.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]}},\"match\":\"(?<!\\\\.)\\\\b(as)\\\\b\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?(?!\\\\?))?(?:\\\\s*\\\\[\\\\s*(?:,\\\\s*)*\\\\](?:\\\\s*\\\\?(?!\\\\?))?)*))?\"},\"assignment-expression\":{\"begin\":\"(?:\\\\*|/|%|\\\\+|-|\\\\?\\\\?|\\\\&|\\\\^|<<|>>>?|\\\\|)?=(?!=|>)\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#assignment-operators\"}]}},\"end\":\"(?=[,\\\\)\\\\];}])\",\"patterns\":[{\"include\":\"#ref-modifier\"},{\"include\":\"#expression\"}]},\"assignment-operators\":{\"patterns\":[{\"match\":\"\\\\*=|/=|%=|\\\\+=|-=|\\\\?\\\\?=\",\"name\":\"keyword.operator.assignment.compound.cs\"},{\"match\":\"\\\\&=|\\\\^=|<<=|>>>?=|\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.cs\"},{\"match\":\"\\\\=\",\"name\":\"keyword.operator.assignment.cs\"}]},\"attribute\":{\"patterns\":[{\"include\":\"#type-name\"},{\"include\":\"#type-arguments\"},{\"include\":\"#attribute-arguments\"}]},\"attribute-arguments\":{\"begin\":\"(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#attribute-named-argument\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"attribute-named-argument\":{\"begin\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\s*(?==)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.variable.property.cs\"}},\"end\":\"(?=(,|\\\\)))\",\"patterns\":[{\"include\":\"#operator-assignment\"},{\"include\":\"#expression\"}]},\"attribute-section\":{\"begin\":\"(\\\\[)(assembly|module|field|event|method|param|property|return|type)?(\\\\:)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.squarebracket.open.cs\"},\"2\":{\"name\":\"keyword.other.attribute-specifier.cs\"},\"3\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.squarebracket.close.cs\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#attribute\"},{\"include\":\"#punctuation-comma\"}]},\"await-expression\":{\"match\":\"(?<!\\\\.\\\\s*)\\\\b(await)\\\\b\",\"name\":\"keyword.operator.expression.await.cs\"},\"await-statement\":{\"begin\":\"(?<!\\\\.\\\\s*)\\\\b(await)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.await.cs\"}},\"end\":\"(?<=})|(?=;|})\",\"patterns\":[{\"include\":\"#foreach-statement\"},{\"include\":\"#using-statement\"},{\"include\":\"#expression\"}]},\"base-types\":{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(?=\\\\{|where|;)\",\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#preprocessor\"}]},\"block\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#statement\"}]},\"boolean-literal\":{\"patterns\":[{\"match\":\"(?<!\\\\.)\\\\btrue\\\\b\",\"name\":\"constant.language.boolean.true.cs\"},{\"match\":\"(?<!\\\\.)\\\\bfalse\\\\b\",\"name\":\"constant.language.boolean.false.cs\"}]},\"bracketed-argument-list\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.open.cs\"}},\"end\":\"\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.cs\"}},\"patterns\":[{\"include\":\"#named-argument\"},{\"include\":\"#argument\"},{\"include\":\"#punctuation-comma\"}]},\"bracketed-parameter-list\":{\"begin\":\"(?=(\\\\[))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.squarebracket.open.cs\"}},\"end\":\"(?=(\\\\]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.squarebracket.close.cs\"}},\"patterns\":[{\"begin\":\"(?<=\\\\[)\",\"end\":\"(?=\\\\])\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#attribute-section\"},{\"include\":\"#parameter\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#variable-initializer\"}]}]},\"break-or-continue-statement\":{\"match\":\"(?<!\\\\.)\\\\b(break|continue)\\\\b\",\"name\":\"keyword.control.flow.$1.cs\"},\"case-guard\":{\"patterns\":[{\"include\":\"#parenthesized-expression\"},{\"include\":\"#expression\"}]},\"cast-expression\":{\"captures\":{\"1\":{\"name\":\"punctuation.parenthesis.open.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"match\":\"(\\\\()\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))\\\\s*(\\\\))(?=\\\\s*-*!*@?[_[:alnum:]\\\\(])\"},\"casted-constant-pattern\":{\"begin\":\"(\\\\()([\\\\s.:@_[:alnum:]]+)(\\\\))(?=[\\\\s+\\\\-!~]*@?[_[:alnum:]('\\\"]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.open.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type-builtin\"},{\"include\":\"#type-name\"}]},\"3\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"end\":\"(?=[)}\\\\],;:?=&|^]|!=|\\\\b(and|or|when)\\\\b)\",\"patterns\":[{\"include\":\"#casted-constant-pattern\"},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#constant-pattern\"}]},{\"include\":\"#constant-pattern\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.alias.cs\"},\"2\":{\"name\":\"punctuation.separator.coloncolon.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\s*(\\\\:\\\\:)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.cs\"},\"2\":{\"name\":\"punctuation.accessor.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\s*(\\\\.)\"},{\"match\":\"\\\\@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"variable.other.constant.cs\"}]},\"catch-clause\":{\"begin\":\"(?<!\\\\.)\\\\b(catch)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.catch.cs\"}},\"end\":\"(?<=\\\\})\",\"patterns\":[{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"6\":{\"name\":\"entity.name.variable.local.cs\"}},\"match\":\"(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))\\\\s*(?:(\\\\g<identifier>)\\\\b)?\"}]},{\"include\":\"#when-clause\"},{\"include\":\"#comment\"},{\"include\":\"#block\"}]},\"char-character-escape\":{\"match\":\"\\\\\\\\(x[0-9a-fA-F]{1,4}|u[0-9a-fA-F]{4}|.)\",\"name\":\"constant.character.escape.cs\"},\"char-literal\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.char.begin.cs\"}},\"end\":\"(\\\\')|((?:[^\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.char.end.cs\"},\"2\":{\"name\":\"invalid.illegal.newline.cs\"}},\"name\":\"string.quoted.single.cs\",\"patterns\":[{\"include\":\"#char-character-escape\"}]},\"class-declaration\":{\"begin\":\"(?=(\\\\brecord\\\\b\\\\s+)?\\\\bclass\\\\b)\",\"end\":\"(?<=\\\\})|(?=;)\",\"patterns\":[{\"begin\":\"(\\\\b(record)\\\\b\\\\s+)?\\\\b(class)\\\\b\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\",\"beginCaptures\":{\"2\":{\"name\":\"storage.type.record.cs\"},\"3\":{\"name\":\"storage.type.class.cs\"},\"4\":{\"name\":\"entity.name.type.class.cs\"}},\"end\":\"(?=\\\\{)|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameter-list\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#base-types\"},{\"include\":\"#generic-constraints\"}]},{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#class-or-struct-members\"}]},{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"}]},\"class-or-struct-members\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#storage-modifier\"},{\"include\":\"#type-declarations\"},{\"include\":\"#property-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#event-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#constructor-declaration\"},{\"include\":\"#destructor-declaration\"},{\"include\":\"#operator-declaration\"},{\"include\":\"#conversion-operator-declaration\"},{\"include\":\"#method-declaration\"},{\"include\":\"#attribute-section\"},{\"include\":\"#punctuation-semicolon\"}]},\"combinator-pattern\":{\"match\":\"\\\\b(and|or|not)\\\\b\",\"name\":\"keyword.operator.expression.pattern.combinator.$1.cs\"},\"comment\":{\"patterns\":[{\"begin\":\"(^\\\\s+)?(///)(?!/)\",\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.cs\"},\"2\":{\"name\":\"punctuation.definition.comment.cs\"}},\"name\":\"comment.block.documentation.cs\",\"patterns\":[{\"include\":\"#xml-doc-comment\"}],\"while\":\"^(\\\\s*)(///)(?!/)\"},{\"begin\":\"(^\\\\s+)?(/\\\\*\\\\*)(?!/)\",\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.cs\"},\"2\":{\"name\":\"punctuation.definition.comment.cs\"}},\"end\":\"(^\\\\s+)?(\\\\*/)\",\"name\":\"comment.block.documentation.cs\",\"patterns\":[{\"begin\":\"\\\\G(?=(?~\\\\*/)$)\",\"patterns\":[{\"include\":\"#xml-doc-comment\"}],\"while\":\"^(\\\\s*+)(\\\\*(?!/))?(?=(?~\\\\*/)$)\",\"whileCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.cs\"},\"2\":{\"name\":\"punctuation.definition.comment.cs\"}}},{\"include\":\"#xml-doc-comment\"}]},{\"begin\":\"(^\\\\s+)?(//).*$\",\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.cs\"},\"2\":{\"name\":\"punctuation.definition.comment.cs\"}},\"name\":\"comment.line.double-slash.cs\",\"while\":\"^(\\\\s*)(//).*$\"},{\"begin\":\"/\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.cs\"}},\"end\":\"\\\\*/\",\"name\":\"comment.block.cs\"}]},\"conditional-operator\":{\"patterns\":[{\"match\":\"\\\\?(?!\\\\?|\\\\s*[.\\\\[])\",\"name\":\"keyword.operator.conditional.question-mark.cs\"},{\"match\":\":\",\"name\":\"keyword.operator.conditional.colon.cs\"}]},\"constant-pattern\":{\"patterns\":[{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#char-literal\"},{\"include\":\"#string-literal\"},{\"include\":\"#raw-string-literal\"},{\"include\":\"#verbatim-string-literal\"},{\"include\":\"#type-operator-expression\"},{\"include\":\"#expression-operator-expression\"},{\"include\":\"#expression-operators\"},{\"include\":\"#casted-constant-pattern\"}]},\"constructor-declaration\":{\"begin\":\"(?=@?[_[:alpha:]][_[:alnum:]]*\\\\s*\\\\()\",\"end\":\"(?<=\\\\})|(?=;)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\b\"},{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(?=\\\\{|=>)\",\"patterns\":[{\"include\":\"#constructor-initializer\"}]},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"constructor-initializer\":{\"begin\":\"\\\\b(base|this)\\\\b\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.language.$1.cs\"}},\"end\":\"(?<=\\\\))\",\"patterns\":[{\"include\":\"#argument-list\"}]},\"context-control-paren-statement\":{\"patterns\":[{\"include\":\"#fixed-statement\"},{\"include\":\"#lock-statement\"},{\"include\":\"#using-statement\"}]},\"context-control-statement\":{\"match\":\"\\\\b(checked|unchecked|unsafe)\\\\b(?!\\\\s*[@_[:alpha:](])\",\"name\":\"keyword.control.context.$1.cs\"},\"conversion-operator-declaration\":{\"begin\":\"(?<explicit_or_implicit_keyword>(?:\\\\b(?:explicit|implicit)))\\\\s*(?<operator_keyword>(?:\\\\b(?:operator)))\\\\s*(?<type_name>(?:(?:ref\\\\s+(?:readonly\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.explicit.cs\"}},\"match\":\"\\\\b(explicit)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.implicit.cs\"}},\"match\":\"\\\\b(implicit)\\\\b\"}]},\"2\":{\"name\":\"storage.type.operator.cs\"},\"3\":{\"patterns\":[{\"include\":\"#type\"}]}},\"end\":\"(?<=\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"declaration-expression-local\":{\"captures\":{\"1\":{\"name\":\"storage.type.var.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.local.cs\"}},\"match\":\"(?:\\\\b(var)\\\\b|(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*)))\\\\s+(\\\\g<identifier>)\\\\b\\\\s*(?=[,)\\\\]])\"},\"declaration-expression-tuple\":{\"captures\":{\"1\":{\"name\":\"storage.type.var.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.tuple-element.cs\"}},\"match\":\"(?:\\\\b(var)\\\\b|(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*)))\\\\s+(\\\\g<identifier>)\\\\b\\\\s*(?=[,)])\"},\"declarations\":{\"patterns\":[{\"include\":\"#namespace-declaration\"},{\"include\":\"#type-declarations\"},{\"include\":\"#punctuation-semicolon\"}]},\"default-argument\":{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.cs\"}},\"end\":\"(?=,|\\\\))\",\"patterns\":[{\"include\":\"#expression\"}]},\"default-literal-expression\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.default.cs\"}},\"match\":\"\\\\b(default)\\\\b\"},\"delegate-declaration\":{\"begin\":\"(?:\\\\b(delegate)\\\\b)\\\\s+(?<type_name>(?:(?:ref\\\\s+(?:readonly\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))\\\\s+(\\\\g<identifier>)\\\\s*(<([^<>]+)>)?\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.delegate.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.type.delegate.cs\"},\"8\":{\"patterns\":[{\"include\":\"#type-parameter-list\"}]}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#generic-constraints\"}]},\"designation-pattern\":{\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#punctuation-comma\"},{\"include\":\"#designation-pattern\"}]},{\"include\":\"#simple-designation-pattern\"}]},\"destructor-declaration\":{\"begin\":\"(~)(@?[_[:alpha:]][_[:alnum:]]*)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.tilde.cs\"},\"2\":{\"name\":\"entity.name.function.cs\"}},\"end\":\"(?<=\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"directives\":{\"patterns\":[{\"include\":\"#extern-alias-directive\"},{\"include\":\"#using-directive\"},{\"include\":\"#attribute-section\"},{\"include\":\"#punctuation-semicolon\"}]},\"discard-pattern\":{\"match\":\"_(?![_[:alnum:]])\",\"name\":\"variable.language.discard.cs\"},\"do-statement\":{\"begin\":\"(?<!\\\\.)\\\\b(do)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.loop.do.cs\"}},\"end\":\"(?=;|})\",\"patterns\":[{\"include\":\"#statement\"}]},\"double-raw-interpolation\":{\"begin\":\"(?<=[^\\\\{][^\\\\{]|^)((?:\\\\{)*)(\\\\{\\\\{)(?=[^\\\\{])\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.double.cs\"},\"2\":{\"name\":\"punctuation.definition.interpolation.begin.cs\"}},\"end\":\"\\\\}\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.interpolation.end.cs\"}},\"name\":\"meta.interpolation.cs\",\"patterns\":[{\"include\":\"#expression\"}]},\"element-access-expression\":{\"begin\":\"(?:(?:(\\\\?)\\\\s*)?(\\\\.)\\\\s*|(->)\\\\s*)?(?:(@?[_[:alpha:]][_[:alnum:]]*)\\\\s*)?(?:(\\\\?)\\\\s*)?(?=\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.null-conditional.cs\"},\"2\":{\"name\":\"punctuation.accessor.cs\"},\"3\":{\"name\":\"punctuation.accessor.pointer.cs\"},\"4\":{\"name\":\"variable.other.object.property.cs\"},\"5\":{\"name\":\"keyword.operator.null-conditional.cs\"}},\"end\":\"(?<=\\\\])(?!\\\\s*\\\\[)\",\"patterns\":[{\"include\":\"#bracketed-argument-list\"}]},\"else-part\":{\"begin\":\"(?<!\\\\.)\\\\b(else)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.else.cs\"}},\"end\":\"(?<=})|(?=;)\",\"patterns\":[{\"include\":\"#statement\"}]},\"enum-declaration\":{\"begin\":\"(?=\\\\benum\\\\b)\",\"end\":\"(?<=\\\\})\",\"patterns\":[{\"begin\":\"(?=enum)\",\"end\":\"(?=\\\\{)\",\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"storage.type.enum.cs\"},\"2\":{\"name\":\"entity.name.type.enum.cs\"}},\"match\":\"(enum)\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(?=\\\\{)\",\"patterns\":[{\"include\":\"#type\"}]}]},{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#attribute-section\"},{\"include\":\"#punctuation-comma\"},{\"begin\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.variable.enum-member.cs\"}},\"end\":\"(?=(,|\\\\}))\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]}]},{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"}]},\"event-accessors\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#attribute-section\"},{\"begin\":\"\\\\b(add|remove)\\\\b\\\\s*(?=\\\\{|;|=>|//|/\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.accessor.$1.cs\"}},\"end\":\"(?<=\\\\}|;)|(?=\\\\})\",\"patterns\":[{\"include\":\"#accessor-setter\"}]}]},\"event-declaration\":{\"begin\":\"\\\\b(event)\\\\b\\\\s*(?<return_type>(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))\\\\s+)(?<interface_name>\\\\g<type_name>\\\\s*\\\\.\\\\s*)?(\\\\g<identifier>)\\\\s*(?=\\\\{|;|,|=|//|/\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.event.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"8\":{\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-accessor\"}]},\"9\":{\"name\":\"entity.name.variable.event.cs\"}},\"end\":\"(?<=\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#event-accessors\"},{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.event.cs\"},{\"include\":\"#punctuation-comma\"},{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.cs\"}},\"end\":\"(?<=,)|(?=;)\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]}]},\"explicit-anonymous-function-parameter\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.parameter.cs\"}},\"match\":\"(?:\\\\b(ref|params|out|in)\\\\b\\\\s*)?(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args><(?:[^<>]|\\\\g<type_args>)*>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^()]|\\\\g<tuple>)*\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))\\\\s*\\\\b(\\\\g<identifier>)\\\\b\"},\"expression\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#expression-operator-expression\"},{\"include\":\"#type-operator-expression\"},{\"include\":\"#default-literal-expression\"},{\"include\":\"#throw-expression\"},{\"include\":\"#raw-interpolated-string\"},{\"include\":\"#interpolated-string\"},{\"include\":\"#verbatim-interpolated-string\"},{\"include\":\"#type-builtin\"},{\"include\":\"#language-variable\"},{\"include\":\"#switch-statement-or-expression\"},{\"include\":\"#with-expression\"},{\"include\":\"#conditional-operator\"},{\"include\":\"#assignment-expression\"},{\"include\":\"#expression-operators\"},{\"include\":\"#await-expression\"},{\"include\":\"#query-expression\"},{\"include\":\"#as-expression\"},{\"include\":\"#is-expression\"},{\"include\":\"#anonymous-method-expression\"},{\"include\":\"#object-creation-expression\"},{\"include\":\"#array-creation-expression\"},{\"include\":\"#anonymous-object-creation-expression\"},{\"include\":\"#invocation-expression\"},{\"include\":\"#member-access-expression\"},{\"include\":\"#element-access-expression\"},{\"include\":\"#cast-expression\"},{\"include\":\"#literal\"},{\"include\":\"#parenthesized-expression\"},{\"include\":\"#tuple-deconstruction-assignment\"},{\"include\":\"#initializer-expression\"},{\"include\":\"#identifier\"}]},\"expression-body\":{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.arrow.cs\"}},\"end\":\"(?=[,\\\\);}])\",\"patterns\":[{\"include\":\"#ref-modifier\"},{\"include\":\"#expression\"}]},\"expression-operator-expression\":{\"begin\":\"\\\\b(checked|unchecked|nameof)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.$1.cs\"},\"2\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"expression-operators\":{\"patterns\":[{\"match\":\"<<|>>>?\",\"name\":\"keyword.operator.bitwise.shift.cs\"},{\"match\":\"==|!=\",\"name\":\"keyword.operator.comparison.cs\"},{\"match\":\"<=|>=|<|>\",\"name\":\"keyword.operator.relational.cs\"},{\"match\":\"\\\\!|&&|\\\\|\\\\|\",\"name\":\"keyword.operator.logical.cs\"},{\"match\":\"\\\\&|~|\\\\^|\\\\|\",\"name\":\"keyword.operator.bitwise.cs\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.cs\"},{\"match\":\"\\\\+\\\\+\",\"name\":\"keyword.operator.increment.cs\"},{\"match\":\"\\\\+|-(?!>)|\\\\*|/|%\",\"name\":\"keyword.operator.arithmetic.cs\"},{\"match\":\"\\\\?\\\\?\",\"name\":\"keyword.operator.null-coalescing.cs\"},{\"match\":\"\\\\.\\\\.\",\"name\":\"keyword.operator.range.cs\"}]},\"extern-alias-directive\":{\"begin\":\"\\\\b(extern)\\\\s+(alias)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.directive.extern.cs\"},\"2\":{\"name\":\"keyword.other.directive.alias.cs\"}},\"end\":\"(?=;)\",\"patterns\":[{\"match\":\"\\\\@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"variable.other.alias.cs\"}]},\"field-declaration\":{\"begin\":\"(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))\\\\s+(\\\\g<identifier>)\\\\s*(?!=>|==)(?=,|;|=|$)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"6\":{\"name\":\"entity.name.variable.field.cs\"}},\"end\":\"(?=;)\",\"patterns\":[{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.field.cs\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#class-or-struct-members\"}]},\"finally-clause\":{\"begin\":\"(?<!\\\\.)\\\\b(finally)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.finally.cs\"}},\"end\":\"(?<=\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#block\"}]},\"fixed-statement\":{\"begin\":\"\\\\b(fixed)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.context.fixed.cs\"}},\"end\":\"(?<=\\\\))|(?=;|})\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#local-variable-declaration\"}]}]},\"for-statement\":{\"begin\":\"\\\\b(for)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.loop.for.cs\"}},\"end\":\"(?<=\\\\))|(?=;|})\",\"patterns\":[{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"begin\":\"(?=[^;\\\\)])\",\"end\":\"(?=;|\\\\))\",\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#local-variable-declaration\"}]},{\"begin\":\"(?=;)\",\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"}]}]}]},\"foreach-statement\":{\"begin\":\"\\\\b(foreach)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.loop.foreach.cs\"}},\"end\":\"(?<=\\\\))|(?=;|})\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#intrusive\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ref.cs\"},\"2\":{\"name\":\"storage.type.var.cs\"},\"3\":{\"patterns\":[{\"include\":\"#type\"}]},\"8\":{\"name\":\"entity.name.variable.local.cs\"},\"9\":{\"name\":\"keyword.control.loop.in.cs\"}},\"match\":\"(?:(?:(\\\\bref)\\\\s+)?(\\\\bvar\\\\b)|(?<type_name>(?:(?:ref\\\\s+)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*)))\\\\s+(\\\\g<identifier>)\\\\s+\\\\b(in)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.var.cs\"},\"2\":{\"patterns\":[{\"include\":\"#tuple-declaration-deconstruction-element-list\"}]},\"3\":{\"name\":\"keyword.control.loop.in.cs\"}},\"match\":\"(?:\\\\b(var)\\\\b\\\\s*)?(?<tuple>\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\))\\\\s+\\\\b(in)\\\\b\"},{\"include\":\"#expression\"}]}]},\"generic-constraints\":{\"begin\":\"(where)\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.where.cs\"},\"2\":{\"name\":\"entity.name.type.type-parameter.cs\"},\"3\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(?=\\\\{|where|;|=>)\",\"patterns\":[{\"match\":\"\\\\bclass\\\\b\",\"name\":\"storage.type.class.cs\"},{\"match\":\"\\\\bstruct\\\\b\",\"name\":\"storage.type.struct.cs\"},{\"match\":\"\\\\bdefault\\\\b\",\"name\":\"keyword.other.constraint.default.cs\"},{\"match\":\"\\\\bnotnull\\\\b\",\"name\":\"keyword.other.constraint.notnull.cs\"},{\"match\":\"\\\\bunmanaged\\\\b\",\"name\":\"keyword.other.constraint.unmanaged.cs\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.new.cs\"},\"2\":{\"name\":\"punctuation.parenthesis.open.cs\"},\"3\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"match\":\"(new)\\\\s*(\\\\()\\\\s*(\\\\))\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#generic-constraints\"}]},\"goto-statement\":{\"begin\":\"(?<!\\\\.)\\\\b(goto)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.goto.cs\"}},\"end\":\"(?=[;}])\",\"patterns\":[{\"begin\":\"\\\\b(case)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.case.cs\"}},\"end\":\"(?=[;}])\",\"patterns\":[{\"include\":\"#expression\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.conditional.default.cs\"}},\"match\":\"\\\\b(default)\\\\b\"},{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.label.cs\"}]},\"group-by\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.by.cs\"}},\"match\":\"\\\\b(by)\\\\b\\\\s*\"},\"group-clause\":{\"begin\":\"\\\\b(group)\\\\b\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.query.group.cs\"}},\"end\":\"(?=;|\\\\))\",\"patterns\":[{\"include\":\"#group-by\"},{\"include\":\"#group-into\"},{\"include\":\"#query-body\"},{\"include\":\"#expression\"}]},\"group-into\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.into.cs\"},\"2\":{\"name\":\"entity.name.variable.range-variable.cs\"}},\"match\":\"\\\\b(into)\\\\b\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)\\\\b\\\\s*\"},\"identifier\":{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"variable.other.readwrite.cs\"},\"if-statement\":{\"begin\":\"(?<!\\\\.)\\\\b(if)\\\\b\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.if.cs\"}},\"end\":\"(?<=})|(?=;)\",\"patterns\":[{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#statement\"}]},\"implicit-anonymous-function-parameter\":{\"match\":\"\\\\@?[_[:alpha:]][_[:alnum:]]*\\\\b\",\"name\":\"entity.name.variable.parameter.cs\"},\"indexer-declaration\":{\"begin\":\"(?<return_type>(?<type_name>(?:(?:ref\\\\s+(?:readonly\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))\\\\s+)(?<interface_name>\\\\g<type_name>\\\\s*\\\\.\\\\s*)?(?<indexer_name>this)\\\\s*(?=\\\\[)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-accessor\"}]},\"8\":{\"name\":\"variable.language.this.cs\"}},\"end\":\"(?<=\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#bracketed-parameter-list\"},{\"include\":\"#property-accessors\"},{\"include\":\"#accessor-getter-expression\"},{\"include\":\"#variable-initializer\"}]},\"initializer-expression\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"interface-declaration\":{\"begin\":\"(?=\\\\binterface\\\\b)\",\"end\":\"(?<=\\\\})\",\"patterns\":[{\"begin\":\"(interface)\\\\b\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.interface.cs\"},\"2\":{\"name\":\"entity.name.type.interface.cs\"}},\"end\":\"(?=\\\\{)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameter-list\"},{\"include\":\"#base-types\"},{\"include\":\"#generic-constraints\"}]},{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#interface-members\"}]},{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"}]},\"interface-members\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#storage-modifier\"},{\"include\":\"#property-declaration\"},{\"include\":\"#event-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#method-declaration\"},{\"include\":\"#operator-declaration\"},{\"include\":\"#attribute-section\"},{\"include\":\"#punctuation-semicolon\"}]},\"interpolated-string\":{\"begin\":\"\\\\$\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"(\\\")|((?:[^\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cs\"},\"2\":{\"name\":\"invalid.illegal.newline.cs\"}},\"name\":\"string.quoted.double.cs\",\"patterns\":[{\"include\":\"#string-character-escape\"},{\"include\":\"#interpolation\"}]},\"interpolation\":{\"begin\":\"(?<=[^\\\\{]|^)((?:\\\\{\\\\{)*)(\\\\{)(?=[^\\\\{])\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.double.cs\"},\"2\":{\"name\":\"punctuation.definition.interpolation.begin.cs\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.interpolation.end.cs\"}},\"name\":\"meta.interpolation.cs\",\"patterns\":[{\"include\":\"#expression\"}]},\"intrusive\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"}]},\"invocation-expression\":{\"begin\":\"(?:(?:(\\\\?)\\\\s*)?(\\\\.)\\\\s*|(->)\\\\s*)?(@?[_[:alpha:]][_[:alnum:]]*)\\\\s*(<(?<type_args>[^<>()]|\\\\((?:[^<>()]|<[^<>()]*>|\\\\([^<>()]*\\\\))*\\\\)|<\\\\g<type_args>*>)*>\\\\s*)?(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.null-conditional.cs\"},\"2\":{\"name\":\"punctuation.accessor.cs\"},\"3\":{\"name\":\"punctuation.accessor.pointer.cs\"},\"4\":{\"name\":\"entity.name.function.cs\"},\"5\":{\"patterns\":[{\"include\":\"#type-arguments\"}]}},\"end\":\"(?<=\\\\))\",\"patterns\":[{\"include\":\"#argument-list\"}]},\"is-expression\":{\"begin\":\"(?<!\\\\.)\\\\b(is)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.pattern.is.cs\"}},\"end\":\"(?=[)}\\\\],;:?=&|^]|!=)\",\"patterns\":[{\"include\":\"#pattern\"}]},\"join-clause\":{\"begin\":\"\\\\b(join)\\\\b\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))?\\\\s+(\\\\g<identifier>)\\\\b\\\\s*\\\\b(in)\\\\b\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.query.join.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.range-variable.cs\"},\"8\":{\"name\":\"keyword.operator.expression.query.in.cs\"}},\"end\":\"(?=;|\\\\))\",\"patterns\":[{\"include\":\"#join-on\"},{\"include\":\"#join-equals\"},{\"include\":\"#join-into\"},{\"include\":\"#query-body\"},{\"include\":\"#expression\"}]},\"join-equals\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.equals.cs\"}},\"match\":\"\\\\b(equals)\\\\b\\\\s*\"},\"join-into\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.into.cs\"},\"2\":{\"name\":\"entity.name.variable.range-variable.cs\"}},\"match\":\"\\\\b(into)\\\\b\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)\\\\b\\\\s*\"},\"join-on\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.on.cs\"}},\"match\":\"\\\\b(on)\\\\b\\\\s*\"},\"labeled-statement\":{\"captures\":{\"1\":{\"name\":\"entity.name.label.cs\"},\"2\":{\"name\":\"punctuation.separator.colon.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\s*(:)\"},\"language-variable\":{\"patterns\":[{\"match\":\"\\\\b(base|this)\\\\b\",\"name\":\"variable.language.$1.cs\"},{\"match\":\"\\\\b(value)\\\\b\",\"name\":\"variable.other.$1.cs\"}]},\"let-clause\":{\"begin\":\"\\\\b(let)\\\\b\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)\\\\b\\\\s*(=)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.query.let.cs\"},\"2\":{\"name\":\"entity.name.variable.range-variable.cs\"},\"3\":{\"name\":\"keyword.operator.assignment.cs\"}},\"end\":\"(?=;|\\\\))\",\"patterns\":[{\"include\":\"#query-body\"},{\"include\":\"#expression\"}]},\"list-pattern\":{\"begin\":\"(?=\\\\[)\",\"end\":\"(?=[)}\\\\],;:?=&|^]|!=|\\\\b(and|or|when)\\\\b)\",\"patterns\":[{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.open.cs\"}},\"end\":\"\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.cs\"}},\"patterns\":[{\"include\":\"#pattern\"},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?<=\\\\])\",\"end\":\"(?=[)}\\\\],;:?=&|^]|!=|\\\\b(and|or|when)\\\\b)\",\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#simple-designation-pattern\"}]}]},\"literal\":{\"patterns\":[{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#char-literal\"},{\"include\":\"#raw-string-literal\"},{\"include\":\"#string-literal\"},{\"include\":\"#verbatim-string-literal\"},{\"include\":\"#tuple-literal\"}]},\"local-constant-declaration\":{\"begin\":\"(?<const_keyword>\\\\b(?:const)\\\\b)\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))\\\\s+(\\\\g<identifier>)\\\\s*(?=,|;|=)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.const.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.local.cs\"}},\"end\":\"(?=;)\",\"patterns\":[{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.local.cs\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},\"local-declaration\":{\"patterns\":[{\"include\":\"#local-constant-declaration\"},{\"include\":\"#local-variable-declaration\"},{\"include\":\"#local-function-declaration\"},{\"include\":\"#local-tuple-var-deconstruction\"}]},\"local-function-declaration\":{\"begin\":\"\\\\b((?:(?:async|unsafe|static|extern)\\\\s+)*)(?<type_name>(?:ref\\\\s+(?:readonly\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?)?(?:\\\\s*\\\\[\\\\s*(?:,\\\\s*)*\\\\](?:\\\\s*\\\\?)?)*)\\\\s+(\\\\g<identifier>)\\\\s*(<[^<>]+>)?\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#storage-modifier\"}]},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.function.cs\"},\"8\":{\"patterns\":[{\"include\":\"#type-parameter-list\"}]}},\"end\":\"(?<=\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#generic-constraints\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"local-tuple-var-deconstruction\":{\"begin\":\"(?:\\\\b(var)\\\\b\\\\s*)(?<tuple>\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\))\\\\s*(?=;|=|\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.var.cs\"},\"2\":{\"patterns\":[{\"include\":\"#tuple-declaration-deconstruction-element-list\"}]}},\"end\":\"(?=;|\\\\))\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},\"local-variable-declaration\":{\"begin\":\"(?:(?:(\\\\bref)\\\\s+(?:(\\\\breadonly)\\\\s+)?)?(\\\\bvar\\\\b)|(?<type_name>(?:(?:ref\\\\s+(?:readonly\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*[?*]\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*)))\\\\s+(\\\\g<identifier>)\\\\s*(?!=>)(?=,|;|=|\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ref.cs\"},\"2\":{\"name\":\"storage.modifier.readonly.cs\"},\"3\":{\"name\":\"storage.type.var.cs\"},\"4\":{\"patterns\":[{\"include\":\"#type\"}]},\"9\":{\"name\":\"entity.name.variable.local.cs\"}},\"end\":\"(?=[;)}])\",\"patterns\":[{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.local.cs\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},\"lock-statement\":{\"begin\":\"\\\\b(lock)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.context.lock.cs\"}},\"end\":\"(?<=\\\\))|(?=;|})\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#expression\"}]}]},\"member-access-expression\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.null-conditional.cs\"},\"2\":{\"name\":\"punctuation.accessor.cs\"},\"3\":{\"name\":\"punctuation.accessor.pointer.cs\"},\"4\":{\"name\":\"variable.other.object.property.cs\"}},\"match\":\"(?:(?:(\\\\?)\\\\s*)?(\\\\.)\\\\s*|(->)\\\\s*)(@?[_[:alpha:]][_[:alnum:]]*)\\\\s*(?![_[:alnum:]]|\\\\(|(\\\\?)?\\\\[|<)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.cs\"},\"2\":{\"name\":\"variable.other.object.cs\"},\"3\":{\"patterns\":[{\"include\":\"#type-arguments\"}]}},\"match\":\"(\\\\.)?\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)(?<type_params>\\\\s*<([^<>]|\\\\g<type_params>)+>\\\\s*)(?=(\\\\s*\\\\?)?\\\\s*\\\\.\\\\s*@?[_[:alpha:]][_[:alnum:]]*)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.object.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)(?=\\\\s*(?:(?:\\\\?\\\\s*)?\\\\.|->)\\\\s*@?[_[:alpha:]][_[:alnum:]]*)\"}]},\"method-declaration\":{\"begin\":\"(?<return_type>(?<type_name>(?:(?:ref\\\\s+(?:readonly\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\s*\\\\:\\\\:\\\\s*)?(?<name_and_type_args>\\\\g<identifier>\\\\s*(?<type_args>\\\\s*<(?:[^<>]|\\\\g<type_args>)+>\\\\s*)?)(?:\\\\s*\\\\.\\\\s*\\\\g<name_and_type_args>)*|(?<tuple>\\\\s*\\\\((?:[^\\\\(\\\\)]|\\\\g<tuple>)+\\\\)))(?:\\\\s*\\\\?\\\\s*)?(?:\\\\s*\\\\[(?:\\\\s*,\\\\s*)*\\\\]\\\\s*(?:\\\\?)?\\\\s*)*))\\\\s+)(?<interface_name>\\\\g<type_name>\\\\s*\\\\.\\\\s*)?(\\\\g<identifier>)\\\\s*(<([^<>]+)>)?\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#pu