import{n as e}from"./chunk-DseTPa7n.js";import{M as t,P as n,X as r,et as i,f as a,ft as o,j as s,l as c,lt as l,y as u,z as d}from"./runtime-core.esm-bundler-CZvn3YaB.js";import{c as f}from"./runtime-dom.esm-bundler-DTRCDnrc.js";import{t as p}from"./preload-helper-ca-nBW7U.js";import{t as m}from"./codeRepl-DjcuOnVB.js";import{t as h}from"./plugin-vue_export-helper-CxTVcLa7.js";var g={grammars:{kotlin:{displayName:`Kotlin`,fileTypes:[`kt`,`kts`],name:`kotlin`,patterns:[{include:`#import`},{include:`#package`},{include:`#code`}],repository:{"annotation-simple":{match:`(?<([^<>]|\\g)+>)?"},code:{patterns:[{include:`#comments`},{include:`#keywords`},{include:`#annotation-simple`},{include:`#annotation-site-list`},{include:`#annotation-site`},{include:`#class-declaration`},{include:`#object`},{include:`#type-alias`},{include:`#function`},{include:`#variable-declaration`},{include:`#type-constraint`},{include:`#type-annotation`},{include:`#function-call`},{include:`#method-reference`},{include:`#key`},{include:`#string`},{include:`#string-empty`},{include:`#string-multiline`},{include:`#character`},{include:`#lambda-arrow`},{include:`#operators`},{include:`#self-reference`},{include:`#decimal-literal`},{include:`#hex-literal`},{include:`#binary-literal`},{include:`#boolean-literal`},{include:`#null-literal`}]},"comment-block":{begin:`/\\*(?!\\*)`,end:`\\*/`,name:`comment.block.kotlin`},"comment-javadoc":{patterns:[{begin:`/\\*\\*`,end:`\\*/`,name:`comment.block.javadoc.kotlin`,patterns:[{match:`@(return|constructor|receiver|sample|see|author|since|suppress)\\b`,name:`keyword.other.documentation.javadoc.kotlin`},{captures:{1:{name:`keyword.other.documentation.javadoc.kotlin`},2:{name:`variable.parameter.kotlin`}},match:`(@p(?:aram|roperty))\\s+(\\S+)`},{captures:{1:{name:`keyword.other.documentation.javadoc.kotlin`},2:{name:`variable.parameter.kotlin`}},match:`(@param)\\[(\\S+)]`},{captures:{1:{name:`keyword.other.documentation.javadoc.kotlin`},2:{name:`entity.name.type.class.kotlin`}},match:`(@(?:exception|throws))\\s+(\\S+)`},{captures:{1:{name:`keyword.other.documentation.javadoc.kotlin`},2:{name:`entity.name.type.class.kotlin`},3:{name:`variable.parameter.kotlin`}},match:`\\{(@link)\\s+(\\S+)?#([$\\w]+\\s*\\([^()]*\\)).*}`}]}]},"comment-line":{begin:`//`,end:`$`,name:`comment.line.double-slash.kotlin`},comments:{patterns:[{include:`#comment-line`},{include:`#comment-block`},{include:`#comment-javadoc`}]},"control-keywords":{match:`\\b(if|else|while|do|when|try|throw|break|continue|return|for)\\b`,name:`keyword.control.kotlin`},"decimal-literal":{match:`\\b\\d[_\\d]*(\\.[_\\d]+)?(([Ee])\\d+)?([Uu])?([FLf])?\\b`,name:`constant.numeric.decimal.kotlin`},function:{captures:{1:{name:`keyword.hard.fun.kotlin`},2:{patterns:[{include:`#type-parameter`}]},4:{name:`entity.name.type.class.extension.kotlin`},5:{name:`entity.name.function.declaration.kotlin`}},match:"\\b(fun)\\b\\s*(?<([^<>]|\\g)+>)?\\s*(?:(?:(\\w+)\\.)?(\\b\\w+\\b|`[^`]+`))?"},"function-call":{captures:{1:{name:`entity.name.function.call.kotlin`},2:{patterns:[{include:`#type-parameter`}]}},match:"\\??\\.?(\\b\\w+\\b|`[^`]+`)\\s*(?<([^<>]|\\g)+>)?\\s*(?=[({])"},"hard-keywords":{match:`\\b(as|typeof|is|in)\\b`,name:`keyword.hard.kotlin`},"hex-literal":{match:`0([Xx])\\h[_\\h]*([Uu])?`,name:`constant.numeric.hex.kotlin`},import:{begin:`\\b(import)\\b\\s*`,beginCaptures:{1:{name:`keyword.soft.kotlin`}},contentName:`entity.name.package.kotlin`,end:`;|$`,name:`meta.import.kotlin`,patterns:[{include:`#comments`},{include:`#hard-keywords`},{match:`\\*`,name:`variable.language.wildcard.kotlin`}]},key:{captures:{1:{name:`variable.parameter.kotlin`},2:{name:`keyword.operator.assignment.kotlin`}},match:`\\b(\\w=)\\s*(=)`},keywords:{patterns:[{include:`#prefix-modifiers`},{include:`#postfix-modifiers`},{include:`#soft-keywords`},{include:`#hard-keywords`},{include:`#control-keywords`}]},"lambda-arrow":{match:`->`,name:`storage.type.function.arrow.kotlin`},"method-reference":{captures:{1:{name:`entity.name.function.reference.kotlin`}},match:"\\??::(\\b\\w+\\b|`[^`]+`)"},"null-literal":{match:`\\bnull\\b`,name:`constant.language.null.kotlin`},object:{captures:{1:{name:`keyword.hard.object.kotlin`},2:{name:`entity.name.type.object.kotlin`}},match:"\\b(object)(?:\\s+(\\b\\w+\\b|`[^`]+`))?"},operators:{patterns:[{match:`(===?|!==?|<=|>=|[<>])`,name:`keyword.operator.comparison.kotlin`},{match:`([-%*+/]=)`,name:`keyword.operator.assignment.arithmetic.kotlin`},{match:`(=)`,name:`keyword.operator.assignment.kotlin`},{match:`([-%*+/])`,name:`keyword.operator.arithmetic.kotlin`},{match:`(!|&&|\\|\\|)`,name:`keyword.operator.logical.kotlin`},{match:`(--|\\+\\+)`,name:`keyword.operator.increment-decrement.kotlin`},{match:`(\\.\\.)`,name:`keyword.operator.range.kotlin`}]},package:{begin:`\\b(package)\\b\\s*`,beginCaptures:{1:{name:`keyword.hard.package.kotlin`}},contentName:`entity.name.package.kotlin`,end:`;|$`,name:`meta.package.kotlin`,patterns:[{include:`#comments`}]},"postfix-modifiers":{match:`\\b(where|by|get|set)\\b`,name:`storage.modifier.other.kotlin`},"prefix-modifiers":{match:`\\b(abstract|final|enum|open|annotation|sealed|data|override|final|lateinit|private|protected|public|internal|inner|companion|noinline|crossinline|vararg|reified|tailrec|operator|infix|inline|external|const|suspend|value)\\b`,name:`storage.modifier.other.kotlin`},"self-reference":{match:`\\b(this|super)(@\\w+)?\\b`,name:`variable.language.this.kotlin`},"soft-keywords":{match:`\\b(init|catch|finally|field)\\b`,name:`keyword.soft.kotlin`},string:{begin:`(?<([^<>]|\\g)+>)?"},"type-annotation":{captures:{0:{patterns:[{include:`#type-parameter`}]}},match:`(?|(?[(<]([^"'()<>]|\\g)+[)>]))+`},"type-parameter":{patterns:[{match:`\\b\\w+\\b`,name:`entity.name.type.kotlin`},{match:`\\b(in|out)\\b`,name:`storage.modifier.kotlin`}]},"unescaped-annotation":{match:`\\b[.\\w]+\\b`,name:`entity.name.type.annotation.kotlin`},"variable-declaration":{captures:{1:{name:`keyword.hard.kotlin`},2:{patterns:[{include:`#type-parameter`}]}},match:`\\b(va[lr])\\b\\s*(?<([^<>]|\\g)+>)?`}},scopeName:`source.kotlin`},go:{displayName:`Go`,name:`go`,patterns:[{include:`#statements`}],repository:{after_control_variables:{captures:{1:{patterns:[{include:`#type-declarations-without-brackets`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\w+`,name:`variable.other.go`}]}},match:`(?<=\\brange\\b|;|\\bif\\b|\\bfor\\b|[<>]|<=|>=|==|!=|\\w[-%*+/]|\\w[-%*+/]=|\\|\\||&&)\\s*((?![]\\[]+)[-\\]!%*+./:<=>\\[_[:alnum:]]+)\\s*(?=\\{)`},brackets:{patterns:[{begin:`\\{`,beginCaptures:{0:{name:`punctuation.definition.begin.bracket.curly.go`}},end:`}`,endCaptures:{0:{name:`punctuation.definition.end.bracket.curly.go`}},patterns:[{include:`$self`}]},{begin:`\\(`,beginCaptures:{0:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`$self`}]},{begin:`\\[`,beginCaptures:{0:{name:`punctuation.definition.begin.bracket.square.go`}},end:`]`,endCaptures:{0:{name:`punctuation.definition.end.bracket.square.go`}},patterns:[{include:`$self`}]}]},built_in_functions:{patterns:[{match:`\\b(append|cap|close|complex|copy|delete|imag|len|panic|print|println|real|recover|min|max|clear)\\b(?=\\()`,name:`entity.name.function.support.builtin.go`},{begin:`\\b(new)\\b(\\()`,beginCaptures:{1:{name:`entity.name.function.support.builtin.go`},2:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`#functions`},{include:`#struct_variables_types`},{include:`#support_functions`},{include:`#type-declarations`},{include:`#generic_types`},{match:`\\w+`,name:`entity.name.type.go`},{include:`$self`}]},{begin:`\\b(make)\\b(\\()((?:(?:[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?[]*\\[]+{0,1}(?:(?!\\bmap\\b)[.\\w]+)?(\\[(?:\\S+(?:,\\s*\\S+)*)?])?,?)?`,beginCaptures:{1:{name:`entity.name.function.support.builtin.go`},2:{name:`punctuation.definition.begin.bracket.round.go`},3:{patterns:[{include:`#type-declarations-without-brackets`},{include:`#parameter-variable-types`},{match:`\\w+`,name:`entity.name.type.go`}]}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`$self`}]}]},comments:{patterns:[{begin:`(/\\*)`,beginCaptures:{1:{name:`punctuation.definition.comment.go`}},end:`(\\*/)`,endCaptures:{1:{name:`punctuation.definition.comment.go`}},name:`comment.block.go`},{begin:`(//)`,beginCaptures:{1:{name:`punctuation.definition.comment.go`}},end:`\\n|$`,name:`comment.line.double-slash.go`}]},const_assignment:{patterns:[{captures:{1:{patterns:[{include:`#delimiters`},{match:`\\w+`,name:`variable.other.constant.go`}]},2:{patterns:[{include:`#type-declarations-without-brackets`},{include:`#generic_types`},{match:`\\(`,name:`punctuation.definition.begin.bracket.round.go`},{match:`\\)`,name:`punctuation.definition.end.bracket.round.go`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`(?<=\\bconst\\b)\\s*\\b([.\\w]+(?:,\\s*[.\\w]+)*)\\s*((?:(?:[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?![]*\\[]+{0,1}\\b(?:struct|func|map)\\b)(?:[]*.\\[\\w]+(?:,\\s*[]*.\\[\\w]+)*)?\\s*=?)?`},{begin:`(?<=\\bconst\\b)\\s*(\\()`,beginCaptures:{1:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{captures:{1:{patterns:[{include:`#delimiters`},{match:`\\w+`,name:`variable.other.constant.go`}]},2:{patterns:[{include:`#type-declarations-without-brackets`},{include:`#generic_types`},{match:`\\(`,name:`punctuation.definition.begin.bracket.round.go`},{match:`\\)`,name:`punctuation.definition.end.bracket.round.go`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`^\\s*\\b([.\\w]+(?:,\\s*[.\\w]+)*)\\s*((?:(?:[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?![]*\\[]+{0,1}\\b(?:struct|func|map)\\b)(?:[]*.\\[\\w]+(?:,\\s*[]*.\\[\\w]+)*)?\\s*=?)?`},{include:`$self`}]}]},delimiters:{patterns:[{match:`,`,name:`punctuation.other.comma.go`},{match:`\\.(?!\\.\\.)`,name:`punctuation.other.period.go`},{match:`:(?!=)`,name:`punctuation.other.colon.go`}]},double_parentheses_types:{captures:{1:{patterns:[{include:`#type-declarations-without-brackets`},{match:`\\(`,name:`punctuation.definition.begin.bracket.round.go`},{match:`\\)`,name:`punctuation.definition.end.bracket.round.go`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\{`,name:`punctuation.definition.begin.bracket.curly.go`},{match:`}`,name:`punctuation.definition.end.bracket.curly.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`(?\\[\\w]+\\s*(?:/[*/].*)?)$`},{include:`$self`}]},function_param_types:{patterns:[{include:`#struct_variables_types`},{include:`#interface_variables_types`},{include:`#type-declarations-without-brackets`},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.parameter.go`}]}},match:`((?:\\b\\w+,\\s*)+{0,1}\\b\\w+)\\s+(?=(?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[]*\\[]+{0,1}\\b(?:struct|interface)\\b\\s*\\{)`},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.parameter.go`}]}},match:`(?:(?<=\\()|^\\s*)((?:\\b\\w+,\\s*)+(?:/[*/].*)?)$`},{captures:{1:{patterns:[{include:`#delimiters`},{match:`\\w+`,name:`variable.parameter.go`}]},2:{patterns:[{include:`#type-declarations-without-brackets`},{include:`#parameter-variable-types`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`((?:\\b\\w+,\\s*)+{0,1}\\b\\w+)\\s+((?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}(?:[]*.\\[\\w]+{0,1}(?:\\bfunc\\b\\([^)]+{0,1}\\)(?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\s*)+(?:[]*.\\[\\w]+|\\([^)]+{0,1}\\))?|(?:[]*\\[]+{0,1}[*.\\w]+(?:\\[[^]]+])?[*.\\w]+{0,1})+))`},{begin:`([*.\\w]+)?(\\[)`,beginCaptures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]},2:{name:`punctuation.definition.begin.bracket.square.go`}},end:`]`,endCaptures:{0:{name:`punctuation.definition.end.bracket.square.go`}},patterns:[{include:`#generic_param_types`}]},{begin:`\\(`,beginCaptures:{0:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`#function_param_types`}]},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`([.\\w]+)`},{include:`$self`}]},functions:{begin:`\\b(func)\\b(?=\\()`,beginCaptures:{1:{name:`keyword.function.go`}},end:`(?<=\\))(\\s*(?:[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(\\s*(?:[]*\\[]+{0,1}[*.\\w]+)?(?:\\[(?:[*.\\w]+{0,1}(?:\\[[^]]+{0,1}])?(?:,\\s+)?)+]|\\([^)]+{0,1}\\))?[*.\\w]+{0,1}\\s*(?=\\{)|\\s*(?:[]*\\[]+{0,1}(?!\\bfunc\\b)[*.\\w]+(?:\\[(?:[*.\\w]+{0,1}(?:\\[[^]]+{0,1}])?(?:,\\s+)?)+])?[*.\\w]+{0,1}|\\([^)]+{0,1}\\)))?`,endCaptures:{1:{patterns:[{include:`#type-declarations`}]},2:{patterns:[{include:`#type-declarations-without-brackets`},{include:`#parameter-variable-types`},{match:`\\w+`,name:`entity.name.type.go`}]}},patterns:[{include:`#parameter-variable-types`}]},functions_inline:{captures:{1:{name:`keyword.function.go`},2:{patterns:[{include:`#type-declarations-without-brackets`},{begin:`\\(`,beginCaptures:{0:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`#function_param_types`},{include:`$self`}]},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\{`,name:`punctuation.definition.begin.bracket.curly.go`},{match:`}`,name:`punctuation.definition.end.bracket.curly.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`\\b(func)\\b(\\([^/]*?\\)\\s+\\([^/]*?\\))\\s+(?=\\{)`},generic_param_types:{patterns:[{include:`#struct_variables_types`},{include:`#interface_variables_types`},{include:`#type-declarations-without-brackets`},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.parameter.go`}]}},match:`((?:\\b\\w+,\\s*)+{0,1}\\b\\w+)\\s+(?=(?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[]*\\[]+{0,1}\\b(?:struct|interface)\\b\\s*\\{)`},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.parameter.go`}]}},match:`(?:(?<=\\()|^\\s*)((?:\\b\\w+,\\s*)+(?:/[*/].*)?)$`},{captures:{1:{patterns:[{include:`#delimiters`},{match:`\\w+`,name:`variable.parameter.go`}]},2:{patterns:[{include:`#type-declarations-without-brackets`},{include:`#parameter-variable-types`},{match:`\\w+`,name:`entity.name.type.go`}]},3:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`((?:\\b\\w+,\\s*)+{0,1}\\b\\w+)\\s+((?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}(?:[]*.\\[\\w]+{0,1}(?:\\bfunc\\b\\([^)]+{0,1}\\)(?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\s*)+(?:[*.\\w]+|\\([^)]+{0,1}\\))?|(?:(?:[*.~\\w]+|\\[(?:[*.\\w]+{0,1}(?:\\[[^]]+{0,1}])?(?:,\\s+)?)+])[*.\\w]+{0,1})+))`},{begin:`([*.\\w]+)?(\\[)`,beginCaptures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]},2:{name:`punctuation.definition.begin.bracket.square.go`}},end:`]`,endCaptures:{0:{name:`punctuation.definition.end.bracket.square.go`}},patterns:[{include:`#generic_param_types`}]},{begin:`\\(`,beginCaptures:{0:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`#function_param_types`}]},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`\\b([.\\w]+)`},{include:`$self`}]},generic_types:{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]},2:{patterns:[{include:`#parameter-variable-types`}]}},match:`([*.\\w]+)(\\[[^]]+{0,1}])`},"group-functions":{patterns:[{include:`#function_declaration`},{include:`#functions_inline`},{include:`#functions`},{include:`#built_in_functions`},{include:`#support_functions`}]},"group-types":{patterns:[{include:`#other_struct_interface_expressions`},{include:`#type_assertion_inline`},{include:`#struct_variables_types`},{include:`#interface_variables_types`},{include:`#single_type`},{include:`#multi_types`},{include:`#struct_interface_declaration`},{include:`#double_parentheses_types`},{include:`#switch_types`},{include:`#type-declarations`}]},"group-variables":{patterns:[{include:`#const_assignment`},{include:`#var_assignment`},{include:`#variable_assignment`},{include:`#label_loop_variables`},{include:`#slice_index_variables`},{include:`#property_variables`},{include:`#switch_variables`},{include:`#other_variables`}]},hover:{patterns:[{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.property.go`}]},2:{patterns:[{match:`\\binvalid\\b\\s+\\btype\\b`,name:`invalid.field.go`},{include:`#type-declarations-without-brackets`},{include:`#parameter-variable-types`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`(?<=^\\bfield\\b)\\s+([*.\\w]+)\\s+([\\s\\S]+)`},{captures:{1:{patterns:[{include:`#type-declarations-without-brackets`},{include:`#parameter-variable-types`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`(?<=^\\breturns\\b)\\s+([\\s\\S]+)`}]},import:{patterns:[{begin:`\\b(import)\\s+`,beginCaptures:{1:{name:`keyword.control.import.go`}},end:`(?!\\G)`,patterns:[{include:`#imports`}]}]},imports:{patterns:[{captures:{1:{patterns:[{include:`#delimiters`},{match:`\\w+`,name:`variable.other.import.go`}]},2:{name:`string.quoted.double.go`},3:{name:`punctuation.definition.string.begin.go`},4:{name:`entity.name.import.go`},5:{name:`punctuation.definition.string.end.go`}},match:`(\\s*[.\\w]+)?\\s*((")([^"]*)("))`},{begin:`\\(`,beginCaptures:{0:{name:`punctuation.definition.imports.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.imports.end.bracket.round.go`}},patterns:[{include:`#comments`},{include:`#imports`}]},{include:`$self`}]},interface_variables_types:{begin:`\\b(interface)\\b\\s*(\\{)`,beginCaptures:{1:{name:`keyword.interface.go`},2:{name:`punctuation.definition.begin.bracket.curly.go`}},end:`}`,endCaptures:{0:{name:`punctuation.definition.end.bracket.curly.go`}},patterns:[{include:`#interface_variables_types_field`},{include:`$self`}]},interface_variables_types_field:{patterns:[{include:`#support_functions`},{include:`#type-declarations-without-brackets`},{begin:`([*.\\w]+)?(\\[)`,beginCaptures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]},2:{name:`punctuation.definition.begin.bracket.square.go`}},end:`]`,endCaptures:{0:{name:`punctuation.definition.end.bracket.square.go`}},patterns:[{include:`#generic_param_types`}]},{begin:`\\(`,beginCaptures:{0:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`#function_param_types`}]},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`([.\\w]+)`}]},keywords:{patterns:[{match:`\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\b`,name:`keyword.control.go`},{match:`\\bchan\\b`,name:`keyword.channel.go`},{match:`\\bconst\\b`,name:`keyword.const.go`},{match:`\\bvar\\b`,name:`keyword.var.go`},{match:`\\bfunc\\b`,name:`keyword.function.go`},{match:`\\binterface\\b`,name:`keyword.interface.go`},{match:`\\bmap\\b`,name:`keyword.map.go`},{match:`\\bstruct\\b`,name:`keyword.struct.go`},{match:`\\bimport\\b`,name:`keyword.control.import.go`},{match:`\\btype\\b`,name:`keyword.type.go`}]},label_loop_variables:{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.label.go`}]}},match:`^(\\s*\\w+:\\s*|\\s*\\b(?:break|goto|continue)\\b\\s+\\w+(?:\\s*/[*/]\\s*.*)?)$`},language_constants:{captures:{1:{name:`constant.language.boolean.go`},2:{name:`constant.language.null.go`},3:{name:`constant.language.iota.go`}},match:`\\b(?:(true|false)|(nil)|(iota))\\b`},map_types:{begin:`\\b(map)\\b(\\[)`,beginCaptures:{1:{name:`keyword.map.go`},2:{name:`punctuation.definition.begin.bracket.square.go`}},end:`(])((?:[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}(?![]*\\[]+{0,1}\\b(?:func|struct|map)\\b)[]*\\[]+{0,1}[.\\w]+(?:\\[(?:[]*.\\[{}\\w]+(?:,\\s*[]*.\\[{}\\w]+)*)?])?)?`,endCaptures:{1:{name:`punctuation.definition.end.bracket.square.go`},2:{patterns:[{include:`#type-declarations-without-brackets`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},patterns:[{include:`#type-declarations-without-brackets`},{include:`#parameter-variable-types`},{include:`#functions`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\{`,name:`punctuation.definition.begin.bracket.curly.go`},{match:`}`,name:`punctuation.definition.end.bracket.curly.go`},{match:`\\(`,name:`punctuation.definition.begin.bracket.round.go`},{match:`\\)`,name:`punctuation.definition.end.bracket.round.go`},{match:`\\w+`,name:`entity.name.type.go`}]},multi_types:{begin:`\\b(type)\\b\\s*(\\()`,beginCaptures:{1:{name:`keyword.type.go`},2:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`#struct_variables_types`},{include:`#interface_variables_types`},{include:`#type-declarations-without-brackets`},{include:`#parameter-variable-types`},{match:`\\w+`,name:`entity.name.type.go`}]},numeric_literals:{captures:{0:{patterns:[{begin:`(?=.)`,end:`\\n|$`,patterns:[{captures:{1:{name:`constant.numeric.decimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},2:{name:`punctuation.separator.constant.numeric.go`},3:{name:`constant.numeric.decimal.point.go`},4:{name:`constant.numeric.decimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},5:{name:`punctuation.separator.constant.numeric.go`},6:{name:`keyword.other.unit.exponent.decimal.go`},7:{name:`keyword.operator.plus.exponent.decimal.go`},8:{name:`keyword.operator.minus.exponent.decimal.go`},9:{name:`constant.numeric.exponent.decimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},10:{name:`keyword.other.unit.imaginary.go`},11:{name:`constant.numeric.decimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},12:{name:`punctuation.separator.constant.numeric.go`},13:{name:`keyword.other.unit.exponent.decimal.go`},14:{name:`keyword.operator.plus.exponent.decimal.go`},15:{name:`keyword.operator.minus.exponent.decimal.go`},16:{name:`constant.numeric.exponent.decimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},17:{name:`keyword.other.unit.imaginary.go`},18:{name:`constant.numeric.decimal.point.go`},19:{name:`constant.numeric.decimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},20:{name:`punctuation.separator.constant.numeric.go`},21:{name:`keyword.other.unit.exponent.decimal.go`},22:{name:`keyword.operator.plus.exponent.decimal.go`},23:{name:`keyword.operator.minus.exponent.decimal.go`},24:{name:`constant.numeric.exponent.decimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},25:{name:`keyword.other.unit.imaginary.go`},26:{name:`keyword.other.unit.hexadecimal.go`},27:{name:`constant.numeric.hexadecimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},28:{name:`punctuation.separator.constant.numeric.go`},29:{name:`constant.numeric.hexadecimal.go`},30:{name:`constant.numeric.hexadecimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},31:{name:`punctuation.separator.constant.numeric.go`},32:{name:`keyword.other.unit.exponent.hexadecimal.go`},33:{name:`keyword.operator.plus.exponent.hexadecimal.go`},34:{name:`keyword.operator.minus.exponent.hexadecimal.go`},35:{name:`constant.numeric.exponent.hexadecimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},36:{name:`keyword.other.unit.imaginary.go`},37:{name:`keyword.other.unit.hexadecimal.go`},38:{name:`constant.numeric.hexadecimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},39:{name:`punctuation.separator.constant.numeric.go`},40:{name:`keyword.other.unit.exponent.hexadecimal.go`},41:{name:`keyword.operator.plus.exponent.hexadecimal.go`},42:{name:`keyword.operator.minus.exponent.hexadecimal.go`},43:{name:`constant.numeric.exponent.hexadecimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},44:{name:`keyword.other.unit.imaginary.go`},45:{name:`keyword.other.unit.hexadecimal.go`},46:{name:`constant.numeric.hexadecimal.go`},47:{name:`constant.numeric.hexadecimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},48:{name:`punctuation.separator.constant.numeric.go`},49:{name:`keyword.other.unit.exponent.hexadecimal.go`},50:{name:`keyword.operator.plus.exponent.hexadecimal.go`},51:{name:`keyword.operator.minus.exponent.hexadecimal.go`},52:{name:`constant.numeric.exponent.hexadecimal.go`,patterns:[{match:`(?<=\\h)_(?=\\h)`,name:`punctuation.separator.constant.numeric.go`}]},53:{name:`keyword.other.unit.imaginary.go`}},match:`\\G(?:(?:(?:(?:(?:(?=[.0-9])(?!0[BOXbox])([0-9](?:[0-9]|((?<=\\h)_(?=\\h)))*)((?<=[0-9])\\.|\\.(?=[0-9]))([0-9](?:[0-9]|((?<=\\h)_(?=\\h)))*)?(?:(?=|<(?!<)|>(?!>))`,name:`keyword.operator.comparison.go`},{match:`(&&|\\|\\||!)`,name:`keyword.operator.logical.go`},{match:`((?:|[-%*+/:^|]|<<|>>|&\\^?)=)`,name:`keyword.operator.assignment.go`},{match:`([-%*+/])`,name:`keyword.operator.arithmetic.go`},{match:`(&(?!\\^)|[\\^|]|&\\^|<<|>>|~)`,name:`keyword.operator.arithmetic.bitwise.go`},{match:`\\.\\.\\.`,name:`keyword.operator.ellipsis.go`}]},other_struct_interface_expressions:{patterns:[{include:`#after_control_variables`},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]},2:{patterns:[{include:`#type-declarations-without-brackets`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\{`,name:`punctuation.definition.begin.bracket.curly.go`},{match:`}`,name:`punctuation.definition.end.bracket.curly.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`\\b(?!(?:struct|interface)\\b)([.\\w]+)(?\\[(?:[^]\\[]|\\g)*])?(?=\\{)`}]},other_variables:{match:`\\w+`,name:`variable.other.go`},package_name:{patterns:[{begin:`\\b(package)\\s+`,beginCaptures:{1:{name:`keyword.package.go`}},end:`(?!\\G)`,patterns:[{match:`\\d\\w*`,name:`invalid.illegal.identifier.go`},{match:`\\w+`,name:`entity.name.type.package.go`}]}]},"parameter-variable-types":{patterns:[{match:`\\{`,name:`punctuation.definition.begin.bracket.curly.go`},{match:`}`,name:`punctuation.definition.end.bracket.curly.go`},{begin:`([*.\\w]+)?(\\[)`,beginCaptures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]},2:{name:`punctuation.definition.begin.bracket.square.go`}},end:`]`,endCaptures:{0:{name:`punctuation.definition.end.bracket.square.go`}},patterns:[{include:`#generic_param_types`}]},{begin:`\\(`,beginCaptures:{0:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`#function_param_types`}]}]},property_variables:{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.property.go`}]}},match:`\\b([.\\w]+:(?!=))`},raw_string_literals:{begin:"`",beginCaptures:{0:{name:`punctuation.definition.string.begin.go`}},end:"`",endCaptures:{0:{name:`punctuation.definition.string.end.go`}},name:`string.quoted.raw.go`,patterns:[{include:`#string_placeholder`}]},runes:{patterns:[{begin:`'`,beginCaptures:{0:{name:`punctuation.definition.string.begin.go`}},end:`'`,endCaptures:{0:{name:`punctuation.definition.string.end.go`}},name:`string.quoted.rune.go`,patterns:[{match:`\\G(\\\\([0-7]{3}|["'\\\\abfnrtv]|x\\h{2}|u\\h{4}|U\\h{8})|.)(?=')`,name:`constant.other.rune.go`},{match:`[^']+`,name:`invalid.illegal.unknown-rune.go`}]}]},single_type:{patterns:[{captures:{1:{name:`keyword.type.go`},2:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]},3:{patterns:[{begin:`\\(`,beginCaptures:{0:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`#function_param_types`},{include:`$self`}]},{include:`#type-declarations`},{include:`#generic_types`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`^\\s*\\b(type)\\b\\s*([*.\\w]+)\\s+(?!(?:=\\s*)?[]*\\[]+{0,1}\\b(?:struct|interface)\\b)([\\s\\S]+)`},{begin:`(?:^|\\s+)\\b(type)\\b\\s*([*.\\w]+)(?=\\[)`,beginCaptures:{1:{name:`keyword.type.go`},2:{patterns:[{include:`#type-declarations-without-brackets`},{match:`\\w+`,name:`entity.name.type.go`}]}},end:`(?<=])(\\s+(?:=\\s*)?(?:[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}(?![]*\\[]+{0,1}\\b(?:struct|interface|func)\\b)[-\\]*.\\[\\w]+(?:,\\s*[]*.\\[\\w]+)*)?`,endCaptures:{1:{patterns:[{include:`#type-declarations-without-brackets`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},patterns:[{include:`#struct_variables_types`},{include:`#type-declarations-without-brackets`},{include:`#parameter-variable-types`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\{`,name:`punctuation.definition.begin.bracket.curly.go`},{match:`}`,name:`punctuation.definition.end.bracket.curly.go`},{match:`\\(`,name:`punctuation.definition.begin.bracket.round.go`},{match:`\\)`,name:`punctuation.definition.end.bracket.round.go`},{match:`\\w+`,name:`entity.name.type.go`}]}]},slice_index_variables:{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.go`}]}},match:`(?<=\\w\\[)((?:\\b[-%\\&*+./<>|\\w]+:|:\\b[-%\\&*+./<>|\\w]+)(?:\\b[-%\\&*+./<>|\\w]+)?(?::\\b[-%\\&*+./<>|\\w]+)?)(?=])`},statements:{patterns:[{include:`#package_name`},{include:`#import`},{include:`#syntax_errors`},{include:`#group-functions`},{include:`#group-types`},{include:`#group-variables`},{include:`#hover`}]},storage_types:{patterns:[{match:`\\bbool\\b`,name:`storage.type.boolean.go`},{match:`\\bbyte\\b`,name:`storage.type.byte.go`},{match:`\\berror\\b`,name:`storage.type.error.go`},{match:`\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\b`,name:`storage.type.numeric.go`},{match:`\\brune\\b`,name:`storage.type.rune.go`},{match:`\\bstring\\b`,name:`storage.type.string.go`},{match:`\\buintptr\\b`,name:`storage.type.uintptr.go`},{match:`\\bany\\b`,name:`entity.name.type.any.go`},{match:`\\bcomparable\\b`,name:`entity.name.type.comparable.go`}]},string_escaped_char:{patterns:[{match:`\\\\([0-7]{3}|["'\\\\abfnrtv]|x\\h{2}|u\\h{4}|U\\h{8})`,name:`constant.character.escape.go`},{match:`\\\\[^"'0-7Uabfnrtuvx]`,name:`invalid.illegal.unknown-escape.go`}]},string_literals:{patterns:[{begin:`"`,beginCaptures:{0:{name:`punctuation.definition.string.begin.go`}},end:`"`,endCaptures:{0:{name:`punctuation.definition.string.end.go`}},name:`string.quoted.double.go`,patterns:[{include:`#string_escaped_char`},{include:`#string_placeholder`}]}]},string_placeholder:{patterns:[{match:`%(\\[\\d+])?([- #+0]{0,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+])\\*?)?(\\[\\d+])?)?))?[%EFGTUXb-gopqstvwx]`,name:`constant.other.placeholder.go`}]},struct_interface_declaration:{captures:{1:{name:`keyword.type.go`},2:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`^\\s*\\b(type)\\b\\s*([.\\w]+)`},struct_variable_types_fields_multi:{patterns:[{begin:`\\b(\\w+(?:,\\s*\\b\\w+)*(?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\s*[]*\\[]+{0,1})\\b(struct)\\b\\s*(\\{)`,beginCaptures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.property.go`}]},2:{name:`keyword.struct.go`},3:{name:`punctuation.definition.begin.bracket.curly.go`}},end:`}`,endCaptures:{0:{name:`punctuation.definition.end.bracket.curly.go`}},patterns:[{include:`#struct_variables_types_fields`},{include:`$self`}]},{begin:`\\b(\\w+(?:,\\s*\\b\\w+)*(?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\s*[]*\\[]+{0,1})\\b(interface)\\b\\s*(\\{)`,beginCaptures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.property.go`}]},2:{name:`keyword.interface.go`},3:{name:`punctuation.definition.begin.bracket.curly.go`}},end:`}`,endCaptures:{0:{name:`punctuation.definition.end.bracket.curly.go`}},patterns:[{include:`#interface_variables_types_field`},{include:`$self`}]},{begin:`\\b(\\w+(?:,\\s*\\b\\w+)*(?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\s*[]*\\[]+{0,1})\\b(func)\\b\\s*(\\()`,beginCaptures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.property.go`}]},2:{name:`keyword.function.go`},3:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{include:`#function_param_types`},{include:`$self`}]},{include:`#parameter-variable-types`}]},struct_variables_types:{begin:`\\b(struct)\\b\\s*(\\{)`,beginCaptures:{1:{name:`keyword.struct.go`},2:{name:`punctuation.definition.begin.bracket.curly.go`}},end:`}`,endCaptures:{0:{name:`punctuation.definition.end.bracket.curly.go`}},patterns:[{include:`#struct_variables_types_fields`},{include:`$self`}]},struct_variables_types_fields:{patterns:[{include:`#struct_variable_types_fields_multi`},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`(?<=\\{)\\s*((?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[]*.\\[\\w]+)\\s*(?=})`},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.property.go`}]},2:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`(?<=\\{)\\s*((?:\\w+,\\s*)+{0,1}\\w+\\s+)((?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[]*.\\[\\w]+)\\s*(?=})`},{captures:{1:{patterns:[{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.property.go`}]},2:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:'((?:\\w+,\\s*)+{0,1}\\w+\\s+)?((?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[^"/`\\s]+;?)'}]}},match:'(?<=\\{)((?:\\s*(?:(?:\\w+,\\s*)+{0,1}\\w+\\s+)?(?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[^"/`\\s]+;?)+)\\s*(?=})'},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:'((?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[*.\\w]+\\s*)(?:(?=["/`])|$)'},{captures:{1:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.property.go`}]},2:{patterns:[{include:`#type-declarations-without-brackets`},{include:`#parameter-variable-types`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:'\\b(\\w+(?:\\s*,\\s*\\b\\w+)*)\\s*([^"/`]+)'}]},support_functions:{captures:{1:{name:`entity.name.function.support.go`},2:{patterns:[{include:`#type-declarations`},{match:`\\d\\w*`,name:`invalid.illegal.identifier.go`},{match:`\\w+`,name:`entity.name.function.support.go`}]},3:{patterns:[{include:`#type-declarations-without-brackets`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\{`,name:`punctuation.definition.begin.bracket.curly.go`},{match:`}`,name:`punctuation.definition.end.bracket.curly.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`(?:((?<=\\.)\\b\\w+)|\\b(\\w+))(?\\[(?:[^]\\[]|\\g)*])?(?=\\()`},switch_types:{begin:`(?<=\\bswitch\\b)\\s*(\\w+\\s*:=)?\\s*([-\\]%\\&(-+./<>\\[|\\w]+)(\\.\\(\\btype\\b\\)\\s*)(\\{)`,beginCaptures:{1:{patterns:[{include:`#operators`},{match:`\\w+`,name:`variable.other.assignment.go`}]},2:{patterns:[{include:`#support_functions`},{include:`#type-declarations`},{match:`\\w+`,name:`variable.other.go`}]},3:{patterns:[{include:`#delimiters`},{include:`#brackets`},{match:`\\btype\\b`,name:`keyword.type.go`}]},4:{name:`punctuation.definition.begin.bracket.curly.go`}},end:`}`,endCaptures:{0:{name:`punctuation.definition.end.bracket.curly.go`}},patterns:[{captures:{1:{name:`keyword.control.go`},2:{patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]},3:{name:`punctuation.other.colon.go`},4:{patterns:[{include:`#comments`}]}},match:`^\\s*\\b(case)\\b\\s+([!*,.<=>\\w\\s]+)(:)(\\s*/[*/]\\s*.*)?$`},{begin:`\\bcase\\b`,beginCaptures:{0:{name:`keyword.control.go`}},end:`:`,endCaptures:{0:{name:`punctuation.other.colon.go`}},patterns:[{include:`#type-declarations`},{match:`\\w+`,name:`entity.name.type.go`}]},{include:`$self`}]},switch_variables:{patterns:[{captures:{1:{name:`keyword.control.go`},2:{patterns:[{include:`#type-declarations`},{include:`#support_functions`},{include:`#variable_assignment`},{match:`\\w+`,name:`variable.other.go`}]}},match:`^\\s*\\b(case)\\b\\s+([\\s\\S]+:\\s*(?:/[*/].*)?)$`},{begin:`(?<=\\bswitch\\b)\\s*((?:[.\\w]+(?:\\s*[-!%\\&+,/:<=>|]+\\s*[.\\w]+)*\\s*[-!%\\&+,/:<=>|]+)?\\s*[-\\]%\\&(-+./<>\\[|\\w]+{0,1}\\s*(?:;\\s*[-\\]%\\&(-+./<>\\[|\\w]+\\s*)?)(\\{)`,beginCaptures:{1:{patterns:[{include:`#support_functions`},{include:`#type-declarations`},{include:`#variable_assignment`},{match:`\\w+`,name:`variable.other.go`}]},2:{name:`punctuation.definition.begin.bracket.curly.go`}},end:`}`,endCaptures:{0:{name:`punctuation.definition.end.bracket.curly.go`}},patterns:[{begin:`\\bcase\\b`,beginCaptures:{0:{name:`keyword.control.go`}},end:`:`,endCaptures:{0:{name:`punctuation.other.colon.go`}},patterns:[{include:`#support_functions`},{include:`#type-declarations`},{include:`#variable_assignment`},{match:`\\w+`,name:`variable.other.go`}]},{include:`$self`}]}]},syntax_errors:{patterns:[{captures:{1:{name:`invalid.illegal.slice.go`}},match:`\\[](\\s+)`},{match:`\\b0[0-7]*[89]\\d*\\b`,name:`invalid.illegal.numeric.go`}]},terminators:{match:`;`,name:`punctuation.terminator.go`},"type-declarations":{patterns:[{include:`#language_constants`},{include:`#comments`},{include:`#map_types`},{include:`#brackets`},{include:`#delimiters`},{include:`#keywords`},{include:`#operators`},{include:`#runes`},{include:`#storage_types`},{include:`#raw_string_literals`},{include:`#string_literals`},{include:`#numeric_literals`},{include:`#terminators`}]},"type-declarations-without-brackets":{patterns:[{include:`#language_constants`},{include:`#comments`},{include:`#map_types`},{include:`#delimiters`},{include:`#keywords`},{include:`#operators`},{include:`#runes`},{include:`#storage_types`},{include:`#raw_string_literals`},{include:`#string_literals`},{include:`#numeric_literals`},{include:`#terminators`}]},type_assertion_inline:{captures:{1:{name:`keyword.type.go`},2:{patterns:[{include:`#type-declarations-without-brackets`},{match:`\\(`,name:`punctuation.definition.begin.bracket.round.go`},{match:`\\)`,name:`punctuation.definition.end.bracket.round.go`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\{`,name:`punctuation.definition.begin.bracket.curly.go`},{match:`}`,name:`punctuation.definition.end.bracket.curly.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`(?<=\\.\\()(?:\\b(type)\\b|((?:\\s*[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[]*\\[]+{0,1}[.\\w]+(?:\\[(?:[]*.\\[{}\\w]+(?:,\\s*[]*.\\[{}\\w]+)*)?])?))(?=\\))`},var_assignment:{patterns:[{captures:{1:{patterns:[{include:`#delimiters`},{match:`\\w+`,name:`variable.other.assignment.go`}]},2:{patterns:[{include:`#type-declarations-without-brackets`},{include:`#generic_types`},{match:`\\(`,name:`punctuation.definition.begin.bracket.round.go`},{match:`\\)`,name:`punctuation.definition.end.bracket.round.go`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`(?<=\\bvar\\b)\\s*\\b([.\\w]+(?:,\\s*[.\\w]+)*)\\s*((?:(?:[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?![]*\\[]+{0,1}\\b(?:struct|func|map)\\b)(?:[]*.\\[\\w]+(?:,\\s*[]*.\\[\\w]+)*)?\\s*=?)?`},{begin:`(?<=\\bvar\\b)\\s*(\\()`,beginCaptures:{1:{name:`punctuation.definition.begin.bracket.round.go`}},end:`\\)`,endCaptures:{0:{name:`punctuation.definition.end.bracket.round.go`}},patterns:[{captures:{1:{patterns:[{include:`#delimiters`},{match:`\\w+`,name:`variable.other.assignment.go`}]},2:{patterns:[{include:`#type-declarations-without-brackets`},{include:`#generic_types`},{match:`\\(`,name:`punctuation.definition.begin.bracket.round.go`},{match:`\\)`,name:`punctuation.definition.end.bracket.round.go`},{match:`\\[`,name:`punctuation.definition.begin.bracket.square.go`},{match:`]`,name:`punctuation.definition.end.bracket.square.go`},{match:`\\w+`,name:`entity.name.type.go`}]}},match:`^\\s*\\b([.\\w]+(?:,\\s*[.\\w]+)*)\\s*((?:(?:[]*\\[]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?![]*\\[]+{0,1}\\b(?:struct|func|map)\\b)(?:[]*.\\[\\w]+(?:,\\s*[]*.\\[\\w]+)*)?\\s*=?)?`},{include:`$self`}]}]},variable_assignment:{patterns:[{captures:{0:{patterns:[{include:`#delimiters`},{match:`\\d\\w*`,name:`invalid.illegal.identifier.go`},{match:`\\w+`,name:`variable.other.assignment.go`}]}},match:`\\b\\w+(?:,\\s*\\w+)*(?=\\s*:=)`},{captures:{0:{patterns:[{include:`#delimiters`},{include:`#operators`},{match:`\\d\\w*`,name:`invalid.illegal.identifier.go`},{match:`\\w+`,name:`variable.other.assignment.go`}]}},match:`\\b[*.\\w]+(?:,\\s*[*.\\w]+)*(?=\\s*=(?!=))`}]}},scopeName:`source.go`},rust:{displayName:`Rust`,name:`rust`,patterns:[{begin:`(<)(\\[)`,beginCaptures:{1:{name:`punctuation.brackets.angle.rust`},2:{name:`punctuation.brackets.square.rust`}},end:`>`,endCaptures:{0:{name:`punctuation.brackets.angle.rust`}},patterns:[{include:`#block-comments`},{include:`#comments`},{include:`#gtypes`},{include:`#lvariables`},{include:`#lifetimes`},{include:`#punctuation`},{include:`#types`}]},{captures:{1:{name:`keyword.operator.macro.dollar.rust`},3:{name:`keyword.other.crate.rust`},4:{name:`entity.name.type.metavariable.rust`},6:{name:`keyword.operator.key-value.rust`},7:{name:`variable.other.metavariable.specifier.rust`}},match:`(\\$)((crate)|([A-Z]\\w*))(\\s*(:)\\s*(block|expr(?:_2021)?|ident|item|lifetime|literal|meta|pat(?:_param)?|path|stmt|tt|ty|vis)\\b)?`,name:`meta.macro.metavariable.type.rust`,patterns:[{include:`#keywords`}]},{captures:{1:{name:`keyword.operator.macro.dollar.rust`},2:{name:`variable.other.metavariable.name.rust`},4:{name:`keyword.operator.key-value.rust`},5:{name:`variable.other.metavariable.specifier.rust`}},match:`(\\$)([a-z]\\w*)(\\s*(:)\\s*(block|expr(?:_2021)?|ident|item|lifetime|literal|meta|pat(?:_param)?|path|stmt|tt|ty|vis)\\b)?`,name:`meta.macro.metavariable.rust`,patterns:[{include:`#keywords`}]},{captures:{1:{name:`entity.name.function.macro.rules.rust`},3:{name:`entity.name.function.macro.rust`},4:{name:`entity.name.type.macro.rust`},5:{name:`punctuation.brackets.curly.rust`}},match:`\\b(macro_rules!)\\s+(([0-9_a-z]+)|([A-Z][0-9_a-z]*))\\s+(\\{)`,name:`meta.macro.rules.rust`},{captures:{1:{name:`storage.type.rust`},2:{name:`entity.name.module.rust`}},match:`(mod)\\s+((?:r#(?!crate|[Ss]elf|super))?[a-z][0-9A-Z_a-z]*)`},{begin:`\\b(extern)\\s+(crate)`,beginCaptures:{1:{name:`storage.type.rust`},2:{name:`keyword.other.crate.rust`}},end:`;`,endCaptures:{0:{name:`punctuation.semi.rust`}},name:`meta.import.rust`,patterns:[{include:`#block-comments`},{include:`#comments`},{include:`#keywords`},{include:`#punctuation`}]},{begin:`\\b(use)\\s`,beginCaptures:{1:{name:`keyword.other.rust`}},end:`;`,endCaptures:{0:{name:`punctuation.semi.rust`}},name:`meta.use.rust`,patterns:[{include:`#block-comments`},{include:`#comments`},{include:`#keywords`},{include:`#namespaces`},{include:`#punctuation`},{include:`#types`},{include:`#lvariables`}]},{include:`#block-comments`},{include:`#comments`},{include:`#attributes`},{include:`#lvariables`},{include:`#constants`},{include:`#gtypes`},{include:`#functions`},{include:`#types`},{include:`#keywords`},{include:`#lifetimes`},{include:`#macros`},{include:`#namespaces`},{include:`#punctuation`},{include:`#strings`},{include:`#variables`}],repository:{attributes:{begin:`(#)(!?)(\\[)`,beginCaptures:{1:{name:`punctuation.definition.attribute.rust`},3:{name:`punctuation.brackets.attribute.rust`}},end:`]`,endCaptures:{0:{name:`punctuation.brackets.attribute.rust`}},name:`meta.attribute.rust`,patterns:[{include:`#block-comments`},{include:`#comments`},{include:`#keywords`},{include:`#lifetimes`},{include:`#punctuation`},{include:`#strings`},{include:`#gtypes`},{include:`#types`}]},"block-comments":{patterns:[{match:`/\\*\\*/`,name:`comment.block.rust`},{begin:`/\\*\\*`,end:`\\*/`,name:`comment.block.documentation.rust`,patterns:[{include:`#block-comments`}]},{begin:`/\\*(?!\\*)`,end:`\\*/`,name:`comment.block.rust`,patterns:[{include:`#block-comments`}]}]},comments:{patterns:[{captures:{1:{name:`punctuation.definition.comment.rust`}},match:`(///).*$`,name:`comment.line.documentation.rust`},{captures:{1:{name:`punctuation.definition.comment.rust`}},match:`(//).*$`,name:`comment.line.double-slash.rust`}]},constants:{patterns:[{match:`\\b[A-Z]{2}[0-9A-Z_]*\\b`,name:`constant.other.caps.rust`},{captures:{1:{name:`storage.type.rust`},2:{name:`constant.other.caps.rust`}},match:`\\b(const)\\s+([A-Z][0-9A-Z_a-z]*)\\b`},{captures:{1:{name:`punctuation.separator.dot.decimal.rust`},2:{name:`keyword.operator.exponent.rust`},3:{name:`keyword.operator.exponent.sign.rust`},4:{name:`constant.numeric.decimal.exponent.mantissa.rust`},5:{name:`entity.name.type.numeric.rust`}},match:`\\b\\d[_\\d]*(\\.?)[_\\d]*(?:([Ee])([-+]?)([_\\d]+))?(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b`,name:`constant.numeric.decimal.rust`},{captures:{1:{name:`entity.name.type.numeric.rust`}},match:`\\b0x[A-F_a-f\\d]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b`,name:`constant.numeric.hex.rust`},{captures:{1:{name:`entity.name.type.numeric.rust`}},match:`\\b0o[0-7_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b`,name:`constant.numeric.oct.rust`},{captures:{1:{name:`entity.name.type.numeric.rust`}},match:`\\b0b[01_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b`,name:`constant.numeric.bin.rust`},{match:`\\b(true|false)\\b`,name:`constant.language.bool.rust`}]},escapes:{captures:{1:{name:`constant.character.escape.backslash.rust`},2:{name:`constant.character.escape.bit.rust`},3:{name:`constant.character.escape.unicode.rust`},4:{name:`constant.character.escape.unicode.punctuation.rust`},5:{name:`constant.character.escape.unicode.punctuation.rust`}},match:`(\\\\)(?:(x[0-7][A-Fa-f\\d])|(u(\\{)[A-Fa-f\\d]{4,6}(}))|.)`,name:`constant.character.escape.rust`},functions:{patterns:[{captures:{1:{name:`keyword.other.rust`},2:{name:`punctuation.brackets.round.rust`}},match:`\\b(pub)(\\()`},{begin:`\\b(fn)\\s+((?:r#(?!crate|[Ss]elf|super))?[0-9A-Z_a-z]+)((\\()|(<))`,beginCaptures:{1:{name:`keyword.other.fn.rust`},2:{name:`entity.name.function.rust`},4:{name:`punctuation.brackets.round.rust`},5:{name:`punctuation.brackets.angle.rust`}},end:`(\\{)|(;)`,endCaptures:{1:{name:`punctuation.brackets.curly.rust`},2:{name:`punctuation.semi.rust`}},name:`meta.function.definition.rust`,patterns:[{include:`#block-comments`},{include:`#comments`},{include:`#keywords`},{include:`#lvariables`},{include:`#constants`},{include:`#gtypes`},{include:`#functions`},{include:`#lifetimes`},{include:`#macros`},{include:`#namespaces`},{include:`#punctuation`},{include:`#strings`},{include:`#types`},{include:`#variables`}]},{begin:`((?:r#(?!crate|[Ss]elf|super))?[0-9A-Z_a-z]+)(\\()`,beginCaptures:{1:{name:`entity.name.function.rust`},2:{name:`punctuation.brackets.round.rust`}},end:`\\)`,endCaptures:{0:{name:`punctuation.brackets.round.rust`}},name:`meta.function.call.rust`,patterns:[{include:`#block-comments`},{include:`#comments`},{include:`#attributes`},{include:`#keywords`},{include:`#lvariables`},{include:`#constants`},{include:`#gtypes`},{include:`#functions`},{include:`#lifetimes`},{include:`#macros`},{include:`#namespaces`},{include:`#punctuation`},{include:`#strings`},{include:`#types`},{include:`#variables`}]},{begin:`((?:r#(?!crate|[Ss]elf|super))?[0-9A-Z_a-z]+)(?=::<.*>\\()`,beginCaptures:{1:{name:`entity.name.function.rust`}},end:`\\)`,endCaptures:{0:{name:`punctuation.brackets.round.rust`}},name:`meta.function.call.rust`,patterns:[{include:`#block-comments`},{include:`#comments`},{include:`#attributes`},{include:`#keywords`},{include:`#lvariables`},{include:`#constants`},{include:`#gtypes`},{include:`#functions`},{include:`#lifetimes`},{include:`#macros`},{include:`#namespaces`},{include:`#punctuation`},{include:`#strings`},{include:`#types`},{include:`#variables`}]}]},gtypes:{patterns:[{match:`\\b(Some|None)\\b`,name:`entity.name.type.option.rust`},{match:`\\b(Ok|Err)\\b`,name:`entity.name.type.result.rust`}]},interpolations:{captures:{1:{name:`punctuation.definition.interpolation.rust`},2:{name:`punctuation.definition.interpolation.rust`}},match:`(\\{)[^"{}]*(})`,name:`meta.interpolation.rust`},keywords:{patterns:[{match:`\\b(await|break|continue|do|else|for|if|loop|match|return|try|while|yield)\\b`,name:`keyword.control.rust`},{match:`\\b(extern|let|macro|mod)\\b`,name:`keyword.other.rust storage.type.rust`},{match:`\\b(const)\\b`,name:`storage.modifier.rust`},{match:`\\b(type)\\b`,name:`keyword.declaration.type.rust storage.type.rust`},{match:`\\b(enum)\\b`,name:`keyword.declaration.enum.rust storage.type.rust`},{match:`\\b(trait)\\b`,name:`keyword.declaration.trait.rust storage.type.rust`},{match:`\\b(struct)\\b`,name:`keyword.declaration.struct.rust storage.type.rust`},{match:`\\b(abstract|static)\\b`,name:`storage.modifier.rust`},{match:`\\b(as|async|become|box|dyn|move|final|gen|impl|in|override|priv|pub|ref|typeof|union|unsafe|unsized|use|virtual|where)\\b`,name:`keyword.other.rust`},{match:`\\bfn\\b`,name:`keyword.other.fn.rust`},{match:`\\bcrate\\b`,name:`keyword.other.crate.rust`},{match:`\\bmut\\b`,name:`storage.modifier.mut.rust`},{match:`([\\^|]|\\|\\||&&|<<|>>|!)(?!=)`,name:`keyword.operator.logical.rust`},{match:`&(?![\\&=])`,name:`keyword.operator.borrow.and.rust`},{match:`((?:[-%\\&*+/^|]|<<|>>)=)`,name:`keyword.operator.assignment.rust`},{match:`(?])=(?![=>])`,name:`keyword.operator.assignment.equal.rust`},{match:`(=(=)?(?!>)|!=|<=|(?=)`,name:`keyword.operator.comparison.rust`},{match:`(([%+]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))`,name:`keyword.operator.math.rust`},{captures:{1:{name:`punctuation.brackets.round.rust`},2:{name:`punctuation.brackets.square.rust`},3:{name:`punctuation.brackets.curly.rust`},4:{name:`keyword.operator.comparison.rust`},5:{name:`punctuation.brackets.round.rust`},6:{name:`punctuation.brackets.square.rust`},7:{name:`punctuation.brackets.curly.rust`}},match:`(?:\\b|(?:(\\))|(])|(})))[\\t ]+([<>])[\\t ]+(?:\\b|(?:(\\()|(\\[)|(\\{)))`},{match:`::`,name:`keyword.operator.namespace.rust`},{captures:{1:{name:`keyword.operator.dereference.rust`}},match:`(\\*)(?=\\w+)`},{match:`@`,name:`keyword.operator.subpattern.rust`},{match:`\\.(?!\\.)`,name:`keyword.operator.access.dot.rust`},{match:`\\.{2}([.=])?`,name:`keyword.operator.range.rust`},{match:`:(?!:)`,name:`keyword.operator.key-value.rust`},{match:`->|<-`,name:`keyword.operator.arrow.skinny.rust`},{match:`=>`,name:`keyword.operator.arrow.fat.rust`},{match:`\\$`,name:`keyword.operator.macro.dollar.rust`},{match:`\\?`,name:`keyword.operator.question.rust`}]},lifetimes:{patterns:[{captures:{1:{name:`punctuation.definition.lifetime.rust`},2:{name:`entity.name.type.lifetime.rust`}},match:`(')([A-Z_a-z][0-9A-Z_a-z]*)(?!')\\b`},{captures:{1:{name:`keyword.operator.borrow.rust`},2:{name:`punctuation.definition.lifetime.rust`},3:{name:`entity.name.type.lifetime.rust`}},match:`(&)(')([A-Z_a-z][0-9A-Z_a-z]*)(?!')\\b`}]},lvariables:{patterns:[{match:`\\b[Ss]elf\\b`,name:`variable.language.self.rust`},{match:`\\bsuper\\b`,name:`variable.language.super.rust`}]},macros:{patterns:[{captures:{2:{name:`entity.name.function.macro.rust`},3:{name:`entity.name.type.macro.rust`}},match:`(([_a-z][0-9A-Z_a-z]*!)|([A-Z_][0-9A-Z_a-z]*!))`,name:`meta.macro.rust`}]},namespaces:{patterns:[{captures:{1:{name:`entity.name.namespace.rust`},2:{name:`keyword.operator.namespace.rust`}},match:`(?]`,name:`punctuation.brackets.angle.rust`}]},strings:{patterns:[{begin:`(b?)(")`,beginCaptures:{1:{name:`string.quoted.byte.raw.rust`},2:{name:`punctuation.definition.string.rust`}},end:`"`,endCaptures:{0:{name:`punctuation.definition.string.rust`}},name:`string.quoted.double.rust`,patterns:[{include:`#escapes`},{include:`#interpolations`}]},{begin:`(b?r)(#*)(")`,beginCaptures:{1:{name:`string.quoted.byte.raw.rust`},2:{name:`punctuation.definition.string.raw.rust`},3:{name:`punctuation.definition.string.rust`}},end:`(")(\\2)`,endCaptures:{1:{name:`punctuation.definition.string.rust`},2:{name:`punctuation.definition.string.raw.rust`}},name:`string.quoted.double.rust`},{begin:`(b)?(')`,beginCaptures:{1:{name:`string.quoted.byte.raw.rust`},2:{name:`punctuation.definition.char.rust`}},end:`'`,endCaptures:{0:{name:`punctuation.definition.char.rust`}},name:`string.quoted.single.char.rust`,patterns:[{include:`#escapes`}]}]},types:{patterns:[{captures:{1:{name:`entity.name.type.numeric.rust`}},match:`(?`,endCaptures:{0:{name:`punctuation.brackets.angle.rust`}},patterns:[{include:`#block-comments`},{include:`#comments`},{include:`#keywords`},{include:`#lvariables`},{include:`#lifetimes`},{include:`#punctuation`},{include:`#types`},{include:`#variables`}]},{match:`\\b(bool|char|str)\\b`,name:`entity.name.type.primitive.rust`},{captures:{1:{name:`keyword.declaration.trait.rust storage.type.rust`},2:{name:`entity.name.type.trait.rust`}},match:`\\b(trait)\\s+(_?[A-Z][0-9A-Z_a-z]*)\\b`},{captures:{1:{name:`keyword.declaration.struct.rust storage.type.rust`},2:{name:`entity.name.type.struct.rust`}},match:`\\b(struct)\\s+(_?[A-Z][0-9A-Z_a-z]*)\\b`},{captures:{1:{name:`keyword.declaration.enum.rust storage.type.rust`},2:{name:`entity.name.type.enum.rust`}},match:`\\b(enum)\\s+(_?[A-Z][0-9A-Z_a-z]*)\\b`},{captures:{1:{name:`keyword.declaration.type.rust storage.type.rust`},2:{name:`entity.name.type.declaration.rust`}},match:`\\b(type)\\s+(_?[A-Z][0-9A-Z_a-z]*)\\b`},{match:`\\b_?[A-Z][0-9A-Z_a-z]*\\b(?!!)`,name:`entity.name.type.rust`}]},variables:{patterns:[{match:`\\b(?>=|//=|\\*\\*=|\\+=|-=|/=|@=|\\*=|%=|~=|\\^=|&=|\\|=|=(?!=)`,name:`keyword.operator.assignment.python`},backticks:{begin:"`",end:"`|(?))`,name:`comment.typehint.punctuation.notation.python`},{match:`([_[:alpha:]]\\w*)`,name:`comment.typehint.variable.notation.python`}]},{include:`#comments-base`}]},"comments-base":{begin:`(#)`,beginCaptures:{1:{name:`punctuation.definition.comment.python`}},end:`$()`,name:`comment.line.number-sign.python`,patterns:[{include:`#codetags`}]},"comments-string-double-three":{begin:`(#)`,beginCaptures:{1:{name:`punctuation.definition.comment.python`}},end:`($|(?="""))`,name:`comment.line.number-sign.python`,patterns:[{include:`#codetags`}]},"comments-string-single-three":{begin:`(#)`,beginCaptures:{1:{name:`punctuation.definition.comment.python`}},end:`($|(?='''))`,name:`comment.line.number-sign.python`,patterns:[{include:`#codetags`}]},"curly-braces":{begin:`\\{`,beginCaptures:{0:{name:`punctuation.definition.dict.begin.python`}},end:`}`,endCaptures:{0:{name:`punctuation.definition.dict.end.python`}},patterns:[{match:`:`,name:`punctuation.separator.dict.python`},{include:`#expression`}]},decorator:{begin:`^\\s*((@))\\s*(?=[_[:alpha:]]\\w*)`,beginCaptures:{1:{name:`entity.name.function.decorator.python`},2:{name:`punctuation.definition.decorator.python`}},end:`(\\))(.*?)(?=\\s*(?:#|$))|(?=[\\n#])`,endCaptures:{1:{name:`punctuation.definition.arguments.end.python`},2:{name:`invalid.illegal.decorator.python`}},name:`meta.function.decorator.python`,patterns:[{include:`#decorator-name`},{include:`#function-arguments`}]},"decorator-name":{patterns:[{include:`#builtin-callables`},{include:`#illegal-object-name`},{captures:{2:{name:`punctuation.separator.period.python`}},match:`([_[:alpha:]]\\w*)|(\\.)`,name:`entity.name.function.decorator.python`},{include:`#line-continuation`},{captures:{1:{name:`invalid.illegal.decorator.python`}},match:`\\s*([^#(.\\\\_[:alpha:]\\s].*?)(?=#|$)`,name:`invalid.illegal.decorator.python`}]},docstring:{patterns:[{begin:`('''|""")`,beginCaptures:{1:{name:`punctuation.definition.string.begin.python`}},end:`(\\1)`,endCaptures:{1:{name:`punctuation.definition.string.end.python`}},name:`string.quoted.docstring.multi.python`,patterns:[{include:`#docstring-prompt`},{include:`#codetags`},{include:`#docstring-guts-unicode`}]},{begin:`([Rr])('''|""")`,beginCaptures:{1:{name:`storage.type.string.python`},2:{name:`punctuation.definition.string.begin.python`}},end:`(\\2)`,endCaptures:{1:{name:`punctuation.definition.string.end.python`}},name:`string.quoted.docstring.raw.multi.python`,patterns:[{include:`#string-consume-escape`},{include:`#docstring-prompt`},{include:`#codetags`}]},{begin:`(["'])`,beginCaptures:{1:{name:`punctuation.definition.string.begin.python`}},end:`(\\1)|(\\n)`,endCaptures:{1:{name:`punctuation.definition.string.end.python`},2:{name:`invalid.illegal.newline.python`}},name:`string.quoted.docstring.single.python`,patterns:[{include:`#codetags`},{include:`#docstring-guts-unicode`}]},{begin:`([Rr])(["'])`,beginCaptures:{1:{name:`storage.type.string.python`},2:{name:`punctuation.definition.string.begin.python`}},end:`(\\2)|(\\n)`,endCaptures:{1:{name:`punctuation.definition.string.end.python`},2:{name:`invalid.illegal.newline.python`}},name:`string.quoted.docstring.raw.single.python`,patterns:[{include:`#string-consume-escape`},{include:`#codetags`}]}]},"docstring-guts-unicode":{patterns:[{include:`#escape-sequence-unicode`},{include:`#escape-sequence`},{include:`#string-line-continuation`}]},"docstring-prompt":{captures:{1:{name:`keyword.control.flow.python`}},match:`(?:^|\\G)\\s*((?:>>>|\\.\\.\\.)\\s)(?=\\s*\\S)`},"docstring-statement":{begin:`^(?=\\s*[Rr]?('''|"""|["']))`,end:`((?<=\\1)|^)(?!\\s*[Rr]?('''|"""|["']))`,patterns:[{include:`#docstring`}]},"double-one-regexp-character-set":{patterns:[{match:`\\[\\^?](?!.*?])`},{begin:`(\\[)(\\^)?(])?`,beginCaptures:{1:{name:`punctuation.character.set.begin.regexp constant.other.set.regexp`},2:{name:`keyword.operator.negation.regexp`},3:{name:`constant.character.set.regexp`}},end:`(]|(?="))|((?=(?)`,beginCaptures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp`},2:{name:`entity.name.tag.named.group.regexp`}},end:`(\\)|(?="))|((?=(?)`,beginCaptures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp`},2:{name:`entity.name.tag.named.group.regexp`}},end:`(\\)|(?="""))`,endCaptures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp`},2:{name:`invalid.illegal.newline.python`}},name:`meta.named.regexp`,patterns:[{include:`#double-three-regexp-expression`},{include:`#comments-string-double-three`}]},"double-three-regexp-parentheses":{begin:`\\(`,beginCaptures:{0:{name:`support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp`}},end:`(\\)|(?="""))`,endCaptures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.end.regexp`},2:{name:`invalid.illegal.newline.python`}},patterns:[{include:`#double-three-regexp-expression`},{include:`#comments-string-double-three`}]},"double-three-regexp-parentheses-non-capturing":{begin:`\\(\\?:`,beginCaptures:{0:{name:`support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp`}},end:`(\\)|(?="""))`,endCaptures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp`},2:{name:`invalid.illegal.newline.python`}},patterns:[{include:`#double-three-regexp-expression`},{include:`#comments-string-double-three`}]},ellipsis:{match:`\\.\\.\\.`,name:`constant.other.ellipsis.python`},"escape-sequence":{match:`\\\\(x\\h{2}|[0-7]{1,3}|["'\\\\abfnrtv])`,name:`constant.character.escape.python`},"escape-sequence-unicode":{patterns:[{match:`\\\\(u\\h{4}|U\\h{8}|N\\{[\\w\\s]+?})`,name:`constant.character.escape.python`}]},expression:{patterns:[{include:`#expression-base`},{include:`#member-access`},{match:`\\b([_[:alpha:]]\\w*)\\b`}]},"expression-bare":{patterns:[{include:`#backticks`},{include:`#illegal-anno`},{include:`#literal`},{include:`#regexp`},{include:`#string`},{include:`#lambda`},{include:`#generator`},{include:`#illegal-operator`},{include:`#operator`},{include:`#curly-braces`},{include:`#item-access`},{include:`#list`},{include:`#odd-function-call`},{include:`#round-braces`},{include:`#function-call`},{include:`#builtin-functions`},{include:`#builtin-types`},{include:`#builtin-exceptions`},{include:`#magic-names`},{include:`#special-names`},{include:`#illegal-names`},{include:`#special-variables`},{include:`#ellipsis`},{include:`#punctuation`},{include:`#line-continuation`}]},"expression-base":{patterns:[{include:`#comments`},{include:`#expression-bare`},{include:`#line-continuation`}]},"f-expression":{patterns:[{include:`#expression-bare`},{include:`#member-access`},{match:`\\b([_[:alpha:]]\\w*)\\b`}]},"fregexp-base-expression":{patterns:[{include:`#fregexp-quantifier`},{include:`#fstring-formatting-braces`},{match:`\\{.*?}`},{include:`#regexp-base-common`}]},"fregexp-quantifier":{match:`\\{\\{(\\d+|\\d+,(\\d+)?|,\\d+)}}`,name:`keyword.operator.quantifier.regexp`},"fstring-fnorm-quoted-multi-line":{begin:`\\b([Ff])([BUbu])?('''|""")`,beginCaptures:{1:{name:`string.interpolated.python string.quoted.multi.python storage.type.string.python`},2:{name:`invalid.illegal.prefix.python`},3:{name:`punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python`}},end:`(\\3)`,endCaptures:{1:{name:`punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python`},2:{name:`invalid.illegal.newline.python`}},name:`meta.fstring.python`,patterns:[{include:`#fstring-guts`},{include:`#fstring-illegal-multi-brace`},{include:`#fstring-multi-brace`},{include:`#fstring-multi-core`}]},"fstring-fnorm-quoted-single-line":{begin:`\\b([Ff])([BUbu])?((["']))`,beginCaptures:{1:{name:`string.interpolated.python string.quoted.single.python storage.type.string.python`},2:{name:`invalid.illegal.prefix.python`},3:{name:`punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python`}},end:`(\\3)|((?^]?[- +]?#?\\d*,?(\\.\\d+)?[%EFGXb-gnosx]?)(?=})`},{include:`#fstring-terminator-multi-tail`}]},"fstring-terminator-multi-tail":{begin:`(=?(?:![ars])?)(:)(?=.*?\\{)`,beginCaptures:{1:{name:`storage.type.format.python`},2:{name:`storage.type.format.python`}},end:`(?=})`,patterns:[{include:`#fstring-illegal-multi-brace`},{include:`#fstring-multi-brace`},{match:`([%EFGXb-gnosx])(?=})`,name:`storage.type.format.python`},{match:`(\\.\\d+)`,name:`storage.type.format.python`},{match:`(,)`,name:`storage.type.format.python`},{match:`(\\d+)`,name:`storage.type.format.python`},{match:`(#)`,name:`storage.type.format.python`},{match:`([- +])`,name:`storage.type.format.python`},{match:`([<=>^])`,name:`storage.type.format.python`},{match:`(\\w)`,name:`storage.type.format.python`}]},"fstring-terminator-single":{patterns:[{match:`(=(![ars])?)(?=})`,name:`storage.type.format.python`},{match:`(=?![ars])(?=})`,name:`storage.type.format.python`},{captures:{1:{name:`storage.type.format.python`},2:{name:`storage.type.format.python`}},match:`(=?(?:![ars])?)(:\\w?[<=>^]?[- +]?#?\\d*,?(\\.\\d+)?[%EFGXb-gnosx]?)(?=})`},{include:`#fstring-terminator-single-tail`}]},"fstring-terminator-single-tail":{begin:`(=?(?:![ars])?)(:)(?=.*?\\{)`,beginCaptures:{1:{name:`storage.type.format.python`},2:{name:`storage.type.format.python`}},end:`(?=})|(?=\\n)`,patterns:[{include:`#fstring-illegal-single-brace`},{include:`#fstring-single-brace`},{match:`([%EFGXb-gnosx])(?=})`,name:`storage.type.format.python`},{match:`(\\.\\d+)`,name:`storage.type.format.python`},{match:`(,)`,name:`storage.type.format.python`},{match:`(\\d+)`,name:`storage.type.format.python`},{match:`(#)`,name:`storage.type.format.python`},{match:`([- +])`,name:`storage.type.format.python`},{match:`([<=>^])`,name:`storage.type.format.python`},{match:`(\\w)`,name:`storage.type.format.python`}]},"function-arguments":{begin:`(\\()`,beginCaptures:{1:{name:`punctuation.definition.arguments.begin.python`}},contentName:`meta.function-call.arguments.python`,end:`(?=\\))(?!\\)\\s*\\()`,patterns:[{match:`(,)`,name:`punctuation.separator.arguments.python`},{captures:{1:{name:`keyword.operator.unpacking.arguments.python`}},match:`(?:(?<=[(,])|^)\\s*(\\*{1,2})`},{include:`#lambda-incomplete`},{include:`#illegal-names`},{captures:{1:{name:`variable.parameter.function-call.python`},2:{name:`keyword.operator.assignment.python`}},match:`\\b([_[:alpha:]]\\w*)\\s*(=)(?!=)`},{match:`=(?!=)`,name:`keyword.operator.assignment.python`},{include:`#expression`},{captures:{1:{name:`punctuation.definition.arguments.end.python`},2:{name:`punctuation.definition.arguments.begin.python`}},match:`\\s*(\\))\\s*(\\()`}]},"function-call":{begin:`\\b(?=([_[:alpha:]]\\w*)\\s*(\\())`,end:`(\\))`,endCaptures:{1:{name:`punctuation.definition.arguments.end.python`}},name:`meta.function-call.python`,patterns:[{include:`#special-variables`},{include:`#function-name`},{include:`#function-arguments`}]},"function-declaration":{begin:`\\s*(?:\\b(async)\\s+)?\\b(def)\\s+(?=[_[:alpha:]]\\p{word}*\\s*\\()`,beginCaptures:{1:{name:`storage.type.function.async.python`},2:{name:`storage.type.function.python`}},end:`(:|(?=[\\n"#']))`,endCaptures:{1:{name:`punctuation.section.function.begin.python`}},name:`meta.function.python`,patterns:[{include:`#function-def-name`},{include:`#parameters`},{include:`#line-continuation`},{include:`#return-annotation`}]},"function-def-name":{patterns:[{include:`#illegal-object-name`},{include:`#builtin-possible-callables`},{match:`\\b([_[:alpha:]]\\w*)\\b`,name:`entity.name.function.python`}]},"function-name":{patterns:[{include:`#builtin-possible-callables`},{match:`\\b([_[:alpha:]]\\w*)\\b`,name:`meta.function-call.generic.python`}]},generator:{begin:`\\bfor\\b`,beginCaptures:{0:{name:`keyword.control.flow.python`}},end:`\\bin\\b`,endCaptures:{0:{name:`keyword.control.flow.python`}},patterns:[{include:`#expression`}]},"illegal-anno":{match:`->`,name:`invalid.illegal.annotation.python`},"illegal-names":{captures:{1:{name:`keyword.control.flow.python`},2:{name:`keyword.control.import.python`}},match:`\\b(?:(and|assert|async|await|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|in|is|(?<=\\.)lambda|lambda(?=\\s*[.=])|nonlocal|not|or|pass|raise|return|try|while|with|yield)|(as|import))\\b`},"illegal-object-name":{match:`\\b(True|False|None)\\b`,name:`keyword.illegal.name.python`},"illegal-operator":{patterns:[{match:`&&|\\|\\||--|\\+\\+`,name:`invalid.illegal.operator.python`},{match:`[$?]`,name:`invalid.illegal.operator.python`},{match:`!\\b`,name:`invalid.illegal.operator.python`}]},import:{patterns:[{begin:`\\b(?>|[\\&^|~])|(\\*\\*|[-%*+]|//|[/@])|(!=|==|>=|<=|[<>])|(:=)`},"parameter-special":{captures:{1:{name:`variable.parameter.function.language.python`},2:{name:`variable.parameter.function.language.special.self.python`},3:{name:`variable.parameter.function.language.special.cls.python`},4:{name:`punctuation.separator.parameters.python`}},match:`\\b((self)|(cls))\\b\\s*(?:(,)|(?=\\)))`},parameters:{begin:`(\\()`,beginCaptures:{1:{name:`punctuation.definition.parameters.begin.python`}},end:`(\\))`,endCaptures:{1:{name:`punctuation.definition.parameters.end.python`}},name:`meta.function.parameters.python`,patterns:[{match:`/`,name:`keyword.operator.positional.parameter.python`},{match:`(\\*\\*?)`,name:`keyword.operator.unpacking.parameter.python`},{include:`#lambda-incomplete`},{include:`#illegal-names`},{include:`#illegal-object-name`},{include:`#parameter-special`},{captures:{1:{name:`variable.parameter.function.language.python`},2:{name:`punctuation.separator.parameters.python`}},match:`([_[:alpha:]]\\w*)\\s*(?:(,)|(?=[\\n#)=]))`},{include:`#comments`},{include:`#loose-default`},{include:`#annotated-parameter`}]},punctuation:{patterns:[{match:`:`,name:`punctuation.separator.colon.python`},{match:`,`,name:`punctuation.separator.element.python`}]},regexp:{patterns:[{include:`#regexp-single-three-line`},{include:`#regexp-double-three-line`},{include:`#regexp-single-one-line`},{include:`#regexp-double-one-line`}]},"regexp-backreference":{captures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp`},2:{name:`entity.name.tag.named.backreference.regexp`},3:{name:`support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp`}},match:`(\\()(\\?P=\\w+(?:\\s+\\p{alnum}+)?)(\\))`,name:`meta.backreference.named.regexp`},"regexp-backreference-number":{captures:{1:{name:`entity.name.tag.backreference.regexp`}},match:`(\\\\[1-9]\\d?)`,name:`meta.backreference.regexp`},"regexp-base-common":{patterns:[{match:`\\.`,name:`support.other.match.any.regexp`},{match:`\\^`,name:`support.other.match.begin.regexp`},{match:`\\$`,name:`support.other.match.end.regexp`},{match:`[*+?]\\??`,name:`keyword.operator.quantifier.regexp`},{match:`\\|`,name:`keyword.operator.disjunction.regexp`},{include:`#regexp-escape-sequence`}]},"regexp-base-expression":{patterns:[{include:`#regexp-quantifier`},{include:`#regexp-base-common`}]},"regexp-charecter-set-escapes":{patterns:[{match:`\\\\[\\\\abfnrtv]`,name:`constant.character.escape.regexp`},{include:`#regexp-escape-special`},{match:`\\\\([0-7]{1,3})`,name:`constant.character.escape.regexp`},{include:`#regexp-escape-character`},{include:`#regexp-escape-unicode`},{include:`#regexp-escape-catchall`}]},"regexp-double-one-line":{begin:`\\b(([Uu]r)|([Bb]r)|(r[Bb]?))(")`,beginCaptures:{2:{name:`invalid.deprecated.prefix.python`},3:{name:`storage.type.string.python`},4:{name:`storage.type.string.python`},5:{name:`punctuation.definition.string.begin.python`}},end:`(")|(?)`,beginCaptures:{1:{name:`punctuation.separator.annotation.result.python`}},end:`(?=:)`,patterns:[{include:`#expression`}]},"round-braces":{begin:`\\(`,beginCaptures:{0:{name:`punctuation.parenthesis.begin.python`}},end:`\\)`,endCaptures:{0:{name:`punctuation.parenthesis.end.python`}},patterns:[{include:`#expression`}]},semicolon:{patterns:[{match:`;$`,name:`invalid.deprecated.semicolon.python`}]},"single-one-regexp-character-set":{patterns:[{match:`\\[\\^?](?!.*?])`},{begin:`(\\[)(\\^)?(])?`,beginCaptures:{1:{name:`punctuation.character.set.begin.regexp constant.other.set.regexp`},2:{name:`keyword.operator.negation.regexp`},3:{name:`constant.character.set.regexp`}},end:`(]|(?='))|((?=(?)`,beginCaptures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp`},2:{name:`entity.name.tag.named.group.regexp`}},end:`(\\)|(?='))|((?=(?)`,beginCaptures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp`},2:{name:`entity.name.tag.named.group.regexp`}},end:`(\\)|(?='''))`,endCaptures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp`},2:{name:`invalid.illegal.newline.python`}},name:`meta.named.regexp`,patterns:[{include:`#single-three-regexp-expression`},{include:`#comments-string-single-three`}]},"single-three-regexp-parentheses":{begin:`\\(`,beginCaptures:{0:{name:`support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp`}},end:`(\\)|(?='''))`,endCaptures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.end.regexp`},2:{name:`invalid.illegal.newline.python`}},patterns:[{include:`#single-three-regexp-expression`},{include:`#comments-string-single-three`}]},"single-three-regexp-parentheses-non-capturing":{begin:`\\(\\?:`,beginCaptures:{0:{name:`support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp`}},end:`(\\)|(?='''))`,endCaptures:{1:{name:`support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp`},2:{name:`invalid.illegal.newline.python`}},patterns:[{include:`#single-three-regexp-expression`},{include:`#comments-string-single-three`}]},"special-names":{match:`\\b(_*\\p{upper}[_\\d]*\\p{upper})[[:upper:]\\d]*(_\\w*)?\\b`,name:`constant.other.caps.python`},"special-variables":{captures:{1:{name:`variable.language.special.self.python`},2:{name:`variable.language.special.cls.python`}},match:`\\b(?^]?[- +]?#?\\d*,?(\\.\\d+)?[%EFGXb-gnosx]?)?})`,name:`meta.format.brace.python`},{captures:{1:{name:`constant.character.format.placeholder.other.python`},3:{name:`storage.type.format.python`},4:{name:`storage.type.format.python`}},match:`(\\{\\w*(\\.[_[:alpha:]]\\w*|\\[[^]"']+])*(![ars])?(:)[^\\n"'{}]*(?:\\{[^\\n"'}]*?}[^\\n"'{}]*)*})`,name:`meta.format.brace.python`}]},"string-consume-escape":{match:`\\\\[\\n"'\\\\]`},"string-entity":{patterns:[{include:`#escape-sequence`},{include:`#string-line-continuation`},{include:`#string-formatting`}]},"string-formatting":{captures:{1:{name:`constant.character.format.placeholder.other.python`}},match:`(%(\\([\\w\\s]*\\))?[- #+0]*(\\d+|\\*)?(\\.(\\d+|\\*))?([Lhl])?[%EFGXa-giorsux])`,name:`meta.format.percent.python`},"string-line-continuation":{match:`\\\\$`,name:`constant.language.python`},"string-multi-bad-brace1-formatting-raw":{begin:`(?=\\{%(.*?(?!'''|"""))%})`,end:`(?='''|""")`,patterns:[{include:`#string-consume-escape`}]},"string-multi-bad-brace1-formatting-unicode":{begin:`(?=\\{%(.*?(?!'''|"""))%})`,end:`(?='''|""")`,patterns:[{include:`#escape-sequence-unicode`},{include:`#escape-sequence`},{include:`#string-line-continuation`}]},"string-multi-bad-brace2-formatting-raw":{begin:`(?!\\{\\{)(?=\\{(\\w*?(?!'''|""")[^!.:\\[}\\w]).*?(?!'''|""")})`,end:`(?='''|""")`,patterns:[{include:`#string-consume-escape`},{include:`#string-formatting`}]},"string-multi-bad-brace2-formatting-unicode":{begin:`(?!\\{\\{)(?=\\{(\\w*?(?!'''|""")[^!.:\\[}\\w]).*?(?!'''|""")})`,end:`(?='''|""")`,patterns:[{include:`#escape-sequence-unicode`},{include:`#string-entity`}]},"string-quoted-multi-line":{begin:`(?:\\b([Rr])(?=[Uu]))?([Uu])?('''|""")`,beginCaptures:{1:{name:`invalid.illegal.prefix.python`},2:{name:`storage.type.string.python`},3:{name:`punctuation.definition.string.begin.python`}},end:`(\\3)`,endCaptures:{1:{name:`punctuation.definition.string.end.python`},2:{name:`invalid.illegal.newline.python`}},name:`string.quoted.multi.python`,patterns:[{include:`#string-multi-bad-brace1-formatting-unicode`},{include:`#string-multi-bad-brace2-formatting-unicode`},{include:`#string-unicode-guts`}]},"string-quoted-single-line":{begin:`(?:\\b([Rr])(?=[Uu]))?([Uu])?((["']))`,beginCaptures:{1:{name:`invalid.illegal.prefix.python`},2:{name:`storage.type.string.python`},3:{name:`punctuation.definition.string.begin.python`}},end:`(\\3)|((?{for(let n in t)e[n]=t[n]}),e}function S(e){let t=~e.lastIndexOf(`/`)||~e.lastIndexOf(`\\`);return t===0?e:~t===e.length-1?S(e.substring(0,e.length-1)):e.substr(~t+1)}var te=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,C=class{static hasCaptures(e){return e===null?!1:(te.lastIndex=0,te.test(e))}static replaceCaptures(e,t,n){return e.replace(te,(e,r,i,a)=>{let o=n[parseInt(r||i,10)];if(o){let e=t.substring(o.start,o.end);for(;e[0]===`.`;)e=e.substring(1);switch(a){case`downcase`:return e.toLowerCase();case`upcase`:return e.toUpperCase();default:return e}}else return e})}};function w(e,t){return et)}function ne(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let n=e.length,r=t.length;if(n===r){for(let r=0;rthis._root.match(e));getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;let t=e.scopeName,n=this._cachedMatchRoot.get(t).find(t=>ce(e.parent,t.parentScopes));return n?new ue(n.fontStyle,n.foreground,n.background):null}},se=class e{constructor(e,t){this.parent=e,this.scopeName=t}static push(t,n){for(let r of n)t=new e(t,r);return t}static from(...t){let n=null;for(let r=0;r`){if(n===t.length-1)return!1;r=t[++n],i=!0}for(;e&&!le(e.scopeName,r);){if(i)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function le(e,t){return t===e||e.startsWith(t)&&e[t.length]===`.`}var ue=class{constructor(e,t,n){this.fontStyle=e,this.foregroundId=t,this.backgroundId=n}};function de(e){if(!e||!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,n=[],r=0;for(let e=0,i=t.length;e1&&(u=i.slice(0,i.length-1),u.reverse()),n[r++]=new fe(l,u,e,o,s,c)}}return n}var fe=class{constructor(e,t,n,r,i,a){this.scope=e,this.parentScopes=t,this.index=n,this.fontStyle=r,this.foreground=i,this.background=a}},T=(e=>(e[e.NotSet=-1]=`NotSet`,e[e.None=0]=`None`,e[e.Italic=1]=`Italic`,e[e.Bold=2]=`Bold`,e[e.Underline=4]=`Underline`,e[e.Strikethrough=8]=`Strikethrough`,e))(T||{});function pe(e,t){e.sort((e,t)=>{let n=w(e.scope,t.scope);return n!==0||(n=ne(e.parentScopes,t.parentScopes),n!==0)?n:e.index-t.index});let n=0,r=`#000000`,i=`#ffffff`;for(;e.length>=1&&e[0].scope===``;){let t=e.shift();t.fontStyle!==-1&&(n=t.fontStyle),t.foreground!==null&&(r=t.foreground),t.background!==null&&(i=t.background)}let a=new me(t),o=new ue(n,a.getId(r),a.getId(i)),s=new _e(new ge(0,null,-1,0,0),[]);for(let t=0,n=e.length;te?console.log(`how did this happen?`):this.scopeDepth=e,t!==-1&&(this.fontStyle=t),n!==0&&(this.foreground=n),r!==0&&(this.background=r)}},_e=class e{constructor(e,t=[],n={}){this._mainRule=e,this._children=n,this._rulesWithParentScopes=t}_rulesWithParentScopes;static _cmpBySpecificity(e,t){if(e.scopeDepth!==t.scopeDepth)return t.scopeDepth-e.scopeDepth;let n=0,r=0;for(;e.parentScopes[n]===`>`&&n++,t.parentScopes[r]===`>`&&r++,!(n>=e.parentScopes.length||r>=t.parentScopes.length);){let i=t.parentScopes[r].length-e.parentScopes[n].length;if(i!==0)return i;n++,r++}return t.parentScopes.length-e.parentScopes.length}match(t){if(t!==``){let e=t.indexOf(`.`),n,r;if(e===-1?(n=t,r=``):(n=t.substring(0,e),r=t.substring(e+1)),this._children.hasOwnProperty(n))return this._children[n].match(r)}let n=this._rulesWithParentScopes.concat(this._mainRule);return n.sort(e._cmpBySpecificity),n}insert(t,n,r,i,a,o){if(n===``){this._doInsertHere(t,r,i,a,o);return}let s=n.indexOf(`.`),c,l;s===-1?(c=n,l=``):(c=n.substring(0,s),l=n.substring(s+1));let u;this._children.hasOwnProperty(c)?u=this._children[c]:(u=new e(this._mainRule.clone(),ge.cloneArr(this._rulesWithParentScopes)),this._children[c]=u),u.insert(t+1,l,r,i,a,o)}_doInsertHere(e,t,n,r,i){if(t===null){this._mainRule.acceptOverwrite(e,n,r,i);return}for(let a=0,o=this._rulesWithParentScopes.length;a>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!=0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static set(t,n,r,i,a,o,s){let c=e.getLanguageId(t),l=e.getTokenType(t),u=+!!e.containsBalancedBrackets(t),d=e.getFontStyle(t),f=e.getForeground(t),p=e.getBackground(t);return n!==0&&(c=n),r!==8&&(l=ye(r)),i!==null&&(u=+!!i),a!==-1&&(d=a),o!==0&&(f=o),s!==0&&(p=s),(c<<0|l<<8|u<<10|d<<11|f<<15|p<<24)>>>0}};function ve(e){return e}function ye(e){return e}function be(e,t){let n=[],r=Se(e),i=r.next();for(;i!==null;){let e=0;if(i.length===2&&i.charAt(1)===`:`){switch(i.charAt(0)){case`R`:e=1;break;case`L`:e=-1;break;default:console.log(`Unknown priority ${i} in scope selector`)}i=r.next()}let t=o();if(n.push({matcher:t,priority:e}),i!==`,`)break;i=r.next()}return n;function a(){if(i===`-`){i=r.next();let e=a();return t=>!!e&&!e(t)}if(i===`(`){i=r.next();let e=s();return i===`)`&&(i=r.next()),e}if(xe(i)){let e=[];do e.push(i),i=r.next();while(xe(i));return n=>t(e,n)}return null}function o(){let e=[],t=a();for(;t;)e.push(t),t=a();return t=>e.every(e=>e(t))}function s(){let e=[],t=o();for(;t&&(e.push(t),i===`|`||i===`,`);){do i=r.next();while(i===`|`||i===`,`);t=o()}return t=>e.some(e=>e(t))}}function xe(e){return!!e&&!!e.match(/[\w\.:]+/)}function Se(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=t.exec(e);return{next:()=>{if(!n)return null;let r=n[0];return n=t.exec(e),r}}}function Ce(e){typeof e.dispose==`function`&&e.dispose()}var D=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},we=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},Te=class{_references=[];_seenReferenceKeys=new Set;get references(){return this._references}visitedRule=new Set;add(e){let t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},Ee=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new D(this.initialScopeName)]}seenFullScopeRequests=new Set;seenPartialScopeRequests=new Set;Q;processQueue(){let e=this.Q;this.Q=[];let t=new Te;for(let n of e)De(n,this.initialScopeName,this.repo,t);for(let e of t.references)if(e instanceof D){if(this.seenFullScopeRequests.has(e.scopeName))continue;this.seenFullScopeRequests.add(e.scopeName),this.Q.push(e)}else{if(this.seenFullScopeRequests.has(e.scopeName)||this.seenPartialScopeRequests.has(e.toKey()))continue;this.seenPartialScopeRequests.add(e.toKey()),this.Q.push(e)}}};function De(e,t,n,r){let i=n.lookup(e.scopeName);if(!i){if(e.scopeName===t)throw Error(`No grammar provided for <${t}>`);return}let a=n.lookup(t);e instanceof D?O({baseGrammar:a,selfGrammar:i},r):Oe(e.ruleName,{baseGrammar:a,selfGrammar:i,repository:i.repository},r);let o=n.injections(e.scopeName);if(o)for(let e of o)r.add(new D(e))}function Oe(e,t,n){if(t.repository&&t.repository[e]){let r=t.repository[e];ke([r],t,n)}}function O(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&ke(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&ke(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function ke(e,t,n){for(let r of e){if(n.visitedRule.has(r))continue;n.visitedRule.add(r);let e=r.repository?x({},t.repository,r.repository):t.repository;Array.isArray(r.patterns)&&ke(r.patterns,{...t,repository:e},n);let i=r.include;if(!i)continue;let a=Fe(i);switch(a.kind){case 0:O({...t,selfGrammar:t.baseGrammar},n);break;case 1:O(t,n);break;case 2:Oe(a.ruleName,{...t,repository:e},n);break;case 3:case 4:let r=a.scopeName===t.selfGrammar.scopeName?t.selfGrammar:a.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(r){let i={baseGrammar:t.baseGrammar,selfGrammar:r,repository:e};a.kind===4?Oe(a.ruleName,i,n):O(i,n)}else a.kind===4?n.add(new we(a.scopeName,a.ruleName)):n.add(new D(a.scopeName));break}}}var Ae=class{kind=0},je=class{kind=1},Me=class{constructor(e){this.ruleName=e}kind=2},Ne=class{constructor(e){this.scopeName=e}kind=3},Pe=class{constructor(e,t){this.scopeName=e,this.ruleName=t}kind=4};function Fe(e){if(e===`$base`)return new Ae;if(e===`$self`)return new je;let t=e.indexOf(`#`);return t===-1?new Ne(e):t===0?new Me(e.substring(1)):new Pe(e.substring(0,t),e.substring(t+1))}var Ie=/\\(\d+)/,Le=/\\(\d+)/g,Re=-1,ze=-2;function Be(e){return e}function Ve(e){return e}var k=class{$location;id;_nameIsCapturing;_name;_contentNameIsCapturing;_contentName;constructor(e,t,n,r){this.$location=e,this.id=t,this._name=n||null,this._nameIsCapturing=C.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=C.hasCaptures(this._contentName)}get debugName(){let e=this.$location?`${S(this.$location.filename)}:${this.$location.line}`:`unknown`;return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:C.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:C.replaceCaptures(this._contentName,e,t)}},He=class extends k{retokenizeCapturedWithRuleId;constructor(e,t,n,r,i){super(e,t,n,r),this.retokenizeCapturedWithRuleId=i}dispose(){}collectPatterns(e,t){throw Error(`Not supported!`)}compile(e,t){throw Error(`Not supported!`)}compileAG(e,t,n,r){throw Error(`Not supported!`)}},Ue=class extends k{_match;captures;_cachedCompiledPatterns;constructor(e,t,n,r,i){super(e,t,n,null),this._match=new A(r,this.id),this.captures=i,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e).compileAG(e,n,r)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new j,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},We=class extends k{hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,r,i){super(e,t,n,r),this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null)}collectPatterns(e,t){for(let n of this.patterns)e.getRule(n).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e).compileAG(e,n,r)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new j,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Ge=class extends k{_begin;beginCaptures;_end;endHasBackReferences;endCaptures;applyEndPatternLast;hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,r,i,a,o,s,c,l){super(e,t,n,r),this._begin=new A(i,this.id),this.beginCaptures=a,this._end=new A(o||`￿`,-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=s,this.applyEndPatternLast=c||!1,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e,t).compileAG(e,n,r)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new j;for(let t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}},Ke=class extends k{_begin;beginCaptures;whileCaptures;_while;whileHasBackReferences;hasMissingPatterns;patterns;_cachedCompiledPatterns;_cachedCompiledWhilePatterns;constructor(e,t,n,r,i,a,o,s,c){super(e,t,n,r),this._begin=new A(i,this.id),this.beginCaptures=a,this.whileCaptures=s,this._while=new A(o,ze),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=c.patterns,this.hasMissingPatterns=c.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null),this._cachedCompiledWhilePatterns&&=(this._cachedCompiledWhilePatterns.dispose(),null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e).compileAG(e,n,r)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new j;for(let t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,n,r){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,n,r)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new j,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||`￿`),this._cachedCompiledWhilePatterns}},qe=class e{static createCaptureRule(e,t,n,r,i){return e.registerRule(e=>new He(t,e,n,r,i))}static getCompiledRuleId(t,n,r){return t.id||n.registerRule(i=>{if(t.id=i,t.match)return new Ue(t.$vscodeTextmateLocation,t.id,t.name,t.match,e._compileCaptures(t.captures,n,r));if(t.begin===void 0){t.repository&&(r=x({},r,t.repository));let i=t.patterns;return i===void 0&&t.include&&(i=[{include:t.include}]),new We(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,e._compilePatterns(i,n,r))}return t.while?new Ke(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,e._compileCaptures(t.beginCaptures||t.captures,n,r),t.while,e._compileCaptures(t.whileCaptures||t.captures,n,r),e._compilePatterns(t.patterns,n,r)):new Ge(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,e._compileCaptures(t.beginCaptures||t.captures,n,r),t.end,e._compileCaptures(t.endCaptures||t.captures,n,r),t.applyEndPatternLast,e._compilePatterns(t.patterns,n,r))}),t.id}static _compileCaptures(t,n,r){let i=[];if(t){let a=0;for(let e in t){if(e===`$vscodeTextmateLocation`)continue;let t=parseInt(e,10);t>a&&(a=t)}for(let e=0;e<=a;e++)i[e]=null;for(let a in t){if(a===`$vscodeTextmateLocation`)continue;let o=parseInt(a,10),s=0;t[a].patterns&&(s=e.getCompiledRuleId(t[a],n,r)),i[o]=e.createCaptureRule(n,t[a].$vscodeTextmateLocation,t[a].name,t[a].contentName,s)}}return i}static _compilePatterns(t,n,r){let i=[];if(t)for(let a=0,o=t.length;ae.substring(t.start,t.end));return Le.lastIndex=0,this.source.replace(Le,(e,t)=>ie(n[parseInt(t,10)]||``))}_buildAnchorCache(){if(typeof this.source!=`string`)throw Error(`This method should only be called if the source is a string`);let e=[],t=[],n=[],r=[],i,a,o,s;for(i=0,a=this.source.length;ie.source),this._items.map(e=>e.ruleId)),this._cached}compileAG(e,t,n){return this._hasAnchors?t?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,n){return new Je(e,this._items.map(e=>e.resolveAnchors(t,n)),this._items.map(e=>e.ruleId))}},Je=class{constructor(e,t,n){this.regExps=t,this.rules=n,this.scanner=e.createOnigScanner(t)}scanner;dispose(){typeof this.scanner.dispose==`function`&&this.scanner.dispose()}toString(){let e=[];for(let t=0,n=this.rules.length;tnew Ye(this._scopeToLanguage(e),this._toStandardTokenType(e)));_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(t){let n=t.match(e.STANDARD_TOKEN_TYPE_REGEXP);if(!n)return 8;switch(n[1]){case`comment`:return 1;case`string`:return 2;case`regex`:return 3;case`meta.embedded`:return 0}throw Error(`Unexpected match for standard token type!`)}static STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/},Ze=class{values;scopesRegExp;constructor(e){if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);let t=e.map(([e,t])=>ie(e));t.sort(),t.reverse(),this.scopesRegExp=RegExp(`^((${t.join(`)|(`)}))($|\\.)`,``)}}match(e){if(!this.scopesRegExp)return;let t=e.match(this.scopesRegExp);if(t)return this.values.get(t[1])}};typeof process<`u`&&{}.VSCODE_TEXTMATE_DEBUG;var Qe=!1,$e=class{constructor(e,t){this.stack=e,this.stoppedEarly=t}};function et(e,t,n,r,i,a,o,s){let c=t.content.length,l=!1,u=-1;if(o){let o=tt(e,t,n,r,i,a);i=o.stack,r=o.linePos,n=o.isFirstLine,u=o.anchorPosition}let d=Date.now();for(;!l;){if(s!==0&&Date.now()-d>s)return new $e(i,!0);f()}return new $e(i,!1);function f(){let o=nt(e,t,n,r,i,u);if(!o){a.produce(i,c),l=!0;return}let s=o.captureIndices,d=o.matchedRuleId,f=s&&s.length>0?s[0].end>r:!1;if(d===Re){let o=i.getRule(e);a.produce(i,s[0].start),i=i.withContentNameScopesList(i.nameScopesList),M(e,t,n,i,a,o.endCaptures,s),a.produce(i,s[0].end);let d=i;if(i=i.parent,u=d.getAnchorPos(),!f&&d.getEnterPos()===r){i=d,a.produce(i,c),l=!0;return}}else{let o=e.getRule(d);a.produce(i,s[0].start);let p=i,m=o.getName(t.content,s),h=i.contentNameScopesList.pushAttributed(m,e);if(i=i.push(d,r,u,s[0].end===c,null,h,h),o instanceof Ge){let r=o;M(e,t,n,i,a,r.beginCaptures,s),a.produce(i,s[0].end),u=s[0].end;let d=r.getContentName(t.content,s),m=h.pushAttributed(d,e);if(i=i.withContentNameScopesList(m),r.endHasBackReferences&&(i=i.withEndRule(r.getEndWithResolvedBackReferences(t.content,s))),!f&&p.hasSameRuleAs(i)){i=i.pop(),a.produce(i,c),l=!0;return}}else if(o instanceof Ke){let r=o;M(e,t,n,i,a,r.beginCaptures,s),a.produce(i,s[0].end),u=s[0].end;let d=r.getContentName(t.content,s),m=h.pushAttributed(d,e);if(i=i.withContentNameScopesList(m),r.whileHasBackReferences&&(i=i.withEndRule(r.getWhileWithResolvedBackReferences(t.content,s))),!f&&p.hasSameRuleAs(i)){i=i.pop(),a.produce(i,c),l=!0;return}}else if(M(e,t,n,i,a,o.captures,s),a.produce(i,s[0].end),i=i.pop(),!f){i=i.safePop(),a.produce(i,c),l=!0;return}}s[0].end>r&&(r=s[0].end,n=!1)}}function tt(e,t,n,r,i,a){let o=i.beginRuleCapturedEOL?0:-1,s=[];for(let t=i;t;t=t.pop()){let n=t.getRule(e);n instanceof Ke&&s.push({rule:n,stack:t})}for(let c=s.pop();c;c=s.pop()){let{ruleScanner:s,findOptions:l}=ot(c.rule,e,c.stack.endRule,n,r===o),u=s.findNextMatchSync(t,r,l);if(u){if(u.ruleId!==ze){i=c.stack.pop();break}u.captureIndices&&u.captureIndices.length&&(a.produce(c.stack,u.captureIndices[0].start),M(e,t,n,c.stack,a,c.rule.whileCaptures,u.captureIndices),a.produce(c.stack,u.captureIndices[0].end),o=u.captureIndices[0].end,u.captureIndices[0].end>r&&(r=u.captureIndices[0].end,n=!1))}else{i=c.stack.pop();break}}return{stack:i,linePos:r,anchorPosition:o,isFirstLine:n}}function nt(e,t,n,r,i,a){let o=rt(e,t,n,r,i,a),s=e.getInjections();if(s.length===0)return o;let c=it(s,e,t,n,r,i,a);if(!c)return o;if(!o)return c;let l=o.captureIndices[0].start,u=c.captureIndices[0].start;return u=s)&&(s=g,c=h.captureIndices,l=h.ruleId,u=f.priority,s===i))break}return c?{priorityMatch:u===-1,captureIndices:c,matchedRuleId:l}:null}function at(e,t,n,r,i){return Qe?{ruleScanner:e.compile(t,n),findOptions:st(r,i)}:{ruleScanner:e.compileAG(t,n,r,i),findOptions:0}}function ot(e,t,n,r,i){return Qe?{ruleScanner:e.compileWhile(t,n),findOptions:st(r,i)}:{ruleScanner:e.compileWhileAG(t,n,r,i),findOptions:0}}function st(e,t){let n=0;return e||(n|=1),t||(n|=4),n}function M(e,t,n,r,i,a,o){if(a.length===0)return;let s=t.content,c=Math.min(a.length,o.length),l=[],u=o[0].end;for(let t=0;tu)break;for(;l.length>0&&l[l.length-1].endPos<=d.start;)i.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop();if(l.length>0?i.produceFromScopes(l[l.length-1].scopes,d.start):i.produce(r,d.start),c.retokenizeCapturedWithRuleId){let t=c.getName(s,o),a=r.contentNameScopesList.pushAttributed(t,e),l=c.getContentName(s,o),u=a.pushAttributed(l,e),f=r.push(c.retokenizeCapturedWithRuleId,d.start,-1,!1,null,a,u),p=e.createOnigString(s.substring(0,d.end));et(e,p,n&&d.start===0,d.start,f,i,!1,0),Ce(p);continue}let f=c.getName(s,o);if(f!==null){let t=(l.length>0?l[l.length-1].scopes:r.contentNameScopesList).pushAttributed(f,e);l.push(new ct(t,d.end))}}for(;l.length>0;)i.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop()}var ct=class{scopes;endPos;constructor(e,t){this.scopes=e,this.endPos=t}};function lt(e,t,n,r,i,a,o,s){return new pt(e,t,n,r,i,a,o,s)}function ut(e,t,n,r,i){let a=be(t,dt),o=qe.getCompiledRuleId(n,r,i.repository);for(let n of a)e.push({debugSelector:t,matcher:n.matcher,ruleId:o,grammar:i,priority:n.priority})}function dt(e,t){if(t.length{for(let r=n;rn&&e.substr(0,n)===t&&e[n]===`.`}var pt=class{constructor(e,t,n,r,i,a,o,s){if(this._rootScopeName=e,this.balancedBracketSelectors=a,this._onigLib=s,this._basicScopeAttributesProvider=new Xe(n,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=o,this._grammar=mt(t,null),this._injections=null,this._tokenTypeMatchers=[],i)for(let e of Object.keys(i)){let t=be(e,dt);for(let n of t)this._tokenTypeMatchers.push({matcher:n.matcher,type:i[e]})}}_rootId;_lastRuleId;_ruleId2desc;_includedGrammars;_grammarRepository;_grammar;_injections;_basicScopeAttributesProvider;_tokenTypeMatchers;get themeProvider(){return this._grammarRepository}dispose(){for(let e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){let e={lookup:e=>e===this._rootScopeName?this._grammar:this.getExternalGrammar(e),injections:e=>this._grammarRepository.injections(e)},t=[],n=this._rootScopeName,r=e.lookup(n);if(r){let e=r.injections;if(e)for(let n in e)ut(t,n,e[n],this,r);let i=this._grammarRepository.injections(n);i&&i.forEach(e=>{let n=this.getExternalGrammar(e);if(n){let e=n.injectionSelector;e&&ut(t,e,n,this,n)}})}return t.sort((e,t)=>e.priority-t.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){let t=++this._lastRuleId,n=e(Be(t));return this._ruleId2desc[t]=n,n}getRule(e){return this._ruleId2desc[Ve(e)]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){let n=this._grammarRepository.lookup(e);if(n)return this._includedGrammars[e]=mt(n,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,n=0){let r=this._tokenize(e,t,!1,n);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(e,t,n=0){let r=this._tokenize(e,t,!0,n);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(e,t,n,r){this._rootId===-1&&(this._rootId=qe.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let i;if(!t||t===ht.NULL){i=!0;let e=this._basicScopeAttributesProvider.getDefaultAttributes(),n=this.themeProvider.getDefaults(),r=E.set(0,e.languageId,e.tokenType,null,n.fontStyle,n.foregroundId,n.backgroundId),a=this.getRule(this._rootId).getName(null,null),o;o=a?N.createRootAndLookUpScopeName(a,r,this):N.createRoot(`unknown`,r),t=new ht(null,this._rootId,-1,-1,!1,null,o,o)}else i=!1,t.reset();e+=` `;let a=this.createOnigString(e),o=a.content.length,s=new _t(n,e,this._tokenTypeMatchers,this.balancedBracketSelectors),c=et(this,a,i,0,t,s,!0,r);return Ce(a),{lineLength:o,lineTokens:s,ruleStack:c.stack,stoppedEarly:c.stoppedEarly}}};function mt(e,t){return e=v(e),e.repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}var N=class e{constructor(e,t,n){this.parent=e,this.scopePath=t,this.tokenAttributes=n}static fromExtension(t,n){let r=t,i=t?.scopePath??null;for(let t of n)i=se.push(i,t.scopeNames),r=new e(r,i,t.encodedTokenAttributes);return r}static createRoot(t,n){return new e(null,new se(null,t),n)}static createRootAndLookUpScopeName(t,n,r){let i=r.getMetadataForScope(t),a=new se(null,t),o=r.themeProvider.themeMatch(a);return new e(null,a,e.mergeAttributes(n,i,o))}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(` `)}equals(t){return e.equals(this,t)}static equals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}while(!0)}static mergeAttributes(e,t,n){let r=-1,i=0,a=0;return n!==null&&(r=n.fontStyle,i=n.foregroundId,a=n.backgroundId),E.set(e,t.languageId,t.tokenType,null,r,i,a)}pushAttributed(t,n){if(t===null)return this;if(t.indexOf(` `)===-1)return e._pushAttributed(this,t,n);let r=t.split(/ /g),i=this;for(let t of r)i=e._pushAttributed(i,t,n);return i}static _pushAttributed(t,n,r){let i=r.getMetadataForScope(n),a=t.scopePath.push(n),o=r.themeProvider.themeMatch(a);return new e(t,a,e.mergeAttributes(t.tokenAttributes,i,o))}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(e){let t=[],n=this;for(;n&&n!==e;)t.push({encodedTokenAttributes:n.tokenAttributes,scopeNames:n.scopePath.getExtensionIfDefined(n.parent?.scopePath??null)}),n=n.parent;return n===e?t.reverse():void 0}},ht=class e{constructor(e,t,n,r,i,a,o,s){this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=i,this.endRule=a,this.nameScopesList=o,this.contentNameScopesList=s,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=n,this._anchorPos=r}_stackElementBrand=void 0;static NULL=new e(null,0,0,0,!1,null,null,null);_enterPos;_anchorPos;depth;equals(t){return t===null?!1:e._equals(this,t)}static _equals(e,t){return e===t?!0:this._structuralEquals(e,t)?N.equals(e.contentNameScopesList,t.contentNameScopesList):!1}static _structuralEquals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}while(!0)}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){e._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(t,n,r,i,a,o,s){return new e(this,t,n,r,i,a,o,s)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){let e=[];return this._writeString(e,0),`[`+e.join(`,`)+`]`}_writeString(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(t){return this.endRule===t?this:new e(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}toStateStackFrame(){return{ruleId:Ve(this.ruleId),beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(t,n){let r=N.fromExtension(t?.nameScopesList??null,n.nameScopesList);return new e(t,Be(n.ruleId),n.enterPos??-1,n.anchorPos??-1,n.beginRuleCapturedEOL,n.endRule,r,N.fromExtension(r,n.contentNameScopesList))}},gt=class{balancedBracketScopes;unbalancedBracketScopes;allowAny=!1;constructor(e,t){this.balancedBracketScopes=e.flatMap(e=>e===`*`?(this.allowAny=!0,[]):be(e,dt).map(e=>e.matcher)),this.unbalancedBracketScopes=t.flatMap(e=>be(e,dt).map(e=>e.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(e){for(let t of this.unbalancedBracketScopes)if(t(e))return!1;for(let t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}},_t=class{constructor(e,t,n,r){this.balancedBracketSelectors=r,this._emitBinaryTokens=e,this._tokenTypeOverrides=n,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}_emitBinaryTokens;_lineText;_tokens;_binaryTokens;_lastTokenEndIndex;_tokenTypeOverrides;produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let n=e?.tokenAttributes??0,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){let t=e?.getScopeNames()??[];for(let e of this._tokenTypeOverrides)e.matcher(t)&&(n=E.set(n,0,ve(e.type),null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(t))}if(r&&(n=E.set(n,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===n){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(n),this._lastTokenEndIndex=t;return}let n=e?.getScopeNames()??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:n}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);let n=new Uint32Array(this._binaryTokens.length);for(let e=0,t=this._binaryTokens.length;e0;)a.Q.map(e=>this._loadSingleGrammar(e.scopeName)),a.processQueue();return this._grammarForScopeName(e,t,n,r,i)}_loadSingleGrammar(e){this._ensureGrammarCache.has(e)||(this._doLoadSingleGrammar(e),this._ensureGrammarCache.set(e,!0))}_doLoadSingleGrammar(e){let t=this._options.loadGrammar(e);if(t){let n=typeof this._options.getInjections==`function`?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,n)}}addGrammar(e,t=[],n=0,r=null){return this._syncRegistry.addGrammar(e,t),this._grammarForScopeName(e.scopeName,n,r)}_grammarForScopeName(e,t=0,n=null,r=null,i=null){return this._syncRegistry.grammarForScopeName(e,t,n,r,i)}},bt=ht.NULL;function xt(e,t){let n=typeof e==`string`?{}:{...e.colorReplacements},r=typeof e==`string`?e:e.name;for(let[e,i]of Object.entries(t?.colorReplacements||{}))typeof i==`string`?n[e]=i:e===r&&Object.assign(n,i);return n}function P(e,t){return e&&(t?.[e?.toLowerCase()]||e)}function St(e){return Array.isArray(e)?e:[e]}async function Ct(e){return Promise.resolve(typeof e==`function`?e():e).then(e=>e.default||e)}function wt(e){return!e||[`plaintext`,`txt`,`text`,`plain`].includes(e)}function Tt(e){return e===`ansi`||wt(e)}function Et(e){return e===`none`}function Dt(e){return Et(e)}function Ot(e,t=!1){if(e.length===0)return[[``,0]];let n=e.split(/(\r?\n)/g),r=0,i=[];for(let e=0;e!e.name&&!e.scope):void 0;e?.settings?.foreground&&(r=e.settings.foreground),e?.settings?.background&&(n=e.settings.background),!r&&t?.colors?.[`editor.foreground`]&&(r=t.colors[`editor.foreground`]),!n&&t?.colors?.[`editor.background`]&&(n=t.colors[`editor.background`]),r||=t.type===`light`?kt.light:kt.dark,n||=t.type===`light`?At.light:At.dark,t.fg=r,t.bg=n}t.settings[0]&&t.settings[0].settings&&!t.settings[0].scope||t.settings.unshift({settings:{foreground:t.fg,background:t.bg}});let i=0,a=new Map;function o(e){if(a.has(e))return a.get(e);i+=1;let n=`#${i.toString(16).padStart(8,`0`).toLowerCase()}`;return t.colorReplacements?.[`#${n}`]?o(e):(a.set(e,n),n)}t.settings=t.settings.map(e=>{let n=e.settings?.foreground&&!e.settings.foreground.startsWith(`#`),r=e.settings?.background&&!e.settings.background.startsWith(`#`);if(!n&&!r)return e;let i={...e,settings:{...e.settings}};if(n){let n=o(e.settings.foreground);t.colorReplacements[n]=e.settings.foreground,i.settings.foreground=n}if(r){let n=o(e.settings.background);t.colorReplacements[n]=e.settings.background,i.settings.background=n}return i});for(let e of Object.keys(t.colors||{}))if((e===`editor.foreground`||e===`editor.background`||e.startsWith(`terminal.ansi`))&&!t.colors[e]?.startsWith(`#`)){let n=o(t.colors[e]);t.colorReplacements[n]=t.colors[e],t.colors[e]=n}return Object.defineProperty(t,jt,{enumerable:!1,writable:!1,value:!0}),t}async function Nt(e){return Array.from(new Set((await Promise.all(e.filter(e=>!Tt(e)).map(async e=>await Ct(e).then(e=>Array.isArray(e)?e:[e])))).flat()))}async function Pt(e){return(await Promise.all(e.map(async e=>Dt(e)?null:Mt(await Ct(e))))).filter(e=>!!e)}function Ft(e,t){if(!t)return e;if(t[e]){let n=new Set([e]);for(;t[e];){if(e=t[e],n.has(e))throw new _(`Circular alias \`${Array.from(n).join(` -> `)} -> ${e}\``);n.add(e)}}return e}var It=class extends yt{_resolvedThemes=new Map;_resolvedGrammars=new Map;_langMap=new Map;_langGraph=new Map;_textmateThemeCache=new WeakMap;_loadedThemesCache=null;_loadedLanguagesCache=null;constructor(e,t,n,r={}){super(e),this._resolver=e,this._themes=t,this._langs=n,this._alias=r,this._themes.map(e=>this.loadTheme(e)),this.loadLanguages(this._langs)}getTheme(e){return typeof e==`string`?this._resolvedThemes.get(e):this.loadTheme(e)}loadTheme(e){let t=Mt(e);return t.name&&(this._resolvedThemes.set(t.name,t),this._loadedThemesCache=null),t}getLoadedThemes(){return this._loadedThemesCache||=[...this._resolvedThemes.keys()],this._loadedThemesCache}setTheme(e){let t=this._textmateThemeCache.get(e);t||(t=oe.createFromRawTheme(e),this._textmateThemeCache.set(e,t)),this._syncRegistry.setTheme(t)}getGrammar(e){return e=Ft(e,this._alias),this._resolvedGrammars.get(e)}loadLanguage(e){if(this.getGrammar(e.name))return;let t=new Set([...this._langMap.values()].filter(t=>t.embeddedLangsLazy?.includes(e.name)));this._resolver.addLanguage(e);let n={balancedBracketSelectors:e.balancedBracketSelectors||[`*`],unbalancedBracketSelectors:e.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(e.scopeName,e);let r=this.loadGrammarWithConfiguration(e.scopeName,1,n);if(r.name=e.name,this._resolvedGrammars.set(e.name,r),e.aliases&&e.aliases.forEach(t=>{this._alias[t]=e.name}),this._loadedLanguagesCache=null,t.size)for(let e of t)this._resolvedGrammars.delete(e.name),this._loadedLanguagesCache=null,this._syncRegistry?._injectionGrammars?.delete(e.scopeName),this._syncRegistry?._grammars?.delete(e.scopeName),this.loadLanguage(this._langMap.get(e.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(e){for(let t of e)this.resolveEmbeddedLanguages(t);let t=Array.from(this._langGraph.entries()),n=t.filter(([e,t])=>!t);if(n.length){let e=t.filter(([e,t])=>t?(t.embeddedLanguages||t.embeddedLangs)?.some(e=>n.map(([e])=>e).includes(e)):!1).filter(e=>!n.includes(e));throw new _(`Missing languages ${n.map(([e])=>`\`${e}\``).join(`, `)}, required by ${e.map(([e])=>`\`${e}\``).join(`, `)}`)}for(let[e,n]of t)this._resolver.addLanguage(n);for(let[e,n]of t)this.loadLanguage(n)}getLoadedLanguages(){return this._loadedLanguagesCache||=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])],this._loadedLanguagesCache}resolveEmbeddedLanguages(e){this._langMap.set(e.name,e),this._langGraph.set(e.name,e);let t=e.embeddedLanguages??e.embeddedLangs;if(t)for(let e of t)this._langGraph.set(e,this._langMap.get(e))}},Lt=class{_langs=new Map;_scopeToLang=new Map;_injections=new Map;_onigLib;constructor(e,t){this._onigLib={createOnigScanner:t=>e.createScanner(t),createOnigString:t=>e.createString(t)},t.forEach(e=>this.addLanguage(e))}get onigLib(){return this._onigLib}getLangRegistration(e){return this._langs.get(e)}loadGrammar(e){return this._scopeToLang.get(e)}addLanguage(e){this._langs.set(e.name,e),e.aliases&&e.aliases.forEach(t=>{this._langs.set(t,e)}),this._scopeToLang.set(e.scopeName,e),e.injectTo&&e.injectTo.forEach(t=>{this._injections.get(t)||this._injections.set(t,[]),this._injections.get(t).push(e.scopeName)})}getInjections(e){let t=e.split(`.`),n=[];for(let e=1;e<=t.length;e++){let r=t.slice(0,e).join(`.`);n=[...n,...this._injections.get(r)||[]]}return n}},F=0;function Rt(e){F+=1,e.warnings!==!1&&F>=10&&F%10==0&&console.warn(`[Shiki] ${F} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \`highlighter.dispose()\` to release unused instances.`);let t=!1;if(!e.engine)throw new _("`engine` option is required for synchronous mode");let n=(e.langs||[]).flat(1),r=(e.themes||[]).flat(1).map(Mt),i=new It(new Lt(e.engine,n),r,n,e.langAlias),a;function o(t){return Ft(t,e.langAlias)}function s(e){g();let t=i.getGrammar(typeof e==`string`?e:e.name);if(!t)throw new _(`Language \`${e}\` not found, you may need to load it first`);return t}function c(e){if(e===`none`)return{bg:``,fg:``,name:`none`,settings:[],type:`dark`};g();let t=i.getTheme(e);if(!t)throw new _(`Theme \`${e}\` not found, you may need to load it first`);return t}function l(e){g();let t=c(e);return a!==e&&(i.setTheme(t),a=e),{theme:t,colorMap:i.getColorMap()}}function u(){return g(),i.getLoadedThemes()}function d(){return g(),i.getLoadedLanguages()}function f(...e){g(),i.loadLanguages(e.flat(1))}async function p(...e){return f(await Nt(e))}function m(...e){g();for(let t of e.flat(1))i.loadTheme(t)}async function h(...e){return g(),m(await Pt(e))}function g(){if(t)throw new _(`Shiki instance has been disposed`)}function v(){t||(t=!0,i.dispose(),--F)}return{setTheme:l,getTheme:c,getLanguage:s,getLoadedThemes:u,getLoadedLanguages:d,resolveLangAlias:o,loadLanguage:p,loadLanguageSync:f,loadTheme:h,loadThemeSync:m,dispose:v,[Symbol.dispose]:v}}async function zt(e){e.engine||console.warn("`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.");let[t,n,r]=await Promise.all([Pt(e.themes||[]),Nt(e.langs||[]),e.engine]);return Rt({...e,themes:t,langs:n,engine:r})}var Bt=new WeakMap;function I(e,t){Bt.set(e,t)}function L(e){return Bt.get(e)}var Vt=class e{_stacks={};lang;get themes(){return Object.keys(this._stacks)}get theme(){return this.themes[0]}get _stack(){return this._stacks[this.theme]}static initial(t,n){return new e(Object.fromEntries(St(n).map(e=>[e,bt])),t)}constructor(...e){if(e.length===2){let[t,n]=e;this.lang=n,this._stacks=t}else{let[t,n,r]=e;this.lang=n,this._stacks={[r]:t}}}getInternalStack(e=this.theme){return this._stacks[e]}getScopes(e=this.theme){return Ht(this._stacks[e])}toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,scopes:this.getScopes()}}};function Ht(e){let t=[],n=new Set;function r(e){if(n.has(e))return;n.add(e);let i=e?.nameScopesList?.scopeName;i&&t.push(i),e.parent&&r(e.parent)}return r(e),t}function Ut(e,t){if(!(e instanceof Vt))throw new _(`Invalid grammar state`);return e.getInternalStack(t)}function Wt(e,t,n={}){let{theme:r=e.getLoadedThemes()[0]}=n;if(wt(e.resolveLangAlias(n.lang||`text`))||Et(r))return Ot(t).map(e=>[{content:e[0],offset:e[1]}]);let{theme:i,colorMap:a}=e.setTheme(r),o=e.getLanguage(n.lang||`text`);if(n.grammarState){if(n.grammarState.lang!==o.name)throw new _(`Grammar state language "${n.grammarState.lang}" does not match highlight language "${o.name}"`);if(!n.grammarState.themes.includes(i.name))throw new _(`Grammar state themes "${n.grammarState.themes}" do not contain highlight theme "${i.name}"`)}return Kt(t,o,i,a,n)}function Gt(...e){if(e.length===2)return L(e[1]);let[t,n,r={}]=e,{lang:i=`text`,theme:a=t.getLoadedThemes()[0]}=r;if(wt(i)||Et(a))throw new _(`Plain language does not have grammar state`);if(i===`ansi`)throw new _(`ANSI language does not have grammar state`);let{theme:o,colorMap:s}=t.setTheme(a),c=t.getLanguage(i);return new Vt(qt(n,c,o,s,r).stateStack,c.name,o.name)}function Kt(e,t,n,r,i){let a=qt(e,t,n,r,i),o=new Vt(a.stateStack,t.name,n.name);return I(a.tokens,o),a.tokens}function qt(e,t,n,r,i){let a=xt(n,i),{tokenizeMaxLineLength:o=0,tokenizeTimeLimit:s=500}=i,c=Ot(e),l=i.grammarState?Ut(i.grammarState,n.name)??bt:i.grammarContextCode==null?bt:qt(i.grammarContextCode,t,n,r,{...i,grammarState:void 0,grammarContextCode:void 0}).stateStack,u=[],d=[];for(let e=0,f=c.length;e0&&f.length>=o){u=[],d.push([{content:f,offset:p,color:``,fontStyle:0}]);continue}let m,h,g;i.includeExplanation&&(m=t.tokenizeLine(f,l,s),h=m.tokens,g=0);let _=t.tokenizeLine2(f,l,s),v=_.tokens.length/2;for(let e=0;ee.trim());break;case`object`:n=t.scope;break;default:continue}e.push({settings:t,selectors:n.map(e=>e.split(/ /))})}d.explanation=[];let r=0;for(;t+r({scopeName:e}))}function Yt(e,t){let n=[];for(let r=0,i=t.length;r=0&&i>=0;)Xt(e[r],n[i])&&--r,--i;return r===-1}function Qt(e,t,n){let r=[];for(let{selectors:i,settings:a}of e)for(let e of i)if(Zt(e,t,n)){r.push(a);break}return r}function $t(e,t,n,r=Wt){let i=Object.entries(n.themes).filter(e=>e[1]).map(e=>({color:e[0],theme:e[1]})),a=i.map(i=>{let a=r(e,t,{...n,theme:i.theme});return{tokens:a,state:L(a),theme:typeof i.theme==`string`?i.theme:i.theme.name}}),o=en(...a.map(e=>e.tokens)),s=o[0].map((e,t)=>e.map((e,r)=>{let a={content:e.content,variants:{},offset:e.offset};return`includeExplanation`in n&&n.includeExplanation&&(a.explanation=e.explanation),o.forEach((e,n)=>{let{content:o,explanation:s,offset:c,...l}=e[t][r];a.variants[i[n].color]=l}),a})),c=a[0].state?new Vt(Object.fromEntries(a.map(e=>[e.theme,e.state?.getInternalStack(e.theme)])),a[0].state.lang):void 0;return c&&I(s,c),s}function en(...e){let t=e.map(()=>[]),n=e.length;for(let r=0;re[r]),a=t.map(()=>[]);t.forEach((e,t)=>e.push(a[t]));let o=i.map(()=>0),s=i.map(e=>e[0]);for(;s.every(e=>e);){let e=Math.min(...s.map(e=>e.content.length));for(let t=0;tB,booleanish:()=>V,commaOrSpaceSeparated:()=>G,commaSeparated:()=>W,number:()=>H,overloadedBoolean:()=>sn,spaceSeparated:()=>U}),on=0,B=K(),V=K(),sn=K(),H=K(),U=K(),W=K(),G=K();function K(){return 2**++on}var cn=Object.keys(an),ln=class extends z{constructor(e,t,n,r){let i=-1;if(super(e,t),un(this,`space`,r),typeof n==`number`)for(;++i4&&n.slice(0,4)===`data`&&xn.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(bn,wn);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!bn.test(e)){let n=e.replace(yn,Cn);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=ln}return new i(r,t)}function Cn(e){return`-`+e.toLowerCase()}function wn(e){return e.charAt(1).toUpperCase()}var Tn=nn([dn,mn,gn,_n,vn],`html`),En=nn([dn,hn,gn,_n,vn],`svg`),Dn={}.hasOwnProperty;function On(e,t){let n=t||{};function r(t,...n){let i=r.invalid,a=r.handlers;if(t&&Dn.call(t,e)){let n=String(t[e]);i=Dn.call(a,n)?a[n]:r.unknown}if(i)return i.call(this,t,...n)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r}var kn=/["&'<>`]/g,An=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,jn=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,Mn=/[|\\{}()[\]^$+*?.]/g,Nn=new WeakMap;function Pn(e,t){if(e=e.replace(t.subset?Fn(t.subset):kn,r),t.subset||t.escapeOnly)return e;return e.replace(An,n).replace(jn,r);function n(e,n,r){return t.format((e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536,r.charCodeAt(n+2),t)}function r(e,n,r){return t.format(e.charCodeAt(0),r.charCodeAt(n+1),t)}}function Fn(e){let t=Nn.get(e);return t||(t=In(e),Nn.set(e,t)),t}function In(e){let t=[],n=-1;for(;++n`,OElig:`Œ`,oelig:`œ`,Scaron:`Š`,scaron:`š`,Yuml:`Ÿ`,circ:`ˆ`,tilde:`˜`,ensp:` `,emsp:` `,thinsp:` `,zwnj:`‌`,zwj:`‍`,lrm:`‎`,rlm:`‏`,ndash:`–`,mdash:`—`,lsquo:`‘`,rsquo:`’`,sbquo:`‚`,ldquo:`“`,rdquo:`”`,bdquo:`„`,dagger:`†`,Dagger:`‡`,permil:`‰`,lsaquo:`‹`,rsaquo:`›`,euro:`€`},Un=[`cent`,`copy`,`divide`,`gt`,`lt`,`not`,`para`,`times`],Wn={}.hasOwnProperty,Gn={},Kn;for(Kn in Hn)Wn.call(Hn,Kn)&&(Gn[Hn[Kn]]=Kn);var qn=/[^\dA-Za-z]/;function Jn(e,t,n,r){let i=String.fromCharCode(e);if(Wn.call(Gn,i)){let e=Gn[i],a=`&`+e;return n&&Vn.includes(e)&&!Un.includes(e)&&(!r||t&&t!==61&&qn.test(String.fromCharCode(t)))?a:a+`;`}return``}function Yn(e,t,n){let r=Rn(e,t,n.omitOptionalSemicolons),i;if((n.useNamedReferences||n.useShortestReferences)&&(i=Jn(e,t,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!i)&&n.useShortestReferences){let i=Bn(e,t,n.omitOptionalSemicolons);i.length|^->||--!>|`],Qn=[`<`,`>`];function $n(e,t,n,r){return r.settings.bogusComments?``:``;function i(e){return J(e,Object.assign({},r.settings.characterReferences,{subset:Qn}))}}function er(e,t,n,r){return``}function tr(e,t){let n=String(e);if(typeof t!=`string`)throw TypeError(`Expected character`);let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function nr(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}function rr(e){return e.join(` `).trim()}var ir=/[ \t\n\f\r]/g;function ar(e){return typeof e==`object`?e.type===`text`?or(e.value):!1:or(e)}function or(e){return e.replace(ir,``)===``}var Y=lr(1),sr=lr(-1),cr=[];function lr(e){return t;function t(t,n,r){let i=t?t.children:cr,a=(n||0)+e,o=i[a];if(!r)for(;o&&ar(o);)a+=e,o=i[a];return o}}var ur={}.hasOwnProperty;function dr(e){return t;function t(t,n,r){return ur.call(e,t.tagName)&&e[t.tagName](t,n,r)}}var fr=dr({body:hr,caption:pr,colgroup:pr,dd:yr,dt:vr,head:pr,html:mr,li:_r,optgroup:xr,option:Sr,p:gr,rp:br,rt:br,tbody:wr,td:Dr,tfoot:Tr,th:Dr,thead:Cr,tr:Er});function pr(e,t,n){let r=Y(n,t,!0);return!r||r.type!==`comment`&&!(r.type===`text`&&ar(r.value.charAt(0)))}function mr(e,t,n){let r=Y(n,t);return!r||r.type!==`comment`}function hr(e,t,n){let r=Y(n,t);return!r||r.type!==`comment`}function gr(e,t,n){let r=Y(n,t);return r?r.type===`element`&&(r.tagName===`address`||r.tagName===`article`||r.tagName===`aside`||r.tagName===`blockquote`||r.tagName===`details`||r.tagName===`div`||r.tagName===`dl`||r.tagName===`fieldset`||r.tagName===`figcaption`||r.tagName===`figure`||r.tagName===`footer`||r.tagName===`form`||r.tagName===`h1`||r.tagName===`h2`||r.tagName===`h3`||r.tagName===`h4`||r.tagName===`h5`||r.tagName===`h6`||r.tagName===`header`||r.tagName===`hgroup`||r.tagName===`hr`||r.tagName===`main`||r.tagName===`menu`||r.tagName===`nav`||r.tagName===`ol`||r.tagName===`p`||r.tagName===`pre`||r.tagName===`section`||r.tagName===`table`||r.tagName===`ul`):!n||!(n.type===`element`&&(n.tagName===`a`||n.tagName===`audio`||n.tagName===`del`||n.tagName===`ins`||n.tagName===`map`||n.tagName===`noscript`||n.tagName===`video`))}function _r(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&r.tagName===`li`}function vr(e,t,n){let r=Y(n,t);return!!(r&&r.type===`element`&&(r.tagName===`dt`||r.tagName===`dd`))}function yr(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&(r.tagName===`dt`||r.tagName===`dd`)}function br(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&(r.tagName===`rp`||r.tagName===`rt`)}function xr(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&r.tagName===`optgroup`}function Sr(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&(r.tagName===`option`||r.tagName===`optgroup`)}function Cr(e,t,n){let r=Y(n,t);return!!(r&&r.type===`element`&&(r.tagName===`tbody`||r.tagName===`tfoot`))}function wr(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&(r.tagName===`tbody`||r.tagName===`tfoot`)}function Tr(e,t,n){return!Y(n,t)}function Er(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&r.tagName===`tr`}function Dr(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&(r.tagName===`td`||r.tagName===`th`)}var Or=dr({body:jr,colgroup:Mr,head:Ar,html:kr,tbody:Nr});function kr(e){let t=Y(e,-1);return!t||t.type!==`comment`}function Ar(e){let t=new Set;for(let n of e.children)if(n.type===`element`&&(n.tagName===`base`||n.tagName===`title`)){if(t.has(n.tagName))return!1;t.add(n.tagName)}let n=e.children[0];return!n||n.type===`element`}function jr(e){let t=Y(e,-1,!0);return!t||t.type!==`comment`&&!(t.type===`text`&&ar(t.value.charAt(0)))&&!(t.type===`element`&&(t.tagName===`meta`||t.tagName===`link`||t.tagName===`script`||t.tagName===`style`||t.tagName===`template`))}function Mr(e,t,n){let r=sr(n,t),i=Y(e,-1,!0);return n&&r&&r.type===`element`&&r.tagName===`colgroup`&&fr(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`col`)}function Nr(e,t,n){let r=sr(n,t),i=Y(e,-1);return n&&r&&r.type===`element`&&(r.tagName===`thead`||r.tagName===`tbody`)&&fr(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`tr`)}var Pr={name:[[` \f\r &/=>`.split(``),` \f\r "&'/=>\``.split(``)],[`\0 \f\r "&'/<=>`.split(``),`\0 \f\r "&'/<=>\``.split(``)]],unquoted:[[` \f\r &>`.split(``),`\0 \f\r "&'<=>\``.split(``)],[`\0 \f\r "&'<=>\``.split(``),`\0 \f\r "&'<=>\``.split(``)]],single:[[`&'`.split(``),`"&'\``.split(``)],[`\0&'`.split(``),`\0"&'\``.split(``)]],double:[[`"&`.split(``),`"&'\``.split(``)],[`\0"&`.split(``),`\0"&'\``.split(``)]]};function Fr(e,t,n,r){let i=r.schema,a=i.space===`svg`?!1:r.settings.omitOptionalTags,o=i.space===`svg`?r.settings.closeEmptyElements:r.settings.voids.includes(e.tagName.toLowerCase()),s=[],c;i.space===`html`&&e.tagName===`svg`&&(r.schema=En);let l=Ir(r,e.properties),u=r.all(i.space===`html`&&e.tagName===`template`?e.content:e);return r.schema=i,u&&(o=!1),(l||!a||!Or(e,t,n))&&(s.push(`<`,e.tagName,l?` `+l:``),o&&(i.space===`svg`||r.settings.closeSelfClosing)&&(c=l.charAt(l.length-1),(!r.settings.tightSelfClosing||c===`/`||c&&c!==`"`&&c!==`'`)&&s.push(` `),s.push(`/`)),s.push(`>`)),s.push(u),!o&&(!a||!fr(e,t,n))&&s.push(``),s.join(``)}function Ir(e,t){let n=[],r=-1,i;if(t){for(i in t)if(t[i]!==null&&t[i]!==void 0){let r=Lr(e,i,t[i]);r&&n.push(r)}}for(;++rtr(n,e.alternative)&&(o=e.alternative),s=o+J(n,Object.assign({},e.settings.characterReferences,{subset:(o===`'`?Pr.single:Pr.double)[i][a],attribute:!0}))+o),c+(s&&`=`+s))}var Rr=[`<`,`&`];function zr(e,t,n,r){return n&&n.type===`element`&&(n.tagName===`script`||n.tagName===`style`)?e.value:J(e.value,Object.assign({},r.settings.characterReferences,{subset:Rr}))}function Br(e,t,n,r){return r.settings.allowDangerousHtml?e.value:zr(e,t,n,r)}function Vr(e,t,n,r){return r.all(e)}var Hr=On(`type`,{invalid:Ur,unknown:Wr,handlers:{comment:$n,doctype:er,element:Fr,raw:Br,root:Vr,text:zr}});function Ur(e){throw Error("Expected node, not `"+e+"`")}function Wr(e){throw Error("Cannot compile unknown node `"+e.type+"`")}var Gr={},Kr={},qr=[];function Jr(e,t){let n=t||Gr,r=n.quote||`"`,i=r===`"`?`'`:`"`;if(r!==`"`&&r!==`'`)throw Error("Invalid quote `"+r+"`, expected `'` or `\"`");return{one:Yr,all:Xr,settings:{omitOptionalTags:n.omitOptionalTags||!1,allowParseErrors:n.allowParseErrors||!1,allowDangerousCharacters:n.allowDangerousCharacters||!1,quoteSmart:n.quoteSmart||!1,preferUnquoted:n.preferUnquoted||!1,tightAttributes:n.tightAttributes||!1,upperDoctype:n.upperDoctype||!1,tightDoctype:n.tightDoctype||!1,bogusComments:n.bogusComments||!1,tightCommaSeparatedLists:n.tightCommaSeparatedLists||!1,tightSelfClosing:n.tightSelfClosing||!1,collapseEmptyAttributes:n.collapseEmptyAttributes||!1,allowDangerousHtml:n.allowDangerousHtml||!1,voids:n.voids||tn,characterReferences:n.characterReferences||Kr,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space===`svg`?En:Tn,quote:r,alternative:i}.one(Array.isArray(e)?{type:`root`,children:e}:e,void 0,void 0)}function Yr(e,t,n){return Hr(e,t,n,this)}function Xr(e){let t=[],n=e&&e.children||qr,r=-1;for(;++re);function n(n){if(n===e.length)return{line:t.length-1,character:t[t.length-1].length};let r=n,i=0;for(let e of t){if(rn&&r.push({...e,content:e.content.slice(n,i),offset:e.offset+n}),n=i;return ne-t);return n.length?e.map(e=>e.flatMap(e=>{let t=n.filter(t=>e.offsett-e.offset).sort((e,t)=>e-t);return t.length?ti(e,t):e})):e}function ri(e,t,n,r,i=`css-vars`){let a={content:e.content,explanation:e.explanation,offset:e.offset},o=t.map(t=>ii(e.variants[t])),s=new Set(o.flatMap(e=>Object.keys(e))),c={},l=(e,r)=>{let i=r===`color`?``:r===`background-color`?`-bg`:`-${r}`;return n+t[e]+(r===`color`?``:i)};return o.forEach((e,n)=>{for(let a of s){let s=e[a]||`inherit`;if(n===0&&r&&ei.includes(a))if(r===$r&&o.length>1){let e=t.findIndex(e=>e===`light`),r=t.findIndex(e=>e===`dark`);if(e===-1||r===-1)throw new _('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');c[a]=`light-dark(${o[e][a]||`inherit`}, ${o[r][a]||`inherit`})`,i===`css-vars`&&(c[l(n,a)]=s)}else c[a]=s;else i===`css-vars`&&(c[l(n,a)]=s)}}),a.htmlStyle=c,a}function ii(e){let t={};if(e.color&&(t.color=e.color),e.bgColor&&(t[`background-color`]=e.bgColor),e.fontStyle){e.fontStyle&T.Italic&&(t[`font-style`]=`italic`),e.fontStyle&T.Bold&&(t[`font-weight`]=`bold`);let n=[];e.fontStyle&T.Underline&&n.push(`underline`),e.fontStyle&T.Strikethrough&&n.push(`line-through`),n.length&&(t[`text-decoration`]=n.join(` `))}return t}function ai(e){return typeof e==`string`?e:Object.entries(e).map(([e,t])=>`${e}:${t}`).join(`;`)}function oi(){let e=new WeakMap;function t(t){if(!e.has(t.meta)){let n=Qr(t.source);function r(e){if(typeof e==`number`){if(e<0||e>t.source.length)throw new _(`Invalid decoration offset: ${e}. Code length: ${t.source.length}`);return{...n.indexToPos(e),offset:e}}else{let t=n.lines[e.line];if(t===void 0)throw new _(`Invalid decoration position ${JSON.stringify(e)}. Lines length: ${n.lines.length}`);let r=e.character;if(r<0&&(r=t.length+r),r<0||r>t.length)throw new _(`Invalid decoration position ${JSON.stringify(e)}. Line ${e.line} length: ${t.length}`);return{...e,character:r,offset:n.posToIndex(e.line,r)}}}let i=(t.options.decorations||[]).map(e=>({...e,start:r(e.start),end:r(e.end)}));si(i),e.set(t.meta,{decorations:i,converter:n,source:t.source})}return e.get(t.meta)}return{name:`shiki:decorations`,tokens(e){if(this.options.decorations?.length)return ni(e,t(this).decorations.flatMap(e=>[e.start.offset,e.end.offset]))},code(e){if(!this.options.decorations?.length)return;let n=t(this),r=Array.from(e.children).filter(e=>e.type===`element`&&e.tagName===`span`);if(r.length!==n.converter.lines.length)throw new _(`Number of lines in code element (${r.length}) does not match the number of lines in the source (${n.converter.lines.length}). Failed to apply decorations.`);function i(e,t,n,i){let a=r[e],s=``,c=-1,l=-1;if(t===0&&(c=0),n===0&&(l=0),n===1/0&&(l=a.children.length),c===-1||l===-1)for(let e=0;ee);return e.tagName=t.tagName||`span`,e.properties={...e.properties,...r,class:e.properties.class},t.properties?.class&&Zr(e,t.properties.class),e=i(e,n)||e,e}let s=[],c=n.decorations.sort((e,t)=>t.start.offset-e.start.offset||e.end.offset-t.end.offset);for(let e of c){let{start:t,end:n}=e;if(t.line===n.line)i(t.line,t.character,n.character,e);else if(t.linea(r,e));i(n.line,0,n.character,e)}}s.forEach(e=>e())}}}function si(e){for(let t=0;tn.end.offset)throw new _(`Invalid decoration range: ${JSON.stringify(n.start)} - ${JSON.stringify(n.end)}`);for(let r=t+1;rNumber.parseInt(e));return t.length!==3||t.some(e=>Number.isNaN(e))?void 0:{type:`rgb`,rgb:t}}else if(t===`5`){let t=e.shift();if(t)return{type:`table`,index:Number(t)}}}function mi(e){let t=[];for(;e.length>0;){let n=e.shift();if(!n)continue;let r=Number.parseInt(n);if(!Number.isNaN(r))if(r===0)t.push({type:`resetAll`});else if(r<=9)di[r]&&t.push({type:`setDecoration`,value:di[r]});else if(r<=29){let e=di[r-20];e&&(t.push({type:`resetDecoration`,value:e}),e===`dim`&&t.push({type:`resetDecoration`,value:`bold`}))}else if(r<=37)t.push({type:`setForegroundColor`,value:{type:`named`,name:Z[r-30]}});else if(r===38){let n=pi(e);n&&t.push({type:`setForegroundColor`,value:n})}else if(r===39)t.push({type:`resetForegroundColor`});else if(r<=47)t.push({type:`setBackgroundColor`,value:{type:`named`,name:Z[r-40]}});else if(r===48){let n=pi(e);n&&t.push({type:`setBackgroundColor`,value:n})}else r===49?t.push({type:`resetBackgroundColor`}):r===53?t.push({type:`setDecoration`,value:`overline`}):r===55?t.push({type:`resetDecoration`,value:`overline`}):r>=90&&r<=97?t.push({type:`setForegroundColor`,value:{type:`named`,name:Z[r-90+8]}}):r>=100&&r<=107&&t.push({type:`setBackgroundColor`,value:{type:`named`,name:Z[r-100+8]}})}return t}function hi(){let e=null,t=null,n=new Set;return{parse(r){let i=[],a=0;do{let o=fi(r,a),s=o.sequence?r.substring(a,o.startPosition):r.substring(a);if(s.length>0&&i.push({value:s,foreground:e,background:t,decorations:new Set(n)}),o.sequence){let r=mi(o.sequence);for(let i of r)i.type===`resetAll`?(e=null,t=null,n.clear()):i.type===`resetForegroundColor`?e=null:i.type===`resetBackgroundColor`?t=null:i.type===`resetDecoration`&&n.delete(i.value);for(let i of r)i.type===`setForegroundColor`?e=i.value:i.type===`setBackgroundColor`?t=i.value:i.type===`setDecoration`&&n.add(i.value)}a=o.position}while(aMath.max(0,Math.min(e,255)).toString(16).padStart(2,`0`)).join(``)}`}let r;function i(){if(r)return r;r=[];for(let e=0;e{let n=`terminal.ansi${t[0].toUpperCase()}${t.substring(1)}`;return[t,e.colors?.[n]||vi[t]]}))),o=hi();return i.map(t=>o.parse(t[0]).map(n=>{let i,o;n.decorations.has(`reverse`)?(i=n.background?a.value(n.background):e.bg,o=n.foreground?a.value(n.foreground):e.fg):(i=n.foreground?a.value(n.foreground):e.fg,o=n.background?a.value(n.background):void 0),i=P(i,r),o=P(o,r),n.decorations.has(`dim`)&&(i=bi(i));let s=T.None;return n.decorations.has(`bold`)&&(s|=T.Bold),n.decorations.has(`italic`)&&(s|=T.Italic),n.decorations.has(`underline`)&&(s|=T.Underline),n.decorations.has(`strikethrough`)&&(s|=T.Strikethrough),{content:n.value,offset:t[1],color:i,bgColor:o,fontStyle:s}}))}function bi(e){let t=e.match(/#([0-9a-f]{3,8})/i);if(t){let e=t[1];if(e.length===8){let t=Math.round(Number.parseInt(e.slice(6,8),16)/2).toString(16).padStart(2,`0`);return`#${e.slice(0,6)}${t}`}else if(e.length===6)return`#${e}80`;else if(e.length===4){let t=e[0],n=e[1],r=e[2],i=e[3];return`#${t}${t}${n}${n}${r}${r}${Math.round(Number.parseInt(`${i}${i}`,16)/2).toString(16).padStart(2,`0`)}`}else if(e.length===3){let t=e[0],n=e[1],r=e[2];return`#${t}${t}${n}${n}${r}${r}80`}}let n=e.match(/var\((--[\w-]+-ansi-[\w-]+)\)/);return n?`var(${n[1]}-dim)`:e}function xi(e,t,n={}){let r=e.resolveLangAlias(n.lang||`text`),{theme:i=e.getLoadedThemes()[0]}=n;if(!wt(r)&&!Et(i)&&r===`ansi`){let{theme:r}=e.setTheme(i);return yi(r,t,n)}return Wt(e,t,n)}function Si(e,t,n){let r,i,a,o,s,c;if(`themes`in n){let{defaultColor:l=`light`,cssVariablePrefix:u=`--shiki-`,colorsRendering:d=`css-vars`}=n,f=Object.entries(n.themes).filter(e=>e[1]).map(e=>({color:e[0],theme:e[1]})).sort((e,t)=>e.color===l?-1:+(t.color===l));if(f.length===0)throw new _("`themes` option must not be empty");let p=$t(e,t,n,xi);if(c=L(p),l&&$r!==l&&!f.find(e=>e.color===l))throw new _(`\`themes\` option must contain the defaultColor key \`${l}\``);let m=f.map(t=>e.getTheme(t.theme)),h=f.map(e=>e.color);a=p.map(e=>e.map(e=>ri(e,h,u,l,d))),c&&I(a,c);let g=f.map(e=>xt(e.theme,n));i=Ci(f,m,g,u,l,`fg`,d),r=Ci(f,m,g,u,l,`bg`,d),o=`shiki-themes ${m.map(e=>e.name).join(` `)}`,s=l?void 0:[i,r].join(`;`)}else if(`theme`in n){let s=xt(n.theme,n);a=xi(e,t,n);let l=e.getTheme(n.theme);r=P(l.bg,s),i=P(l.fg,s),o=l.name,c=L(a)}else throw new _("Invalid options, either `theme` or `themes` must be provided");return{tokens:a,fg:i,bg:r,themeName:o,rootStyle:s,grammarState:c}}function Ci(e,t,n,r,i,a,o){return e.map((s,c)=>{let l=P(t[c][a],n[c])||`inherit`,u=`${r+s.color}${a===`bg`?`-bg`:``}:${l}`;if(c===0&&i){if(i===$r&&e.length>1){let r=e.findIndex(e=>e.color===`light`),i=e.findIndex(e=>e.color===`dark`);if(r===-1||i===-1)throw new _('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');return`light-dark(${P(t[r][a],n[r])||`inherit`}, ${P(t[i][a],n[i])||`inherit`});${u}`}return l}return o===`css-vars`?u:null}).filter(e=>!!e).join(`;`)}function wi(e,t,n,r={meta:{},options:n,codeToHast:(t,n)=>wi(e,t,n),codeToTokens:(t,n)=>Si(e,t,n)}){let i=t;for(let e of X(n))i=e.preprocess?.call(r,i,n)||i;let{tokens:a,fg:o,bg:s,themeName:c,rootStyle:l,grammarState:u}=Si(e,i,n),{mergeWhitespaces:d=!0,mergeSameStyleTokens:f=!1}=n;d===!0?a=Ei(a):d===`never`&&(a=Di(a)),f&&(a=Oi(a));let p={...r,get source(){return i}};for(let e of X(n))a=e.tokens?.call(p,a)||a;return Ti(a,{...n,fg:o,bg:s,themeName:c,rootStyle:n.rootStyle===!1?!1:n.rootStyle??l},p,u)}function Ti(e,t,n,r=L(e)){let i=X(t),a=[],o={type:`root`,children:[]},{structure:s=`classic`,tabindex:c=`0`}=t,l={class:`shiki ${t.themeName||``}`};t.rootStyle!==!1&&(t.rootStyle==null?l.style=`background-color:${t.bg};color:${t.fg}`:l.style=t.rootStyle),c!==!1&&c!=null&&(l.tabindex=c.toString());for(let[e,n]of Object.entries(t.meta||{}))e.startsWith(`_`)||(l[e]=n);let u={type:`element`,tagName:`pre`,properties:l,children:[],data:t.data},d={type:`element`,tagName:`code`,properties:{},children:a},f=[],p={...n,structure:s,addClassToHast:Zr,get source(){return n.source},get tokens(){return e},get options(){return t},get root(){return o},get pre(){return u},get code(){return d},get lines(){return f}};if(e.forEach((e,t)=>{t&&(s===`inline`?o.children.push({type:`element`,tagName:`br`,properties:{},children:[]}):s===`classic`&&a.push({type:`text`,value:` `}));let n={type:`element`,tagName:`span`,properties:{class:`line`},children:[]},r=0;for(let a of e){let e={type:`element`,tagName:`span`,properties:{...a.htmlAttrs},children:[{type:`text`,value:a.content}]},c=ai(a.htmlStyle||ii(a));c&&(e.properties.style=c);for(let o of i)e=o?.span?.call(p,e,t+1,r,n,a)||e;s===`inline`?o.children.push(e):s===`classic`&&n.children.push(e),r+=a.content.length}if(s===`classic`){for(let e of i)n=e?.line?.call(p,n,t+1)||n;f.push(n),a.push(n)}else s===`inline`&&f.push(n)}),s===`classic`){for(let e of i)d=e?.code?.call(p,d)||d;u.children.push(d);for(let e of i)u=e?.pre?.call(p,u)||u;o.children.push(u)}else if(s===`inline`){let e=[],t={type:`element`,tagName:`span`,properties:{class:`line`},children:[]};for(let n of o.children)n.type===`element`&&n.tagName===`br`?(e.push(t),t={type:`element`,tagName:`span`,properties:{class:`line`},children:[]}):(n.type===`element`||n.type===`text`)&&t.children.push(n);e.push(t);let n={type:`element`,tagName:`code`,properties:{},children:e};for(let e of i)n=e?.code?.call(p,n)||n;o.children=[];for(let e=0;e0&&o.children.push({type:`element`,tagName:`br`,properties:{},children:[]});let t=n.children[e];t.type===`element`&&o.children.push(...t.children)}}let m=o;for(let e of i)m=e?.root?.call(p,m)||m;return r&&I(m,r),m}function Ei(e){return e.map(e=>{let t=[],n=``,r;return e.forEach((i,a)=>{let o=!(i.fontStyle&&(i.fontStyle&T.Underline||i.fontStyle&T.Strikethrough));o&&i.content.match(/^\s+$/)&&e[a+1]?(r===void 0&&(r=i.offset),n+=i.content):n?(o?t.push({...i,offset:r,content:n+i.content}):t.push({content:n,offset:r},i),r=void 0,n=``):t.push(i)}),t})}function Di(e){return e.map(e=>e.flatMap(e=>{if(e.content.match(/^\s+$/))return e;let t=e.content.match(/^(\s*)(.*?)(\s*)$/);if(!t)return e;let[,n,r,i]=t;if(!n&&!i)return e;let a=[{...e,offset:e.offset+n.length,content:r}];return n&&a.unshift({content:n,offset:e.offset}),i&&a.push({content:i,offset:e.offset+n.length+r.length}),a}))}function Oi(e){return e.map(e=>{let t=[];for(let n of e){if(t.length===0){t.push({...n});continue}let e=t[t.length-1],r=ai(e.htmlStyle||ii(e)),i=ai(n.htmlStyle||ii(n)),a=e.fontStyle&&(e.fontStyle&T.Underline||e.fontStyle&T.Strikethrough),o=n.fontStyle&&(n.fontStyle&T.Underline||n.fontStyle&T.Strikethrough);!a&&!o&&r===i?e.content+=n.content:t.push({...n})}return t})}var ki=Jr;function Ai(e,t,n){let r={meta:{},options:n,codeToHast:(t,n)=>wi(e,t,n),codeToTokens:(t,n)=>Si(e,t,n)},i=ki(wi(e,t,n,r));for(let e of X(n))i=e.postprocess?.call(r,i,n)||i;return i}async function ji(e){let t=await zt(e);return{getLastGrammarState:(...e)=>Gt(t,...e),codeToTokensBase:(e,n)=>xi(t,e,n),codeToTokensWithThemes:(e,n)=>$t(t,e,n),codeToTokens:(e,n)=>Si(t,e,n),codeToHast:(e,n)=>wi(t,e,n),codeToHtml:(e,n)=>Ai(t,e,n),getBundledLanguages:()=>({}),getBundledThemes:()=>({}),...t,getInternalContext:()=>t}}var Mi=class extends Error{constructor(e){super(e),this.name=`ShikiError`}};function Ni(){return 2147483648}function Pi(){return typeof performance<`u`?performance.now():Date.now()}var Fi=(e,t)=>e+(t-e%t)%t;async function Ii(e){let t,n,r={};function i(e){n=e,r.HEAPU8=new Uint8Array(e),r.HEAPU32=new Uint32Array(e)}function a(e,t,n){r.HEAPU8.copyWithin(e,t,t+n)}function o(e){try{return t.grow(e-n.byteLength+65535>>>16),i(t.buffer),1}catch{}}function s(e){let t=r.HEAPU8.length;e>>>=0;let n=Ni();if(e>n)return!1;for(let r=1;r<=4;r*=2){let i=t*(1+.2/r);if(i=Math.min(i,e+100663296),o(Math.min(n,Fi(Math.max(e,i),65536))))return!0}return!1}let c=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0;function l(e,t,n=1024){let r=t+n,i=t;for(;e[i]&&!(i>=r);)++i;if(i-t>16&&e.buffer&&c)return c.decode(e.subarray(t,i));let a=``;for(;t>10,56320|e&1023)}}return a}function u(e,t){return e?l(r.HEAPU8,e,t):``}let d={emscripten_get_now:Pi,emscripten_memcpy_big:a,emscripten_resize_heap:s,fd_write:()=>0};async function f(){let n=await e({env:d,wasi_snapshot_preview1:d});t=n.memory,i(t.buffer),Object.assign(r,n),r.UTF8ToString=u}return await f(),r}var Li=Object.defineProperty,Ri=(e,t,n)=>t in e?Li(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Q=(e,t,n)=>Ri(e,typeof t==`symbol`?t:t+``,n),$=null;function zi(e){throw new Mi(e.UTF8ToString(e.getLastOnigError()))}var Bi=class e{constructor(t){Q(this,`utf16Length`),Q(this,`utf8Length`),Q(this,`utf16Value`),Q(this,`utf8Value`),Q(this,`utf16OffsetToUtf8`),Q(this,`utf8OffsetToUtf16`);let n=t.length,r=e._utf8ByteLength(t),i=r!==n,a=i?new Uint32Array(n+1):null;i&&(a[n]=r);let o=i?new Uint32Array(r+1):null;i&&(o[r]=n);let s=new Uint8Array(r),c=0;for(let e=0;e=55296&&r<=56319&&e+1=56320&&n<=57343&&(l=(r-55296<<10)+65536|n-56320,u=!0)}i&&(a[e]=c,u&&(a[e+1]=c),l<=127?o[c+0]=e:l<=2047?(o[c+0]=e,o[c+1]=e):l<=65535?(o[c+0]=e,o[c+1]=e,o[c+2]=e):(o[c+0]=e,o[c+1]=e,o[c+2]=e,o[c+3]=e)),l<=127?s[c++]=l:l<=2047?(s[c++]=192|(l&1984)>>>6,s[c++]=128|(l&63)>>>0):l<=65535?(s[c++]=224|(l&61440)>>>12,s[c++]=128|(l&4032)>>>6,s[c++]=128|(l&63)>>>0):(s[c++]=240|(l&1835008)>>>18,s[c++]=128|(l&258048)>>>12,s[c++]=128|(l&4032)>>>6,s[c++]=128|(l&63)>>>0),u&&e++}this.utf16Length=n,this.utf8Length=r,this.utf16Value=t,this.utf8Value=s,this.utf16OffsetToUtf8=a,this.utf8OffsetToUtf16=o}static _utf8ByteLength(e){let t=0;for(let n=0,r=e.length;n=55296&&i<=56319&&n+1=56320&&t<=57343&&(a=(i-55296<<10)+65536|t-56320,o=!0)}a<=127?t+=1:a<=2047?t+=2:a<=65535?t+=3:t+=4,o&&n++}return t}createString(e){let t=e.omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}},Vi=class e{constructor(t){if(Q(this,`id`,++e.LAST_ID),Q(this,`_onigBinding`),Q(this,`content`),Q(this,`utf16Length`),Q(this,`utf8Length`),Q(this,`utf16OffsetToUtf8`),Q(this,`utf8OffsetToUtf16`),Q(this,`ptr`),!$)throw new Mi(`Must invoke loadWasm first.`);this._onigBinding=$,this.content=t;let n=new Bi(t);this.utf16Length=n.utf16Length,this.utf8Length=n.utf8Length,this.utf16OffsetToUtf8=n.utf16OffsetToUtf8,this.utf8OffsetToUtf16=n.utf8OffsetToUtf16,this.utf8Length<1e4&&!e._sharedPtrInUse?(e._sharedPtr||=$.omalloc(1e4),e._sharedPtrInUse=!0,$.HEAPU8.set(n.utf8Value,e._sharedPtr),this.ptr=e._sharedPtr):this.ptr=n.createString($)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===e._sharedPtr?e._sharedPtrInUse=!1:this._onigBinding.ofree(this.ptr)}};Q(Vi,`LAST_ID`,0),Q(Vi,`_sharedPtr`,0),Q(Vi,`_sharedPtrInUse`,!1);var Hi=Vi,Ui=class{constructor(e){if(Q(this,`_onigBinding`),Q(this,`_ptr`),!$)throw new Mi(`Must invoke loadWasm first.`);let t=[],n=[];for(let r=0,i=e.length;r{let n=e;return n=await n,typeof n==`function`&&(n=await n(t)),typeof n==`function`&&(n=await n(t)),Wi(n)?n=await n.instantiator(t):Gi(n)?n=await n.default(t):(Ki(n)&&(n=n.data),qi(n)?n=typeof WebAssembly.instantiateStreaming==`function`?await Qi(n)(t):await $i(n)(t):Ji(n)||n instanceof WebAssembly.Module?n=await Zi(n)(t):`default`in n&&n.default instanceof WebAssembly.Module&&(n=await Zi(n.default)(t))),`instance`in n&&(n=n.instance),`exports`in n&&(n=n.exports),n})}return Yi=t(),Yi}function Zi(e){return t=>WebAssembly.instantiate(e,t)}function Qi(e){return t=>WebAssembly.instantiateStreaming(e,t)}function $i(e){return async t=>{let n=await e.arrayBuffer();return WebAssembly.instantiate(n,t)}}async function ea(e){return e&&await Xi(e),{createScanner(e){return new Ui(e.map(e=>typeof e==`string`?e:e.source))},createString(e){return new Hi(e)}}}var ta=h(u({__name:`CodeEditor`,setup(e){let u=null,h=null,_=null,{grammars:v,theme:y}=g,ee=l(),b=o(),x=o(),S=l(``);async function te(){u=await ji({themes:`light`in y&&`dark`in y?[y.light,y.dark]:[y],langs:Object.keys(v).map(e=>v[e]),engine:ea(()=>p(()=>import(`./wasm-CUcPxmQS.js`),[]))})}function C(){if(u&&ee.value&&S.value){let e=u.codeToHtml(S.value,{lang:ee.value,...`light`in y&&`dark`in y?{themes:y,defaultColor:!1}:{theme:y}});h&&(h.innerHTML=e.replace(/^]*>/,``).replace(/<\/pre>$/,``).replace(/()(<\/span>)/g,`$1$2`)),_&&(_.innerHTML=e.split(` `).map(()=>`
`).join(``))}}function w(){h&&(h.scrollLeft=x.value?.scrollLeft||0)}return r([S],C,{flush:`post`}),s(async()=>{if(!b.value||!x.value)return;await te(),h=b.value.querySelector(`pre`),_=b.value.querySelector(`.line-numbers`);let e=m(b.value);ee.value=e.lang,S.value=e.code,x.value.addEventListener(`scroll`,w,{passive:!1}),window.addEventListener(`resize`,w)}),t(()=>{x.value?.removeEventListener(`scroll`,w),window.removeEventListener(`resize`,w),u=null,h=null,_=null}),(e,t)=>(n(),a(`div`,{ref_key:`editorEl`,ref:b,class:`code-repl-editor`},[d(e.$slots,`default`,{},void 0,!0),i(c(`textarea`,{ref_key:`textAreaEl`,ref:x,"onUpdate:modelValue":t[0]||=e=>S.value=e,class:`code-repl-input`,spellcheck:`false`},null,512),[[f,S.value]])],512))}}),[[`__scopeId`,`data-v-2a9ff595`]]);export{ta as default};