@shikijs/langs-precompiled 3.2.0 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/gleam.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"Gleam",name:"gleam",patterns:[{include:"#comments"},{include:"#keywords"},{include:"#strings"},{include:"#constant"},{include:"#entity"},{include:"#discards"}],repository:{binary_number:{match:/\b0[bB]0*1[01_]*\b/dgv,name:"constant.numeric.binary.gleam",patterns:[]},comments:{patterns:[{match:/\/\/[^\n]*/dgv,name:"comment.line.gleam"}]},constant:{patterns:[{include:"#binary_number"},{include:"#octal_number"},{include:"#hexadecimal_number"},{include:"#decimal_number"},{include:"#boolean"},{match:/\p{Upper}[\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.type.gleam"}]},decimal_number:{match:/\b(0*[1-9][0-9_]*|0)(\.(0*[1-9][0-9_]*|0)?(e-?0*[1-9][0-9]*)?)?\b/dgv,name:"constant.numeric.decimal.gleam",patterns:[]},discards:{match:/\b_(?:[\p{Alpha}\p{M}\p{Nd}\p{Pc}]+)?\b/dgv,name:"comment.unused.gleam"},entity:{patterns:[{begin:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*)\b\p{space}*\(/dgv,captures:{"1":{name:"entity.name.function.gleam"}},end:/\)/dgv,patterns:[{include:"$self"}]},{match:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*):\p{space}/dgv,name:"variable.parameter.gleam"},{match:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*):/dgv,name:"entity.name.namespace.gleam"}]},hexadecimal_number:{match:/\b0[xX]0*[1-9a-zA-Z][0-9a-zA-Z]*\b/dgv,name:"constant.numeric.hexadecimal.gleam",patterns:[]},keywords:{patterns:[{match:/\b(as|use|case|if|fn|import|let|assert|pub|type|opaque|const|todo|panic|else|try|echo)\b/dgv,name:"keyword.control.gleam"},{match:/(<-|->)/dgv,name:"keyword.operator.arrow.gleam"},{match:/\|>/dgv,name:"keyword.operator.pipe.gleam"},{match:/\.\./dgv,name:"keyword.operator.splat.gleam"},{match:/(==|!=)/dgv,name:"keyword.operator.comparison.gleam"},{match:/([\<\>](?:=\.|\.))/dgv,name:"keyword.operator.comparison.float.gleam"},{match:/(<=|>=|[\<\>])/dgv,name:"keyword.operator.comparison.int.gleam"},{match:/(&&|\|\|)/dgv,name:"keyword.operator.logical.gleam"},{match:/<>/dgv,name:"keyword.operator.string.gleam"},{match:/\|/dgv,name:"keyword.operator.other.gleam"},{match:/(\+\.|-\.|\/\.|\*\.)/dgv,name:"keyword.operator.arithmetic.float.gleam"},{match:/([\+\-\/\*\%])/dgv,name:"keyword.operator.arithmetic.int.gleam"},{match:/=/dgv,name:"keyword.operator.assignment.gleam"}]},octal_number:{match:/\b0[oO]0*[1-7][0-7]*\b/dgv,name:"constant.numeric.octal.gleam",patterns:[]},strings:{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.gleam",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.gleam"}]}},scopeName:"source.gleam",embeddedLangs:undefined,aliases:undefined})
1
+ const lang = Object.freeze({displayName:"Gleam",fileTypes:["gleam"],name:"gleam",patterns:[{include:"#comments"},{include:"#keywords"},{include:"#strings"},{include:"#constant"},{include:"#entity"},{include:"#discards"}],repository:{binary_number:{match:/\b0[bB]0*1[01_]*\b/dgv,name:"constant.numeric.binary.gleam",patterns:[]},comments:{patterns:[{match:/\/\/[^\n]*/dgv,name:"comment.line.gleam"}]},constant:{patterns:[{include:"#binary_number"},{include:"#octal_number"},{include:"#hexadecimal_number"},{include:"#decimal_number"},{match:/\p{Upper}[\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.type.gleam"}]},decimal_number:{match:/\b(0*[1-9][0-9_]*|0)(\.(0*[1-9][0-9_]*|0)?(e-?0*[1-9][0-9]*)?)?\b/dgv,name:"constant.numeric.decimal.gleam",patterns:[]},discards:{match:/\b_(?:[\p{Alpha}\p{M}\p{Nd}\p{Pc}]+)?\b/dgv,name:"comment.unused.gleam"},entity:{patterns:[{begin:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*)\b\p{space}*\(/dgv,captures:{"1":{name:"entity.name.function.gleam"}},end:/\)/dgv,patterns:[{include:"$self"}]},{match:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*):\p{space}/dgv,name:"variable.parameter.gleam"},{match:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*):/dgv,name:"entity.name.namespace.gleam"}]},hexadecimal_number:{match:/\b0[xX]0*[1-9a-zA-Z][0-9a-zA-Z]*\b/dgv,name:"constant.numeric.hexadecimal.gleam",patterns:[]},keywords:{patterns:[{match:/\b(as|use|case|if|fn|import|let|assert|pub|type|opaque|const|todo|panic|else|try|echo)\b/dgv,name:"keyword.control.gleam"},{match:/(<-|->)/dgv,name:"keyword.operator.arrow.gleam"},{match:/\|>/dgv,name:"keyword.operator.pipe.gleam"},{match:/\.\./dgv,name:"keyword.operator.splat.gleam"},{match:/(==|!=)/dgv,name:"keyword.operator.comparison.gleam"},{match:/([\<\>](?:=\.|\.))/dgv,name:"keyword.operator.comparison.float.gleam"},{match:/(<=|>=|[\<\>])/dgv,name:"keyword.operator.comparison.int.gleam"},{match:/(&&|\|\|)/dgv,name:"keyword.operator.logical.gleam"},{match:/<>/dgv,name:"keyword.operator.string.gleam"},{match:/\|/dgv,name:"keyword.operator.other.gleam"},{match:/(\+\.|-\.|\/\.|\*\.)/dgv,name:"keyword.operator.arithmetic.float.gleam"},{match:/([\+\-\/\*\%])/dgv,name:"keyword.operator.arithmetic.int.gleam"},{match:/=/dgv,name:"keyword.operator.assignment.gleam"}]},octal_number:{match:/\b0[oO]0*[1-7][0-7]*\b/dgv,name:"constant.numeric.octal.gleam",patterns:[]},strings:{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.gleam",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.gleam"}]}},scopeName:"source.gleam",embeddedLangs:undefined,aliases:undefined})
2
2
 
3
3
  export default [
4
4
  lang
package/dist/go.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"Go",name:"go",patterns:[{include:"#statements"}],repository:{after_control_variables:{captures:{"1":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.go"}]}},match:/(?<=\brange\b|\bswitch\b|;|\bif\b|\bfor\b|[\<\>]|<=|>=|==|!=|[\p{L}\p{M}\p{N}\p{Pc}][\+\/\-\*\%]|[\p{L}\p{M}\p{N}\p{Pc}][\+\/\-\*\%]=|\|\||&&)\p{space}*((?![\[\]]+)[\p{Alpha}\p{Nd}\-_\!\.\[\]\<\>\=\*\/\+\%\:]+)\p{space}*(?=\{)/dgv},brackets:{patterns:[{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"$self"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"$self"}]},{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,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(?=\()/dgv,name:"entity.name.function.support.builtin.go"},{begin:/(\bnew\b)(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.support.builtin.go"},"2":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#functions"},{include:"#struct_variables_types"},{include:"#type-declarations"},{include:"#generic_types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"},{include:"$self"}]},{begin:/(\bmake\b)(\()((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+(?:\([^\)]+\))?)?(?:[\[\]\*]+)?(?:(?!\bmap\b)[\p{L}\p{M}\p{N}\p{Pc}\.]+)?(\[(?:\P{space}+(?:,\p{space}*\P{space}+)*)?\])?,?)?/dgv,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:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"$self"}]}]},comments:{patterns:[{begin:/(\/\*)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.go"}},end:/(\*\/)/dgv,endCaptures:{"1":{name:"punctuation.definition.comment.go"}},name:"comment.block.go"},{begin:/(\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.go"}},end:/(?:\n|(?=\n?$))/dgv,name:"comment.line.double-slash.go"}]},const_assignment:{patterns:[{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.constant.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#generic_types"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\bconst\b)\p{space}*(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.]+)*)\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+(?:\([^\)]+\))?)?(?!(?:[\[\]\*]+)?\b(?:struct|func|map)\b)(?:[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+)*)?\p{space}*=?)?/dgv},{begin:/(?<=\bconst\b)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.constant.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#generic_types"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/^\p{space}*(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.]+)*)\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+(?:\([^\)]+\))?)?(?!(?:[\[\]\*]+)?\b(?:struct|func|map)\b)(?:[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+)*)?\p{space}*=?)?/dgv},{include:"$self"}]}]},delimiters:{patterns:[{match:/,/dgv,name:"punctuation.other.comma.go"},{match:/\.(?!\.\.)/dgv,name:"punctuation.other.period.go"},{match:/:(?!=)/dgv,name:"punctuation.other.colon.go"}]},double_parentheses_types:{captures:{"1":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(\([\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*\&]+\))(?=\()/dgv},field_hover:{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{patterns:[{match:/\binvalid\b\p{space}+\btype\b/dgv,name:"invalid.field.go"},{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=^\bfield\b)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\*\.]+)\p{space}+([\p{space}\P{space}]+)/dgv},function_declaration:{begin:/^(\bfunc\b)\p{space}*(\([^\)]+\)\p{space}*)?(?:([\p{L}\p{M}\p{N}\p{Pc}]+)(?=[\(\[]))?/dgv,beginCaptures:{"1":{name:"keyword.function.go"},"2":{patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{captures:{"1":{name:"variable.parameter.go"},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/([\p{L}\p{M}\p{N}\p{Pc}]+\p{space}+)?([\p{L}\p{M}\p{N}\p{Pc}\.\*]+(?:\[(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+(?:,\p{space}+)?)+)?\])?)/dgv},{include:"$self"}]}]},"3":{patterns:[{match:/\p{Nd}[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid.illegal.identifier.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.function.go"}]}},end:/(?<=\))\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?!(?:[\[\]\*]+)?\b(?:struct\b|interface\b))[\p{L}\p{M}\p{N}\p{Pc}\.\-\*\[\]]+)?\p{space}*(?=\{)/dgv,endCaptures:{"1":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]},{begin:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{captures:{"1":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\))\p{space}*((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\*\.\[\]\<\>\-]+\p{space}*(?:\/[\/\*][^\n]*)?)(?=\n?$)/dgv},{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:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]}},match:/((?:(?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?\b[\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+(?=(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?:[\[\]\*]+)?\b(?:struct|interface)\b\p{space}*\{)/dgv},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]}},match:/(?:(?<=\()|^\p{space}*)((?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+(?:\/[\/\*][^\n]*)?)(?=\n?$)/dgv},{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/((?:(?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?\b[\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\[\]\.\*]+)?(?:\bfunc\b\((?:[^\)]+)?\)(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\p{space}*)+(?:[\p{L}\p{M}\p{N}\p{Pc}\*\.\[\]]+|\((?:[^\)]+)?\))?|(?:(?:[\[\]\*]+)?[\p{L}\p{M}\p{N}\p{Pc}\*\.]+(?:\[[^\]]+\])?(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?)+))/dgv},{begin:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv},{include:"$self"}]},functions:{begin:/(\bfunc\b)(?=\()/dgv,beginCaptures:{"1":{name:"keyword.function.go"}},end:/(?<=\))(\p{space}*(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(\p{space}*(?:(?:[\[\]\*]+)?[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(?:\[(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(?:\[(?:[^\]]+)?\])?(?:,\p{space}+)?)+\]|\((?:[^\)]+)?\))?(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?\p{space}*(?=\{)|\p{space}*(?:(?:[\[\]\*]+)?(?!\bfunc\b)[\p{L}\p{M}\p{N}\p{Pc}\.\*]+(?:\[(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(?:\[(?:[^\]]+)?\])?(?:,\p{space}+)?)+\])?(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?|\((?:[^\)]+)?\)))?/dgv,endCaptures:{"1":{patterns:[{include:"#type-declarations"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,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:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"},{include:"$self"}]},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(\bfunc\b)(\([^\/]*?\)\p{space}+\([^\/]*?\))\p{space}+(?=\{)/dgv},generic_param_types:{patterns:[{include:"#struct_variables_types"},{include:"#interface_variables_types"},{include:"#type-declarations-without-brackets"},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]}},match:/((?:(?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?\b[\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+(?=(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?:[\[\]\*]+)?\b(?:struct|interface)\b\p{space}*\{)/dgv},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]}},match:/(?:(?<=\()|^\p{space}*)((?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+(?:\/[\/\*][^\n]*)?)(?=\n?$)/dgv},{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"3":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/((?:(?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?\b[\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\[\]\.\*]+)?(?:\bfunc\b\((?:[^\)]+)?\)(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\p{space}*)+(?:[\p{L}\p{M}\p{N}\p{Pc}\*\.]+|\((?:[^\)]+)?\))?|(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\*\.\~]+|\[(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(?:\[(?:[^\]]+)?\])?(?:,\p{space}+)?)+\])(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?)+))/dgv},{begin:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/\b([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv},{include:"$self"}]},generic_types:{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{patterns:[{include:"#parameter-variable-types"}]}},match:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)(\[(?:[^\]]+)?\])/dgv},"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_select_case_variables"},{include:"#other_variables"}]},import:{patterns:[{begin:/\b(import)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.control.import.go"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{include:"#imports"}]}]},imports:{patterns:[{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,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:/(\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.]+)?\p{space}*((")([^"]*)("))/dgv},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.imports.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.imports.end.bracket.round.go"}},patterns:[{include:"#comments"},{include:"#imports"}]},{include:"$self"}]},interface_variables_types:{begin:/(\binterface\b)\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"keyword.interface.go"},"2":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,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:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv}]},keywords:{patterns:[{match:/\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\b/dgv,name:"keyword.control.go"},{match:/\bchan\b/dgv,name:"keyword.channel.go"},{match:/\bconst\b/dgv,name:"keyword.const.go"},{match:/\bvar\b/dgv,name:"keyword.var.go"},{match:/\bfunc\b/dgv,name:"keyword.function.go"},{match:/\binterface\b/dgv,name:"keyword.interface.go"},{match:/\bmap\b/dgv,name:"keyword.map.go"},{match:/\bstruct\b/dgv,name:"keyword.struct.go"},{match:/\bimport\b/dgv,name:"keyword.control.import.go"},{match:/\btype\b/dgv,name:"keyword.type.go"}]},label_loop_variables:{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.label.go"}]}},match:/(^(?:\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+:\p{space}*(?=\n?$)|\p{space}*\b(?:break\b|goto\b|continue\b)\p{space}+[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}*\/[\/\*]\p{space}*[^\n]*)?(?=\n?$)))/dgv},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/dgv},map_types:{begin:/(\bmap\b)(\[)/dgv,beginCaptures:{"1":{name:"keyword.map.go"},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/(\])((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?!(?:[\[\]\*]+)?\b(?:func|struct|map)\b)(?:[\*\[\]]+)?[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:\[(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}]+)*)?\])?)?/dgv,endCaptures:{"1":{name:"punctuation.definition.end.bracket.square.go"},"2":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{include:"#functions"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},multi_types:{begin:/(\btype\b)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.type.go"},"2":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,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:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},numeric_literals:{captures:{"0":{patterns:[{begin:/(?=[^\n])/dgv,end:/(?:\n|(?=\n?$))/dgv,patterns:[{captures:{"1":{name:"constant.numeric.decimal.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"10":{name:"keyword.other.unit.imaginary.go"},"11":{name:"constant.numeric.decimal.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"53":{name:"keyword.other.unit.imaginary.go"}},match:/(?:(?:(?:(?:(?:(?=[0-9\.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=\p{AHex})_(?=\p{AHex})))*)((?:(?<=[0-9])\.|\.(?=[0-9])))([0-9](?:[0-9]|((?<=\p{AHex})_(?=\p{AHex})))*)?(?:(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*))?(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$))|(?=[0-9\.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=\p{AHex})_(?=\p{AHex})))*)(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|((?:(?<=[0-9])\.|\.(?=[0-9])))([0-9](?:[0-9]|((?<=\p{AHex})_(?=\p{AHex})))*)(?:(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*))?(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?(\p{AHex}(?:\p{AHex}|((?<=\p{AHex})_(?=\p{AHex})))*)((?:(?<=\p{AHex})\.|\.(?=\p{AHex})))(\p{AHex}(?:\p{AHex}|((?<=\p{AHex})_(?=\p{AHex})))*)?(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?(\p{AHex}(?:\p{AHex}|((?<=\p{AHex})_(?=\p{AHex})))*)(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])((?:(?<=\p{AHex})\.|\.(?=\p{AHex})))(\p{AHex}(?:\p{AHex}|((?<=\p{AHex})_(?=\p{AHex})))*)(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))/dgvy},{captures:{"1":{name:"constant.numeric.decimal.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"2":{name:"punctuation.separator.constant.numeric.go"},"3":{name:"keyword.other.unit.imaginary.go"},"4":{name:"keyword.other.unit.binary.go"},"5":{name:"constant.numeric.binary.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"6":{name:"punctuation.separator.constant.numeric.go"},"7":{name:"keyword.other.unit.imaginary.go"},"8":{name:"keyword.other.unit.octal.go"},"9":{name:"constant.numeric.octal.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"10":{name:"punctuation.separator.constant.numeric.go"},"11":{name:"keyword.other.unit.imaginary.go"},"12":{name:"keyword.other.unit.hexadecimal.go"},"13":{name:"constant.numeric.hexadecimal.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"14":{name:"punctuation.separator.constant.numeric.go"},"15":{name:"keyword.other.unit.imaginary.go"}},match:/(?:(?:(?:(?=[0-9\.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=\p{AHex})_(?=\p{AHex})))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$))|(0[bB])_?([01](?:[01]|((?<=\p{AHex})_(?=\p{AHex})))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[oO]?)_?((?:[0-7]|((?<=\p{AHex})_(?=\p{AHex})))+)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?(\p{AHex}(?:\p{AHex}|((?<=\p{AHex})_(?=\p{AHex})))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))/dgvy},{match:/(?:[0-9a-zA-Z_\.]|(?<=[eEpP])[\+\-])+/dgv,name:"invalid.illegal.constant.numeric.go"}]}]}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])\.?\p{Nd}(?:[0-9a-zA-Z_\.]|(?<=[eEpP])[\+\-])*/dgv},operators:{patterns:[{match:/([\*\&]+)(?!\p{Nd})(?=[\p{L}\p{M}\p{N}\p{Pc}\[\]]|<-)/dgv,name:"keyword.operator.address.go"},{match:/<-/dgv,name:"keyword.operator.channel.go"},{match:/--/dgv,name:"keyword.operator.decrement.go"},{match:/\+\+/dgv,name:"keyword.operator.increment.go"},{match:/(==|!=|<=|>=|<(?!<)|>(?!>))/dgv,name:"keyword.operator.comparison.go"},{match:/(&&|\|\||!)/dgv,name:"keyword.operator.logical.go"},{match:/(=|\+=|-=|\|=|\^=|\*=|\/=|:=|%=|<<=|>>=|&\^=|&=)/dgv,name:"keyword.operator.assignment.go"},{match:/([\+\-\*\/\%])/dgv,name:"keyword.operator.arithmetic.go"},{match:/(&(?!\^)|[\|\^]|&\^|<<|>>|~)/dgv,name:"keyword.operator.arithmetic.bitwise.go"},{match:/\.\.\./dgv,name:"keyword.operator.ellipsis.go"}]},other_struct_interface_expressions:{patterns:[{include:"#after_control_variables"},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{patterns:[{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"},{include:"$self"}]}]}},match:/(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+)(\[(?:[^\]]+)?\])?(?=\{)(?<!\b(?:struct\b|interface\b))/dgv}]},other_variables:{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.go"},package_name:{patterns:[{begin:/\b(package)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.package.go"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{match:/\p{Nd}[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid.illegal.identifier.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.package.go"}]}]},"parameter-variable-types":{patterns:[{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{begin:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]}]},property_variables:{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]}},match:/(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+:(?!=))/dgv},raw_string_literals:{begin:/`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.go"}},end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.go"}},name:"string.quoted.raw.go",patterns:[{include:"#string_placeholder"}]},runes:{patterns:[{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.go"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.go"}},name:"string.quoted.rune.go",patterns:[{match:/(\\([0-7]{3}|[abfnrtv\\'"]|x\p{AHex}{2}|u\p{AHex}{4}|U\p{AHex}{8})|[^\n])(?=')/dgvy,name:"constant.other.rune.go"},{match:/[^']+/dgv,name:"invalid.illegal.unknown-rune.go"}]}]},single_type:{patterns:[{captures:{"1":{name:"keyword.type.go"},"2":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"3":{patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"},{include:"$self"}]},{include:"#type-declarations"},{include:"#generic_types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/^\p{space}*(\btype\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)\p{space}+(?!(?:=\p{space}*)?(?:[\[\]\*]+)?\b(?:struct|interface)\b)([\p{space}\P{space}]+)/dgv},{begin:/(?:^|\p{space}+)(\btype\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)(?=\[)/dgv,beginCaptures:{"1":{name:"keyword.type.go"},"2":{patterns:[{include:"#type-declarations-without-brackets"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},end:/(?<=\])(\p{space}+(?:=\p{space}*)?(?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?!(?:[\[\]\*]+)?\b(?:struct\b|interface\b|func\b))[\p{L}\p{M}\p{N}\p{Pc}\.\-\*\[\]]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+)*)?/dgv,endCaptures:{"1":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},patterns:[{include:"#struct_variables_types"},{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}]},slice_index_variables:{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.go"}]}},match:/(?<=[\p{L}\p{M}\p{N}\p{Pc}]\[)((?:\b[\p{L}\p{M}\p{N}\p{Pc}\.\*\+\/\-\%\<\>\|\&]+:|:\b[\p{L}\p{M}\p{N}\p{Pc}\.\*\+\/\-\%\<\>\|\&]+)(?:\b[\p{L}\p{M}\p{N}\p{Pc}\.\*\+\/\-\%\<\>\|\&]+)?(?::\b[\p{L}\p{M}\p{N}\p{Pc}\.\*\+\/\-\%\<\>\|\&]+)?)(?=\])/dgv},statements:{patterns:[{include:"#package_name"},{include:"#import"},{include:"#syntax_errors"},{include:"#group-functions"},{include:"#group-types"},{include:"#group-variables"},{include:"#field_hover"}]},storage_types:{patterns:[{match:/\bbool\b/dgv,name:"storage.type.boolean.go"},{match:/\bbyte\b/dgv,name:"storage.type.byte.go"},{match:/\berror\b/dgv,name:"storage.type.error.go"},{match:/\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\b/dgv,name:"storage.type.numeric.go"},{match:/\brune\b/dgv,name:"storage.type.rune.go"},{match:/\bstring\b/dgv,name:"storage.type.string.go"},{match:/\buintptr\b/dgv,name:"storage.type.uintptr.go"},{match:/\bany\b/dgv,name:"entity.name.type.any.go"}]},string_escaped_char:{patterns:[{match:/\\([0-7]{3}|[abfnrtv\\'"]|x\p{AHex}{2}|u\p{AHex}{4}|U\p{AHex}{8})/dgv,name:"constant.character.escape.go"},{match:/\\[^0-7xuUabfnrtv'"]/dgv,name:"invalid.illegal.unknown-escape.go"}]},string_literals:{patterns:[{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.go"}},end:/"/dgv,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:/%(\[\p{Nd}+\])?([\+\#\-0 ]{0,2}((\p{Nd}+|\*)?(\.?(\p{Nd}+|\*|(\[\p{Nd}+\])\*?)?(\[\p{Nd}+\])?)?))?[vT\%tbcdoqxXUeEfFgGspw]/dgv,name:"constant.other.placeholder.go"}]},struct_interface_declaration:{captures:{"1":{name:"keyword.type.go"},"2":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/^\p{space}*(\btype\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv},struct_variable_types_fields_multi:{patterns:[{begin:/([\p{L}\p{M}\p{N}\p{Pc}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+)*(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\p{space}+(?:[\[\]\*]+)?)(\bstruct\b)\p{space}*(\{)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{name:"keyword.struct.go"},"3":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#struct_variables_types_fields"},{include:"$self"}]},{begin:/([\p{L}\p{M}\p{N}\p{Pc}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+)*(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\p{space}+(?:[\[\]\*]+)?)(\binterface\b)\p{space}*(\{)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{name:"keyword.interface.go"},"3":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#interface_variables_types_field"},{include:"$self"}]},{begin:/([\p{L}\p{M}\p{N}\p{Pc}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+)*(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\p{space}+(?:[\[\]\*]+)?)(\bfunc\b)\p{space}*(\()/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{name:"keyword.function.go"},"3":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"},{include:"$self"}]},{include:"#parameter-variable-types"}]},struct_variables_types:{begin:/(\bstruct\b)\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"keyword.struct.go"},"2":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,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:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\{)\p{space}*((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]]+)\p{space}*(?=\})/dgv},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\{)\p{space}*((?:(?:[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}+)((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]]+)\p{space}*(?=\})/dgv},{captures:{"1":{patterns:[{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/((?:(?:[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}+)?((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\P{space}+;?)/dgv}]}},match:/(?<=\{)((?:\p{space}*(?:(?:(?:[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}+)?(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\P{space}+;?)+)\p{space}*(?=\})/dgv},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\.\*]+\p{space}*)(?:(?=[\`\/"])|(?=\n?$))/dgv},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/((?:(?:[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}+)([^\`"\/]+)/dgv}]},support_functions:{captures:{"1":{name:"entity.name.function.support.go"},"2":{patterns:[{include:"#type-declarations"},{match:/\p{Nd}[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid.illegal.identifier.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.function.support.go"}]},"3":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?:((?<=\.)\b[\p{L}\p{M}\p{N}\p{Pc}]+)|(\b[\p{L}\p{M}\p{N}\p{Pc}]+))(\[(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}"']+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}]+)*)?\])?(?=\()/dgv},switch_select_case_variables:{captures:{"1":{name:"keyword.control.go"},"2":{patterns:[{include:"#type-declarations"},{include:"#support_functions"},{include:"#variable_assignment"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.go"}]}},match:/^\p{space}*(\bcase\b)\p{space}+([\p{space}\P{space}]+:\p{space}*(?:\/[\/\*][^\n]*)?)(?=\n?$)/dgv},switch_types:{begin:/(?<=\bswitch\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}]+\p{space}*:=)?\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\.\*\(\)\[\]\+\/\-\%\<\>\|\&]+)(\.\(\btype\b\)\p{space}*)(\{)/dgv,beginCaptures:{"1":{patterns:[{include:"#operators"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.assignment.go"}]},"2":{patterns:[{include:"#support_functions"},{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.go"}]},"3":{patterns:[{include:"#delimiters"},{include:"#brackets"},{match:/\btype\b/dgv,name:"keyword.type.go"}]},"4":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{captures:{"1":{name:"keyword.control.go"},"2":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"3":{name:"punctuation.other.colon.go"},"4":{patterns:[{include:"#comments"}]}},match:/^\p{space}*(\bcase\b)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\.\,\*\=\<\>\!\p{space}]+)(:)(\p{space}*\/[\/\*]\p{space}*[^\n]*)?(?=\n?$)/dgv},{begin:/\bcase\b/dgv,beginCaptures:{"0":{name:"keyword.control.go"}},end:/:/dgv,endCaptures:{"0":{name:"punctuation.other.colon.go"}},patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},{include:"$self"}]},syntax_errors:{patterns:[{captures:{"1":{name:"invalid.illegal.slice.go"}},match:/\[\](\p{space}+)/dgv},{match:/\b0[0-7]*[89]\p{Nd}*\b/dgv,name:"invalid.illegal.numeric.go"}]},terminators:{match:/;/dgv,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"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\.\()(?:(\btype\b)|((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+))(?=\))/dgv},var_assignment:{patterns:[{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.assignment.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#generic_types"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\bvar\b)\p{space}*(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.]+)*)\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+(?:\([^\)]+\))?)?(?!(?:[\[\]\*]+)?\b(?:struct|func|map)\b)(?:[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+)*)?\p{space}*=?)?/dgv},{begin:/(?<=\bvar\b)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.assignment.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#generic_types"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/^\p{space}*(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.]+)*)\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+(?:\([^\)]+\))?)?(?!(?:[\[\]\*]+)?\b(?:struct|func|map)\b)(?:[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+)*)?\p{space}*=?)?/dgv},{include:"$self"}]}]},variable_assignment:{patterns:[{captures:{"0":{patterns:[{include:"#delimiters"},{match:/\p{Nd}[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid.illegal.identifier.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.assignment.go"}]}},match:/\b[\p{L}\p{M}\p{N}\p{Pc}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+)*(?=\p{space}*:=)/dgv},{captures:{"0":{patterns:[{include:"#delimiters"},{include:"#operators"},{match:/\p{Nd}[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid.illegal.identifier.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.assignment.go"}]}},match:/\b[\p{L}\p{M}\p{N}\p{Pc}\.\*]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)*(?=\p{space}*=(?!=))/dgv}]}},scopeName:"source.go",embeddedLangs:undefined,aliases:undefined})
3
+ const lang = Object.freeze({displayName:"Go",name:"go",patterns:[{include:"#statements"}],repository:{after_control_variables:{captures:{"1":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.go"}]}},match:/(?<=\brange\b|\bswitch\b|;|\bif\b|\bfor\b|[\<\>]|<=|>=|==|!=|[\p{L}\p{M}\p{N}\p{Pc}][\+\/\-\*\%]|[\p{L}\p{M}\p{N}\p{Pc}][\+\/\-\*\%]=|\|\||&&)\p{space}*((?![\[\]]+)[\p{Alpha}\p{Nd}\-_\!\.\[\]\<\>\=\*\/\+\%\:]+)\p{space}*(?=\{)/dgv},brackets:{patterns:[{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"$self"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"$self"}]},{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,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(?=\()/dgv,name:"entity.name.function.support.builtin.go"},{begin:/(\bnew\b)(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.support.builtin.go"},"2":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#functions"},{include:"#struct_variables_types"},{include:"#type-declarations"},{include:"#generic_types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"},{include:"$self"}]},{begin:/(\bmake\b)(\()((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+(?:\([^\)]+\))?)?(?:[\[\]\*]+)?(?:(?!\bmap\b)[\p{L}\p{M}\p{N}\p{Pc}\.]+)?(\[(?:\P{space}+(?:,\p{space}*\P{space}+)*)?\])?,?)?/dgv,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:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"$self"}]}]},comments:{patterns:[{begin:/(\/\*)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.go"}},end:/(\*\/)/dgv,endCaptures:{"1":{name:"punctuation.definition.comment.go"}},name:"comment.block.go"},{begin:/(\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.go"}},end:/(?:\n|(?=\n?$))/dgv,name:"comment.line.double-slash.go"}]},const_assignment:{patterns:[{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.constant.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#generic_types"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\bconst\b)\p{space}*(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.]+)*)\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+(?:\([^\)]+\))?)?(?!(?:[\[\]\*]+)?\b(?:struct|func|map)\b)(?:[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+)*)?\p{space}*=?)?/dgv},{begin:/(?<=\bconst\b)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.constant.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#generic_types"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/^\p{space}*(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.]+)*)\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+(?:\([^\)]+\))?)?(?!(?:[\[\]\*]+)?\b(?:struct|func|map)\b)(?:[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+)*)?\p{space}*=?)?/dgv},{include:"$self"}]}]},delimiters:{patterns:[{match:/,/dgv,name:"punctuation.other.comma.go"},{match:/\.(?!\.\.)/dgv,name:"punctuation.other.period.go"},{match:/:(?!=)/dgv,name:"punctuation.other.colon.go"}]},double_parentheses_types:{captures:{"1":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(\((?:[\[\]\*]+)?[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:\[(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}]+)*)?\])?\))(?=\()/dgv},field_hover:{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{patterns:[{match:/\binvalid\b\p{space}+\btype\b/dgv,name:"invalid.field.go"},{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=^\bfield\b)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\*\.]+)\p{space}+([\p{space}\P{space}]+)/dgv},function_declaration:{begin:/^(\bfunc\b)\p{space}*(\([^\)]+\)\p{space}*)?(?:([\p{L}\p{M}\p{N}\p{Pc}]+)(?=[\(\[]))?/dgv,beginCaptures:{"1":{name:"keyword.function.go"},"2":{patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{captures:{"1":{name:"variable.parameter.go"},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/([\p{L}\p{M}\p{N}\p{Pc}]+\p{space}+)?([\p{L}\p{M}\p{N}\p{Pc}\.\*]+(?:\[(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+(?:,\p{space}+)?)+)?\])?)/dgv},{include:"$self"}]}]},"3":{patterns:[{match:/\p{Nd}[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid.illegal.identifier.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.function.go"}]}},end:/(?<=\))\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?!(?:[\[\]\*]+)?\b(?:struct\b|interface\b))[\p{L}\p{M}\p{N}\p{Pc}\.\-\*\[\]]+)?\p{space}*(?=\{)/dgv,endCaptures:{"1":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]},{begin:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{captures:{"1":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\))\p{space}*((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\*\.\[\]\<\>\-]+\p{space}*(?:\/[\/\*][^\n]*)?)(?=\n?$)/dgv},{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:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]}},match:/((?:(?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?\b[\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+(?=(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?:[\[\]\*]+)?\b(?:struct|interface)\b\p{space}*\{)/dgv},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]}},match:/(?:(?<=\()|^\p{space}*)((?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+(?:\/[\/\*][^\n]*)?)(?=\n?$)/dgv},{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/((?:(?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?\b[\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\[\]\.\*]+)?(?:\bfunc\b\((?:[^\)]+)?\)(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\p{space}*)+(?:[\p{L}\p{M}\p{N}\p{Pc}\*\.\[\]]+|\((?:[^\)]+)?\))?|(?:(?:[\[\]\*]+)?[\p{L}\p{M}\p{N}\p{Pc}\*\.]+(?:\[[^\]]+\])?(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?)+))/dgv},{begin:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv},{include:"$self"}]},functions:{begin:/(\bfunc\b)(?=\()/dgv,beginCaptures:{"1":{name:"keyword.function.go"}},end:/(?<=\))(\p{space}*(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(\p{space}*(?:(?:[\[\]\*]+)?[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(?:\[(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(?:\[(?:[^\]]+)?\])?(?:,\p{space}+)?)+\]|\((?:[^\)]+)?\))?(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?\p{space}*(?=\{)|\p{space}*(?:(?:[\[\]\*]+)?(?!\bfunc\b)[\p{L}\p{M}\p{N}\p{Pc}\.\*]+(?:\[(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(?:\[(?:[^\]]+)?\])?(?:,\p{space}+)?)+\])?(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?|\((?:[^\)]+)?\)))?/dgv,endCaptures:{"1":{patterns:[{include:"#type-declarations"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,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:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"},{include:"$self"}]},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(\bfunc\b)(\([^\/]*?\)\p{space}+\([^\/]*?\))\p{space}+(?=\{)/dgv},generic_param_types:{patterns:[{include:"#struct_variables_types"},{include:"#interface_variables_types"},{include:"#type-declarations-without-brackets"},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]}},match:/((?:(?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?\b[\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+(?=(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?:[\[\]\*]+)?\b(?:struct|interface)\b\p{space}*\{)/dgv},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]}},match:/(?:(?<=\()|^\p{space}*)((?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+(?:\/[\/\*][^\n]*)?)(?=\n?$)/dgv},{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.parameter.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"3":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/((?:(?:\b[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?\b[\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\[\]\.\*]+)?(?:\bfunc\b\((?:[^\)]+)?\)(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\p{space}*)+(?:[\p{L}\p{M}\p{N}\p{Pc}\*\.]+|\((?:[^\)]+)?\))?|(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\*\.\~]+|\[(?:(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(?:\[(?:[^\]]+)?\])?(?:,\p{space}+)?)+\])(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?)+))/dgv},{begin:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/\b([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv},{include:"$self"}]},generic_types:{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{patterns:[{include:"#parameter-variable-types"}]}},match:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)(\[(?:[^\]]+)?\])/dgv},"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_select_case_variables"},{include:"#other_variables"}]},import:{patterns:[{begin:/\b(import)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.control.import.go"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{include:"#imports"}]}]},imports:{patterns:[{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,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:/(\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.]+)?\p{space}*((")([^"]*)("))/dgv},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.imports.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.imports.end.bracket.round.go"}},patterns:[{include:"#comments"},{include:"#imports"}]},{include:"$self"}]},interface_variables_types:{begin:/(\binterface\b)\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"keyword.interface.go"},"2":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,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:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv}]},keywords:{patterns:[{match:/\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\b/dgv,name:"keyword.control.go"},{match:/\bchan\b/dgv,name:"keyword.channel.go"},{match:/\bconst\b/dgv,name:"keyword.const.go"},{match:/\bvar\b/dgv,name:"keyword.var.go"},{match:/\bfunc\b/dgv,name:"keyword.function.go"},{match:/\binterface\b/dgv,name:"keyword.interface.go"},{match:/\bmap\b/dgv,name:"keyword.map.go"},{match:/\bstruct\b/dgv,name:"keyword.struct.go"},{match:/\bimport\b/dgv,name:"keyword.control.import.go"},{match:/\btype\b/dgv,name:"keyword.type.go"}]},label_loop_variables:{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.label.go"}]}},match:/(^(?:\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+:\p{space}*(?=\n?$)|\p{space}*\b(?:break\b|goto\b|continue\b)\p{space}+[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}*\/[\/\*]\p{space}*[^\n]*)?(?=\n?$)))/dgv},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/dgv},map_types:{begin:/(\bmap\b)(\[)/dgv,beginCaptures:{"1":{name:"keyword.map.go"},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/(\])((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?!(?:[\[\]\*]+)?\b(?:func|struct|map)\b)(?:[\*\[\]]+)?[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:\[(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}]+)*)?\])?)?/dgv,endCaptures:{"1":{name:"punctuation.definition.end.bracket.square.go"},"2":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{include:"#functions"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},multi_types:{begin:/(\btype\b)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.type.go"},"2":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,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:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},numeric_literals:{captures:{"0":{patterns:[{begin:/(?=[^\n])/dgv,end:/(?:\n|(?=\n?$))/dgv,patterns:[{captures:{"1":{name:"constant.numeric.decimal.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"10":{name:"keyword.other.unit.imaginary.go"},"11":{name:"constant.numeric.decimal.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,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:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"53":{name:"keyword.other.unit.imaginary.go"}},match:/(?:(?:(?:(?:(?:(?=[0-9\.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=\p{AHex})_(?=\p{AHex})))*)((?:(?<=[0-9])\.|\.(?=[0-9])))([0-9](?:[0-9]|((?<=\p{AHex})_(?=\p{AHex})))*)?(?:(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*))?(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$))|(?=[0-9\.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=\p{AHex})_(?=\p{AHex})))*)(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|((?:(?<=[0-9])\.|\.(?=[0-9])))([0-9](?:[0-9]|((?<=\p{AHex})_(?=\p{AHex})))*)(?:(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*))?(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?(\p{AHex}(?:\p{AHex}|((?<=\p{AHex})_(?=\p{AHex})))*)((?:(?<=\p{AHex})\.|\.(?=\p{AHex})))(\p{AHex}(?:\p{AHex}|((?<=\p{AHex})_(?=\p{AHex})))*)?(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?(\p{AHex}(?:\p{AHex}|((?<=\p{AHex})_(?=\p{AHex})))*)(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])((?:(?<=\p{AHex})\.|\.(?=\p{AHex})))(\p{AHex}(?:\p{AHex}|((?<=\p{AHex})_(?=\p{AHex})))*)(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=\p{AHex})_(?=\p{AHex}))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))/dgvy},{captures:{"1":{name:"constant.numeric.decimal.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"2":{name:"punctuation.separator.constant.numeric.go"},"3":{name:"keyword.other.unit.imaginary.go"},"4":{name:"keyword.other.unit.binary.go"},"5":{name:"constant.numeric.binary.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"6":{name:"punctuation.separator.constant.numeric.go"},"7":{name:"keyword.other.unit.imaginary.go"},"8":{name:"keyword.other.unit.octal.go"},"9":{name:"constant.numeric.octal.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"10":{name:"punctuation.separator.constant.numeric.go"},"11":{name:"keyword.other.unit.imaginary.go"},"12":{name:"keyword.other.unit.hexadecimal.go"},"13":{name:"constant.numeric.hexadecimal.go",patterns:[{match:/(?<=\p{AHex})_(?=\p{AHex})/dgv,name:"punctuation.separator.constant.numeric.go"}]},"14":{name:"punctuation.separator.constant.numeric.go"},"15":{name:"keyword.other.unit.imaginary.go"}},match:/(?:(?:(?:(?=[0-9\.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=\p{AHex})_(?=\p{AHex})))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$))|(0[bB])_?([01](?:[01]|((?<=\p{AHex})_(?=\p{AHex})))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[oO]?)_?((?:[0-7]|((?<=\p{AHex})_(?=\p{AHex})))+)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?(\p{AHex}(?:\p{AHex}|((?<=\p{AHex})_(?=\p{AHex})))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))/dgvy},{match:/(?:[0-9a-zA-Z_\.]|(?<=[eEpP])[\+\-])+/dgv,name:"invalid.illegal.constant.numeric.go"}]}]}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])\.?\p{Nd}(?:[0-9a-zA-Z_\.]|(?<=[eEpP])[\+\-])*/dgv},operators:{patterns:[{match:/([\*\&]+)(?!\p{Nd})(?=[\p{L}\p{M}\p{N}\p{Pc}\[\]]|<-)/dgv,name:"keyword.operator.address.go"},{match:/<-/dgv,name:"keyword.operator.channel.go"},{match:/--/dgv,name:"keyword.operator.decrement.go"},{match:/\+\+/dgv,name:"keyword.operator.increment.go"},{match:/(==|!=|<=|>=|<(?!<)|>(?!>))/dgv,name:"keyword.operator.comparison.go"},{match:/(&&|\|\||!)/dgv,name:"keyword.operator.logical.go"},{match:/(=|\+=|-=|\|=|\^=|\*=|\/=|:=|%=|<<=|>>=|&\^=|&=)/dgv,name:"keyword.operator.assignment.go"},{match:/([\+\-\*\/\%])/dgv,name:"keyword.operator.arithmetic.go"},{match:/(&(?!\^)|[\|\^]|&\^|<<|>>|~)/dgv,name:"keyword.operator.arithmetic.bitwise.go"},{match:/\.\.\./dgv,name:"keyword.operator.ellipsis.go"}]},other_struct_interface_expressions:{patterns:[{include:"#after_control_variables"},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+)(\[(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}]+)*)?\])?(?=\{)(?<!\b(?:struct\b|interface\b))/dgv}]},other_variables:{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.go"},package_name:{patterns:[{begin:/\b(package)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.package.go"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{match:/\p{Nd}[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid.illegal.identifier.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.package.go"}]}]},"parameter-variable-types":{patterns:[{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{begin:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)?(\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"2":{name:"punctuation.definition.begin.bracket.square.go"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]}]},property_variables:{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]}},match:/(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+:(?!=))/dgv},raw_string_literals:{begin:/`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.go"}},end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.go"}},name:"string.quoted.raw.go",patterns:[{include:"#string_placeholder"}]},runes:{patterns:[{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.go"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.go"}},name:"string.quoted.rune.go",patterns:[{match:/(\\([0-7]{3}|[abfnrtv\\'"]|x\p{AHex}{2}|u\p{AHex}{4}|U\p{AHex}{8})|[^\n])(?=')/dgvy,name:"constant.other.rune.go"},{match:/[^']+/dgv,name:"invalid.illegal.unknown-rune.go"}]}]},single_type:{patterns:[{captures:{"1":{name:"keyword.type.go"},"2":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"3":{patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"},{include:"$self"}]},{include:"#type-declarations"},{include:"#generic_types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/^\p{space}*(\btype\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)\p{space}+(?!(?:=\p{space}*)?(?:[\[\]\*]+)?\b(?:struct|interface)\b)([\p{space}\P{space}]+)/dgv},{begin:/(?:^|\p{space}+)(\btype\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)(?=\[)/dgv,beginCaptures:{"1":{name:"keyword.type.go"},"2":{patterns:[{include:"#type-declarations-without-brackets"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},end:/(?<=\])(\p{space}+(?:=\p{space}*)?(?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?!(?:[\[\]\*]+)?\b(?:struct\b|interface\b|func\b))[\p{L}\p{M}\p{N}\p{Pc}\.\-\*\[\]]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+)*)?/dgv,endCaptures:{"1":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},patterns:[{include:"#struct_variables_types"},{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}]},slice_index_variables:{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.go"}]}},match:/(?<=[\p{L}\p{M}\p{N}\p{Pc}]\[)((?:\b[\p{L}\p{M}\p{N}\p{Pc}\.\*\+\/\-\%\<\>\|\&]+:|:\b[\p{L}\p{M}\p{N}\p{Pc}\.\*\+\/\-\%\<\>\|\&]+)(?:\b[\p{L}\p{M}\p{N}\p{Pc}\.\*\+\/\-\%\<\>\|\&]+)?(?::\b[\p{L}\p{M}\p{N}\p{Pc}\.\*\+\/\-\%\<\>\|\&]+)?)(?=\])/dgv},statements:{patterns:[{include:"#package_name"},{include:"#import"},{include:"#syntax_errors"},{include:"#group-functions"},{include:"#group-types"},{include:"#group-variables"},{include:"#field_hover"}]},storage_types:{patterns:[{match:/\bbool\b/dgv,name:"storage.type.boolean.go"},{match:/\bbyte\b/dgv,name:"storage.type.byte.go"},{match:/\berror\b/dgv,name:"storage.type.error.go"},{match:/\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\b/dgv,name:"storage.type.numeric.go"},{match:/\brune\b/dgv,name:"storage.type.rune.go"},{match:/\bstring\b/dgv,name:"storage.type.string.go"},{match:/\buintptr\b/dgv,name:"storage.type.uintptr.go"},{match:/\bany\b/dgv,name:"entity.name.type.any.go"},{match:/\bcomparable\b/dgv,name:"entity.name.type.comparable.go"}]},string_escaped_char:{patterns:[{match:/\\([0-7]{3}|[abfnrtv\\'"]|x\p{AHex}{2}|u\p{AHex}{4}|U\p{AHex}{8})/dgv,name:"constant.character.escape.go"},{match:/\\[^0-7xuUabfnrtv'"]/dgv,name:"invalid.illegal.unknown-escape.go"}]},string_literals:{patterns:[{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.go"}},end:/"/dgv,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:/%(\[\p{Nd}+\])?([\+\#\-0 ]{0,2}((\p{Nd}+|\*)?(\.?(\p{Nd}+|\*|(\[\p{Nd}+\])\*?)?(\[\p{Nd}+\])?)?))?[vT\%tbcdoqxXUeEfFgGspw]/dgv,name:"constant.other.placeholder.go"}]},struct_interface_declaration:{captures:{"1":{name:"keyword.type.go"},"2":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/^\p{space}*(\btype\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv},struct_variable_types_fields_multi:{patterns:[{begin:/([\p{L}\p{M}\p{N}\p{Pc}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+)*(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\p{space}+(?:[\[\]\*]+)?)(\bstruct\b)\p{space}*(\{)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{name:"keyword.struct.go"},"3":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#struct_variables_types_fields"},{include:"$self"}]},{begin:/([\p{L}\p{M}\p{N}\p{Pc}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+)*(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\p{space}+(?:[\[\]\*]+)?)(\binterface\b)\p{space}*(\{)/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{name:"keyword.interface.go"},"3":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#interface_variables_types_field"},{include:"$self"}]},{begin:/([\p{L}\p{M}\p{N}\p{Pc}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+)*(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\p{space}+(?:[\[\]\*]+)?)(\bfunc\b)\p{space}*(\()/dgv,beginCaptures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{name:"keyword.function.go"},"3":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"},{include:"$self"}]},{include:"#parameter-variable-types"}]},struct_variables_types:{begin:/(\bstruct\b)\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"keyword.struct.go"},"2":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,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:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\{)\p{space}*((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]]+)\p{space}*(?=\})/dgv},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\{)\p{space}*((?:(?:[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}+)((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]]+)\p{space}*(?=\})/dgv},{captures:{"1":{patterns:[{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/((?:(?:[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}+)?((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\P{space}+;?)/dgv}]}},match:/(?<=\{)((?:\p{space}*(?:(?:(?:[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}+)?(?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?\P{space}+;?)+)\p{space}*(?=\})/dgv},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\.\*]+\p{space}*)(?:(?=[\`\/"])|(?=\n?$))/dgv},{captures:{"1":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.property.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/((?:(?:[\p{L}\p{M}\p{N}\p{Pc}]+,\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}+)([^\`"\/]+)/dgv}]},support_functions:{captures:{"1":{name:"entity.name.function.support.go"},"2":{patterns:[{include:"#type-declarations"},{match:/\p{Nd}[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid.illegal.identifier.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.function.support.go"}]},"3":{patterns:[{include:"#type-declarations-without-brackets"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/\{/dgv,name:"punctuation.definition.begin.bracket.curly.go"},{match:/\}/dgv,name:"punctuation.definition.end.bracket.curly.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?:((?<=\.)\b[\p{L}\p{M}\p{N}\p{Pc}]+)|(\b[\p{L}\p{M}\p{N}\p{Pc}]+))(\[(?:[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}"']+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\*\[\]\{\}]+)*)?\])?(?=\()/dgv},switch_select_case_variables:{captures:{"1":{name:"keyword.control.go"},"2":{patterns:[{include:"#type-declarations"},{include:"#support_functions"},{include:"#variable_assignment"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.go"}]}},match:/^\p{space}*(\bcase\b)\p{space}+([\p{space}\P{space}]+:\p{space}*(?:\/[\/\*][^\n]*)?)(?=\n?$)/dgv},switch_types:{begin:/(?<=\bswitch\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}]+\p{space}*:=)?\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\.\*\(\)\[\]\+\/\-\%\<\>\|\&]+)(\.\(\btype\b\)\p{space}*)(\{)/dgv,beginCaptures:{"1":{patterns:[{include:"#operators"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.assignment.go"}]},"2":{patterns:[{include:"#support_functions"},{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.go"}]},"3":{patterns:[{include:"#delimiters"},{include:"#brackets"},{match:/\btype\b/dgv,name:"keyword.type.go"}]},"4":{name:"punctuation.definition.begin.bracket.curly.go"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{captures:{"1":{name:"keyword.control.go"},"2":{patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},"3":{name:"punctuation.other.colon.go"},"4":{patterns:[{include:"#comments"}]}},match:/^\p{space}*(\bcase\b)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\.\,\*\=\<\>\!\p{space}]+)(:)(\p{space}*\/[\/\*]\p{space}*[^\n]*)?(?=\n?$)/dgv},{begin:/\bcase\b/dgv,beginCaptures:{"0":{name:"keyword.control.go"}},end:/:/dgv,endCaptures:{"0":{name:"punctuation.other.colon.go"}},patterns:[{include:"#type-declarations"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]},{include:"$self"}]},syntax_errors:{patterns:[{captures:{"1":{name:"invalid.illegal.slice.go"}},match:/\[\](\p{space}+)/dgv},{match:/\b0[0-7]*[89]\p{Nd}*\b/dgv,name:"invalid.illegal.numeric.go"}]},terminators:{match:/;/dgv,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"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\.\()(?:(\btype\b)|((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+))(?=\))/dgv},var_assignment:{patterns:[{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.assignment.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#generic_types"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/(?<=\bvar\b)\p{space}*(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.]+)*)\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+(?:\([^\)]+\))?)?(?!(?:[\[\]\*]+)?\b(?:struct|func|map)\b)(?:[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+)*)?\p{space}*=?)?/dgv},{begin:/(?<=\bvar\b)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.begin.bracket.round.go"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{captures:{"1":{patterns:[{include:"#delimiters"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.assignment.go"}]},"2":{patterns:[{include:"#type-declarations-without-brackets"},{include:"#generic_types"},{match:/\(/dgv,name:"punctuation.definition.begin.bracket.round.go"},{match:/\)/dgv,name:"punctuation.definition.end.bracket.round.go"},{match:/\[/dgv,name:"punctuation.definition.begin.bracket.square.go"},{match:/\]/dgv,name:"punctuation.definition.end.bracket.square.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.type.go"}]}},match:/^\p{space}*(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.]+)*)\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+(?:\([^\)]+\))?)?(?!(?:[\[\]\*]+)?\b(?:struct|func|map)\b)(?:[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+)*)?\p{space}*=?)?/dgv},{include:"$self"}]}]},variable_assignment:{patterns:[{captures:{"0":{patterns:[{include:"#delimiters"},{match:/\p{Nd}[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid.illegal.identifier.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.assignment.go"}]}},match:/\b[\p{L}\p{M}\p{N}\p{Pc}]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+)*(?=\p{space}*:=)/dgv},{captures:{"0":{patterns:[{include:"#delimiters"},{include:"#operators"},{match:/\p{Nd}[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid.illegal.identifier.go"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"variable.other.assignment.go"}]}},match:/\b[\p{L}\p{M}\p{N}\p{Pc}\.\*]+(?:,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\.\*]+)*(?=\p{space}*=(?!=))/dgv}]}},scopeName:"source.go",embeddedLangs:undefined,aliases:undefined})
4
4
 
5
5
  export default [
6
6
  lang
package/dist/haskell.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"Haskell",fileTypes:["hs","hs-boot","hsig"],name:"haskell",patterns:[{include:"#liquid_haskell"},{include:"#comment_like"},{include:"#numeric_literals"},{include:"#string_literal"},{include:"#char_literal"},{match:/(?<![\@\#])-\}/dgv,name:"invalid"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*(\))/dgv,name:"constant.language.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"constant.language.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*,[\p{space}\,]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\p{space}\,]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"punctuation.bracket.haskell"},"2":{name:"punctuation.bracket.haskell"}},match:/(\[)\p{space}*(\])/dgv,name:"constant.language.empty-list.haskell"},{begin:/(\b(?<!')(module)|^(signature))(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.module.haskell"},"3":{name:"keyword.other.signature.haskell"}},end:/(?=\b(?<!')where\b(?!'))/dgv,name:"meta.declaration.module.haskell",patterns:[{include:"#comment_like"},{include:"#module_name"},{include:"#module_exports"},{match:/[a-z]+/dgv,name:"invalid"}]},{include:"#ffi"},{begin:/^(\p{space}*)(class)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.class.haskell"}},end:/(?=(?<!')\bwhere\b(?!'))|(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.class.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(instance))?\p{space}+((?:(?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)(?=\b(?<!'')where\b(?!''))/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=(?<!')\bderiving\b(?!'))|(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.generalized.haskell",patterns:[{include:"#comment_like"},{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"#comment_like"},{include:"#gadt_constructor"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"},{include:"#deriving"},{include:"#gadt_constructor"}]},{include:"#role_annotation"},{begin:/^(\p{space}*)(pattern)\p{space}+([^\n]*?)\p{space}+(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,beginCaptures:{"2":{name:"keyword.other.pattern.haskell"},"3":{patterns:[{include:"#comma"},{include:"#data_constructor"}]},"4":{name:"keyword.operator.double-colon.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^\p{space}*(pattern)\b(?!')/dgv,captures:{"1":{name:"keyword.other.pattern.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.haskell",patterns:[{include:"$self"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(family|instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.$3.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.algebraic.haskell",patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#forall"},{include:"#adt_constructor"},{include:"#context"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)\p{space}+(family)\b(?!')(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')where\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.family.haskell"},"4":{patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.family.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)(?:\p{space}+(instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+|::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^(\p{space}*)(instance)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.instance.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=[\}\;])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.declaration.instance.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(import)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.import.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=[\}\;])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.import.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{captures:{"1":{name:"keyword.other.$1.haskell"}},match:/(qualified|as|hiding)/dgv},{include:"#module_name"},{include:"#module_exports"}]},{include:"#deriving"},{include:"#layout_herald"},{include:"#keyword"},{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{patterns:[{include:"#comment_like"},{include:"#integer_literals"},{include:"#infix_op"}]}},match:/^\p{space}*(infix[lr]?)\p{space}+([^\n]*)/dgv,name:"meta.fixity-declaration.haskell"},{include:"#overloaded_label"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#fun_decl"},{include:"#qualifier"},{include:"#data_constructor"},{include:"#start_type_signature"},{include:"#prefix_op"},{include:"#infix_op"},{begin:/(\()(#)\p{space}/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#quasi_quote"},{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#record"}],repository:{adt_constructor:{patterns:[{include:"#comment_like"},{begin:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(=)|(\|))(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,beginCaptures:{"1":{name:"keyword.operator.eq.haskell"},"2":{name:"keyword.operator.pipe.haskell"}},end:/*@__PURE__*/ new EmulatedRegExp("(?:^|^)\\p{space}*(?:(?<!')\\b([\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.]+)|('?(?<paren>\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:))*\\)))*\\)))*\\)))*\\)))*\\)))|('?(?<brac>\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:))*\\]))*\\]))*\\]))*\\]))*\\])))\\p{space}*(?:(?<![[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']])(:[[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']]*)|(`)([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(`))|(?<!')\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)|(\\()\\p{space}*(:[[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']]*)\\p{space}*(\\))","dgv",{"strategy":"clip_search"}),endCaptures:{"1":{patterns:[{include:"#type_signature"}]},"2":{patterns:[{include:"#type_signature"}]},"4":{patterns:[{include:"#type_signature"}]},"6":{name:"constant.other.operator.haskell"},"7":{name:"punctuation.backtick.haskell"},"8":{name:"constant.other.haskell"},"9":{name:"punctuation.backtick.haskell"},"10":{name:"constant.other.haskell"},"11":{name:"punctuation.paren.haskell"},"12":{name:"constant.other.operator.haskell"},"13":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#record_decl"},{include:"#forall"},{include:"#context"}]}]},block_comment:{applyEndPatternLast:1,begin:/\{-/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.haskell",patterns:[{include:"#block_comment"}]},char_literal:{captures:{"1":{name:"punctuation.definition.string.begin.haskell"},"2":{name:"constant.character.escape.haskell"},"3":{name:"constant.character.escape.octal.haskell"},"4":{name:"constant.character.escape.hexadecimal.haskell"},"5":{name:"constant.character.escape.control.haskell"},"6":{name:"punctuation.definition.string.end.haskell"}},match:/(?<![\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])(')(?:[ -\[\]-\~]|(\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\"'\&]))|(\\o[0-7]+)|(\\x\p{AHex}+)|(\\\^[A-Z\@\[\]\\\^_]))(')/dgv,name:"string.quoted.single.haskell"},comma:{match:/,/dgv,name:"punctuation.separator.comma.haskell"},comment_like:{patterns:[{include:"#cpp"},{include:"#pragma"},{include:"#comments"}]},comments:{patterns:[{begin:/^(\p{space}*)(--\p{space}[\|\$])/dgv,beginCaptures:{"2":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/(?=^(?!\1--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])))()/dgv,name:"comment.block.documentation.haskell"},{begin:/(^[ \t]+)?(--\p{space}[\^\*])/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/\n/dgv,name:"comment.line.documentation.haskell"},{applyEndPatternLast:1,begin:/\{-\p{space}?[\|\$\*\^]/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.documentation.haskell",patterns:[{include:"#block_comment"}]},{begin:/(^[ \t]+)?(?=--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]))/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/--/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/\n/dgv,name:"comment.line.double-dash.haskell"}]},{include:"#block_comment"}]},context:{captures:{"1":{patterns:[{include:"#comment_like"},{include:"#type_signature"}]},"2":{name:"keyword.operator.big-arrow.haskell"}},match:/([^\n]*)(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(=>|⇒)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},cpp:{captures:{"1":{name:"punctuation.definition.preprocessor.c"}},match:/^(#)[^\n]*(?=\n?$)/dgv,name:"meta.preprocessor.c"},data_constructor:{match:/\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*(?![\.'\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.other.haskell"},deriving:{patterns:[{begin:/^(\p{space}*)(deriving)\p{space}+(?:(via|stock|newtype|anyclass)\p{space}+)?/dgv,beginCaptures:{"2":{name:"keyword.other.deriving.haskell"},"3":{name:"keyword.other.deriving.strategy.$3.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.deriving.haskell",patterns:[{include:"#comment_like"},{match:/(?<!')\b(instance)\b(?!')/dgv,name:"keyword.other.instance.haskell"},{captures:{"1":{name:"keyword.other.deriving.strategy.$1.haskell"}},match:/(?<!')\b(via|stock|newtype|anyclass)\b(?!')/dgv},{include:"#type_signature"}]},{begin:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},name:"meta.deriving.haskell",patterns:[{include:"#type_signature"}]},{captures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{patterns:[{include:"#type_signature"}]},"5":{name:"keyword.other.deriving.strategy.via.haskell"},"6":{patterns:[{include:"#type_signature"}]}},match:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}+([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(\p{space}+(via)\p{space}+([^\n]*)(?=\n?$))?/dgv,name:"meta.deriving.haskell"},{match:/(?<!')\b(via)\b(?!')/dgv,name:"keyword.other.deriving.strategy.via.haskell"}]},double_colon:{captures:{"1":{name:"keyword.operator.double-colon.haskell"}},match:/\p{space}*(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])\p{space}*/dgv},export_constructs:{patterns:[{include:"#comment_like"},{begin:/\b(?<!')(pattern)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.pattern.haskell"}},end:/([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{begin:/\b(?<!')(type)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.type.haskell"}},end:/([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"storage.type.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"storage.type.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{match:/(?<!')\b[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"entity.name.function.haskell"},{match:/(?<!')\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"storage.type.haskell"},{include:"#record_wildcard"},{include:"#reserved_symbol"},{include:"#prefix_op"}]},ffi:{begin:/^(\p{space}*)(foreign)\p{space}+(import|export)\p{space}+/dgv,beginCaptures:{"2":{name:"keyword.other.foreign.haskell"},"3":{name:"keyword.other.$3.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.$3.foreign.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.calling-convention.$1.haskell"}},match:/\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\p{space}+/dgv},{begin:/(?=")|(?=\b(?<!')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!'))/dgv,end:/(?=(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]))/dgv,patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]},"3":{name:"entity.name.function.haskell"},"4":{name:"entity.name.function.infix.haskell"}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?:\b(?<!'')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!')|\(\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*\))/dgv},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?=\n?$)/dgv},{captures:{"0":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/"(?:\\"|[^"])*"/dgv},{captures:{"1":{name:"entity.name.function.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.function.infix.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/\b(?<!'')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!')|(\()\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv}]},{include:"#double_colon"},{include:"#type_signature"}]},float_literals:{captures:{"1":{name:"constant.numeric.floating.decimal.haskell"},"2":{name:"constant.numeric.floating.hexadecimal.haskell"}},match:/\b(?<!')(?:([0-9][_0-9]*\.[0-9][_0-9]*(?:[eE][\-\+]?[0-9][_0-9]*)?|[0-9][_0-9]*[eE][\-\+]?[0-9][_0-9]*)|(0(?:[xX]_*\p{AHex}[_\p{AHex}]*\.\p{AHex}[_\p{AHex}]*(?:[pP][\-\+]?[0-9][_0-9]*)?|[xX]_*\p{AHex}[_\p{AHex}]*[pP][\-\+]?[0-9][_0-9]*)))\b(?!')/dgv},forall:{begin:/\b(?<!')(forall|∀)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.forall.haskell"}},end:/(\.)|(->|→)/dgv,endCaptures:{"1":{name:"keyword.operator.period.haskell"},"2":{name:"keyword.operator.arrow.haskell"}},patterns:[{include:"#comment_like"},{include:"#type_variable"},{include:"#type_signature"}]},fun_decl:{begin:/^(\p{space}*)(?<fn>(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:))?))?))?))?))?)\p{space}*(?<![[\p{S}\p{P}]&&[^\)\,\;\]\`\}_"']])(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])/dgv,beginCaptures:{"2":{name:"entity.name.function.haskell",patterns:[{include:"#reserved_symbol"},{include:"#prefix_op"}]},"3":{name:"keyword.operator.double-colon.haskell"}},end:/(?=(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"'[^\p{S}\p{P}]]))|(?=[\}\;])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.function.type-declaration.haskell",patterns:[{include:"#type_signature"}]},gadt_constructor:{patterns:[{begin:/^(\p{space}*)(?:(\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*)\p{space}*(\)))/dgv,beginCaptures:{"2":{name:"constant.other.haskell"},"3":{name:"punctuation.paren.haskell"},"4":{name:"constant.other.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},end:/(?=\b(?<!'')deriving\b(?!'))|(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/(\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*)\p{space}*(\))/dgv,beginCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(?=\n?$)/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]}]},infix_op:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"keyword.operator.infix.haskell"}},match:/((?:(?<!'')('')?[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))/dgv},{captures:{"1":{name:"punctuation.backtick.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{patterns:[{include:"#data_constructor"}]},"4":{name:"punctuation.backtick.haskell"}},match:/(`)((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([\p{Ll}\p{Lu}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(`)/dgv,name:"keyword.operator.function.infix.haskell"}]},inline_phase:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.inlining-phase.haskell",patterns:[{match:/~/dgv,name:"punctuation.tilde.haskell"},{include:"#integer_literals"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid"}]},integer_literals:{captures:{"1":{name:"constant.numeric.integral.decimal.haskell"},"2":{name:"constant.numeric.integral.hexadecimal.haskell"},"3":{name:"constant.numeric.integral.octal.haskell"},"4":{name:"constant.numeric.integral.binary.haskell"}},match:/\b(?<!')(?:([0-9][_0-9]*)|(0[xX]_*\p{AHex}[_\p{AHex}]*)|(0[oO]_*[0-7][_0-7]*)|(0[bB]_*[01][_01]*))\b(?!')/dgv},keyword:{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.$2.haskell"}},match:/\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\b(?!')/dgv},layout_herald:{begin:/(?<!')\b(?:(where|let|m?do)|(of))\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.of.haskell"},"3":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},liquid_haskell:{begin:/\{-@/dgv,end:/@-\}/dgv,name:"block.liquidhaskell.haskell",patterns:[{include:"$self"}]},module_exports:{applyEndPatternLast:1,begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.declaration.exports.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.module.haskell"}},match:/\b(?<!')(module)\b(?!')/dgv},{include:"#comma"},{include:"#export_constructs"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#record_wildcard"},{include:"#export_constructs"},{include:"#comma"}]}]},module_name:{match:/*@__PURE__*/ new EmulatedRegExp("(?<conid>[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:))?))?))?))?))?)","dgv",{"hiddenCaptures":[3,4,5,6]}),name:"entity.name.namespace.haskell"},numeric_literals:{patterns:[{include:"#float_literals"},{include:"#integer_literals"}]},overloaded_label:{patterns:[{captures:{"1":{name:"keyword.operator.prefix.hash.haskell"},"2":{patterns:[{include:"#string_literal"}]}},match:/(?<![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(#)(?:("(?:\\"|[^"])*")|[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'\.]+)/dgv,name:"entity.name.label.haskell"}]},pragma:{begin:/\{-#/dgv,end:/#-\}/dgv,name:"meta.preprocessor.haskell",patterns:[{begin:/\b(?<!')(LANGUAGE)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{match:/(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)/dgv,name:"invalid.deprecated"},{captures:{"1":{name:"keyword.other.preprocessor.extension.haskell"}},match:/((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali[sz]edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))/dgv},{include:"#comma"}]},{begin:/\b(?<!')(SPECIALI[SZ]E)(?:\p{space}*(\[[^\[\]]*\])?\p{space}*|\p{space}+)(instance)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{patterns:[{include:"#inline_phase"}]},"3":{name:"keyword.other.instance.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#type_signature"}]},{begin:/\b(?<!')(SPECIALI[SZ]E)\b(?!')(?:\p{space}+(INLINE)\b(?!'))?\p{space}*(\[[^\[\]]*\])?\p{space}*/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{name:"keyword.other.preprocessor.pragma.haskell"},"3":{patterns:[{include:"#inline_phase"}]}},end:/(?=#-\})/dgv,patterns:[{include:"$self"}]},{match:/\b(?<!')(LANGUAGE|OPTIONS_GHC|INCLUDE|MINIMAL|UNPACK|OVERLAPS|INCOHERENT|NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE|NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES|COMPLETE)\b(?!')/dgiv,name:"keyword.other.preprocessor.haskell"},{begin:/\b(DEPRECATED|WARNING)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#string_literal"}]}]},prefix_op:{patterns:[{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"entity.name.function.infix.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*(?!(?:--+|\.\.)\))(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))\p{space}*(\))/dgv}]},qualifier:{match:/\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\./dgv,name:"entity.name.namespace.haskell"},quasi_quote:{patterns:[{begin:/(\[)([edp])?(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"$self"}]},{begin:/(\[)(t)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"#type_signature"}]},{begin:/(\[)(?:(\$\$)|(\$))?([[^\p{space}\p{S}\p{P}]\.'_]*)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"keyword.operator.prefix.double-dollar.haskell"},"3":{name:"keyword.operator.prefix.dollar.haskell"},"4":{name:"entity.name.quasi-quoter.haskell",patterns:[{include:"#qualifier"}]},"5":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\5\]()()()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell"}]},record:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.haskell",patterns:[{include:"#comment_like"},{include:"#record_field"}]},record_decl:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.definition.haskell",patterns:[{include:"#comment_like"},{include:"#record_decl_field"}]},record_decl_field:{begin:/(?:([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\)))/dgv,beginCaptures:{"1":{name:"variable.other.member.definition.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.definition.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"#double_colon"},{include:"#type_signature"},{include:"#record_decl_field"}]},record_field:{patterns:[{begin:/(?:([\p{Ll}\p{Lu}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\.']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\)))/dgv,beginCaptures:{"1":{name:"variable.other.member.haskell",patterns:[{include:"#qualifier"}]},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"$self"}]},{include:"#record_wildcard"}]},record_wildcard:{captures:{"1":{name:"variable.other.member.wildcard.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(\.\.)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},reserved_symbol:{patterns:[{captures:{"1":{name:"keyword.operator.double-dot.haskell"},"2":{name:"keyword.operator.colon.haskell"},"3":{name:"keyword.operator.eq.haskell"},"4":{name:"keyword.operator.lambda.haskell"},"5":{name:"keyword.operator.pipe.haskell"},"6":{name:"keyword.operator.arrow.left.haskell"},"7":{name:"keyword.operator.arrow.haskell"},"8":{name:"keyword.operator.arrow.left.tail.haskell"},"9":{name:"keyword.operator.arrow.left.tail.double.haskell"},"10":{name:"keyword.operator.arrow.tail.haskell"},"11":{name:"keyword.operator.arrow.tail.double.haskell"},"12":{name:"keyword.other.forall.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(\.\.)|(:)|(=)|(\\)|(\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},{captures:{"1":{name:"keyword.operator.postfix.hash.haskell"}},match:/(?<=[[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\#\,\;\[\`\{]])(#+)(?![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\)\,\;\]\`\}]])/dgv},{captures:{"1":{name:"keyword.operator.infix.tight.at.haskell"}},match:/(?<=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\)\}\]])(@)(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\(\[\{])/dgv},{captures:{"1":{name:"keyword.operator.prefix.tilde.haskell"},"2":{name:"keyword.operator.prefix.bang.haskell"},"3":{name:"keyword.operator.prefix.minus.haskell"},"4":{name:"keyword.operator.prefix.dollar.haskell"},"5":{name:"keyword.operator.prefix.double-dollar.haskell"}},match:/(?<![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(?:(~)|(!)|(-)|(\$)|(\$\$))(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\(\{\[])/dgv}]},role_annotation:{patterns:[{begin:/^(\p{space}*)(type)\p{space}+(role)\b(?!')/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.role.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.role-annotation.haskell",patterns:[{include:"#comment_like"},{include:"#type_constructor"},{captures:{"1":{name:"keyword.other.role.$1.haskell"}},match:/\b(?<!')(nominal|representational|phantom)\b(?!')/dgv}]}]},start_type_signature:{patterns:[{begin:/^(\p{space}*)(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])\p{space}*/dgv,beginCaptures:{"2":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|[\]\,]|(?<!')\b(in|then|else|of)\b(?!')|(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:([\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"'[^\p{S}\p{P}]])|([\#\@])-\}|(?=[\}\;])|^(?!(?!)\p{space}*\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$))))/dgv,name:"meta.type-declaration.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])/dgv,beginCaptures:{"1":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|[\]\,]|\b(?<!')(in|then|else|of)\b(?!')|([\#\@])-\}|(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:([\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"'[^\p{S}\p{P}]])|(?=[\}\;])|(?=\n?$))/dgv,patterns:[{include:"#type_signature"}]}]},string_literal:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.haskell"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.haskell"}},name:"string.quoted.double.haskell",patterns:[{match:/\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\"'\&])/dgv,name:"constant.character.escape.haskell"},{match:/\\(?:o[0-7]+|x\p{AHex}+|[0-9]+)/dgv,name:"constant.character.escape.octal.haskell"},{match:/\\\^[A-Z\@\[\]\\\^_]/dgv,name:"constant.character.escape.control.haskell"},{begin:/\\\p{space}/dgv,beginCaptures:{"0":{name:"constant.character.escape.begin.haskell"}},end:/\\/dgv,endCaptures:{"0":{name:"constant.character.escape.end.haskell"}},patterns:[{match:/\P{space}+/dgv,name:"invalid.illegal.character-not-allowed-here.haskell"}]}]},type_application:{patterns:[{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(?=")/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?<=")/dgv,name:"meta.type-application.haskell",patterns:[{include:"#string_literal"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?![\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])/dgv,name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]}]},type_constructor:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.haskell"}},match:/(')?((?:\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv}]},type_operator:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.operator.infix.haskell"}},match:/(?:(?<!')('))?((?:\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(?![\#\@]?-\})(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.backtick.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.infix.haskell"},"5":{name:"punctuation.backtick.haskell"}},match:/(')?(`)((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(`)/dgv}]},type_signature:{patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*(\))/dgv,name:"support.constant.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*,[\p{space}\,]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\p{space}\,]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"},"3":{name:"punctuation.bracket.haskell"}},match:/(')?(\[)\p{space}*(\])/dgv,name:"support.constant.empty-list.haskell"},{include:"#integer_literals"},{match:/(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,name:"keyword.operator.double-colon.haskell"},{include:"#forall"},{match:/=>|⇒/dgv,name:"keyword.operator.big-arrow.haskell"},{include:"#string_literal"},{match:/'[^']'/dgv,name:"invalid"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#type_operator"},{include:"#type_constructor"},{begin:/(\()(#)/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{include:"#type_variable"}]},type_variable:{match:/\b(?<!')(?!(?:forall|deriving)\b(?!'))[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"variable.other.generic-type.haskell"},where:{patterns:[{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"}]}},scopeName:"source.haskell",embeddedLangs:undefined,aliases:["hs"]})
3
+ const lang = Object.freeze({displayName:"Haskell",fileTypes:["hs","hs-boot","hsig"],name:"haskell",patterns:[{include:"#liquid_haskell"},{include:"#comment_like"},{include:"#numeric_literals"},{include:"#string_literal"},{include:"#char_literal"},{match:/(?<![\@\#])-\}/dgv,name:"invalid"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*(\))/dgv,name:"constant.language.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"constant.language.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*,[\p{space}\,]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\p{space}\,]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"punctuation.bracket.haskell"},"2":{name:"punctuation.bracket.haskell"}},match:/(\[)\p{space}*(\])/dgv,name:"constant.language.empty-list.haskell"},{begin:/(\b(?<!')(module)|^(signature))(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.module.haskell"},"3":{name:"keyword.other.signature.haskell"}},end:/(?=\b(?<!')where\b(?!'))/dgv,name:"meta.declaration.module.haskell",patterns:[{include:"#comment_like"},{include:"#module_name"},{include:"#module_exports"},{match:/[a-z]+/dgv,name:"invalid"}]},{include:"#ffi"},{begin:/^(\p{space}*)(class)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.class.haskell"}},end:/(?=(?<!')\bwhere\b(?!'))|(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.class.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(instance))?\p{space}+((?:(?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)(?=\b(?<!'')where\b(?!''))/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=(?<!')\bderiving\b(?!'))|(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.generalized.haskell",patterns:[{include:"#comment_like"},{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"#comment_like"},{include:"#gadt_constructor"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"},{include:"#deriving"},{include:"#gadt_constructor"}]},{include:"#role_annotation"},{begin:/^(\p{space}*)(pattern)\p{space}+([^\n]*?)\p{space}+(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,beginCaptures:{"2":{name:"keyword.other.pattern.haskell"},"3":{patterns:[{include:"#comma"},{include:"#data_constructor"}]},"4":{name:"keyword.operator.double-colon.haskell"}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^\p{space}*(pattern)\b(?!')/dgv,captures:{"1":{name:"keyword.other.pattern.haskell"}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.haskell",patterns:[{include:"$self"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(family|instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.$3.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.algebraic.haskell",patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#forall"},{include:"#adt_constructor"},{include:"#context"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)\p{space}+(family)\b(?!')(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')where\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.family.haskell"},"4":{patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.family.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)(?:\p{space}+(instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+|::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^(\p{space}*)(instance)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.instance.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=[\}\;])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.declaration.instance.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(import)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.import.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=[\}\;])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.import.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{captures:{"1":{name:"keyword.other.$1.haskell"}},match:/(qualified|as|hiding)/dgv},{include:"#module_name"},{include:"#module_exports"}]},{include:"#deriving"},{include:"#layout_herald"},{include:"#keyword"},{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{patterns:[{include:"#comment_like"},{include:"#integer_literals"},{include:"#infix_op"}]}},match:/^\p{space}*(infix[lr]?)\p{space}+([^\n]*)/dgv,name:"meta.fixity-declaration.haskell"},{include:"#overloaded_label"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#fun_decl"},{include:"#qualifier"},{include:"#data_constructor"},{include:"#start_type_signature"},{include:"#prefix_op"},{include:"#infix_op"},{begin:/(\()(#)\p{space}/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#quasi_quote"},{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#record"}],repository:{adt_constructor:{patterns:[{include:"#comment_like"},{begin:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(=)|(\|))(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,beginCaptures:{"1":{name:"keyword.operator.eq.haskell"},"2":{name:"keyword.operator.pipe.haskell"}},end:/*@__PURE__*/ new EmulatedRegExp("(?:^|^)\\p{space}*(?:(?<!')\\b([\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.]+)|('?(?<paren>\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:))*\\)))*\\)))*\\)))*\\)))*\\)))|('?(?<brac>\\((?:[^\\[\\]]?|(?:\\((?:[^\\[\\]]?|(?:\\((?:[^\\[\\]]?|(?:\\((?:[^\\[\\]]?|(?:\\((?:[^\\[\\]]?|(?:))*\\]))*\\]))*\\]))*\\]))*\\])))\\p{space}*(?:(?<![[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']])(:[[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']]*)|(`)([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(`))|(?<!')\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)|(\\()\\p{space}*(:[[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']]*)\\p{space}*(\\))","dgv",{"strategy":"clip_search"}),endCaptures:{"1":{patterns:[{include:"#type_signature"}]},"2":{patterns:[{include:"#type_signature"}]},"4":{patterns:[{include:"#type_signature"}]},"6":{name:"constant.other.operator.haskell"},"7":{name:"punctuation.backtick.haskell"},"8":{name:"constant.other.haskell"},"9":{name:"punctuation.backtick.haskell"},"10":{name:"constant.other.haskell"},"11":{name:"punctuation.paren.haskell"},"12":{name:"constant.other.operator.haskell"},"13":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#record_decl"},{include:"#forall"},{include:"#context"}]}]},block_comment:{applyEndPatternLast:1,begin:/\{-/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.haskell",patterns:[{include:"#block_comment"}]},char_literal:{captures:{"1":{name:"punctuation.definition.string.begin.haskell"},"2":{name:"constant.character.escape.haskell"},"3":{name:"constant.character.escape.octal.haskell"},"4":{name:"constant.character.escape.hexadecimal.haskell"},"5":{name:"constant.character.escape.control.haskell"},"6":{name:"punctuation.definition.string.end.haskell"}},match:/(?<![\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])(')(?:[ -\[\]-\~]|(\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\"'\&]))|(\\o[0-7]+)|(\\x\p{AHex}+)|(\\\^[A-Z\@\[\]\\\^_]))(')/dgv,name:"string.quoted.single.haskell"},comma:{match:/,/dgv,name:"punctuation.separator.comma.haskell"},comment_like:{patterns:[{include:"#cpp"},{include:"#pragma"},{include:"#comments"}]},comments:{patterns:[{begin:/^(\p{space}*)(--\p{space}[\|\$])/dgv,beginCaptures:{"2":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/(?=^(?!\1--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])))()/dgv,name:"comment.block.documentation.haskell"},{begin:/(^[ \t]+)?(--\p{space}[\^\*])/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/\n/dgv,name:"comment.line.documentation.haskell"},{applyEndPatternLast:1,begin:/\{-\p{space}?[\|\$\*\^]/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.documentation.haskell",patterns:[{include:"#block_comment"}]},{begin:/(^[ \t]+)?(?=--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]))/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/--/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/\n/dgv,name:"comment.line.double-dash.haskell"}]},{include:"#block_comment"}]},context:{captures:{"1":{patterns:[{include:"#comment_like"},{include:"#type_signature"}]},"2":{name:"keyword.operator.big-arrow.haskell"}},match:/([^\n]*)(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(=>|⇒)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},cpp:{captures:{"1":{name:"punctuation.definition.preprocessor.c"}},match:/^(#)[^\n]*(?=\n?$)/dgv,name:"meta.preprocessor.c"},data_constructor:{match:/\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*(?![\.'\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.other.haskell"},deriving:{patterns:[{begin:/^(\p{space}*)(deriving)\p{space}+(?:(via|stock|newtype|anyclass)\p{space}+)?/dgv,beginCaptures:{"2":{name:"keyword.other.deriving.haskell"},"3":{name:"keyword.other.deriving.strategy.$3.haskell"}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.deriving.haskell",patterns:[{include:"#comment_like"},{match:/(?<!')\b(instance)\b(?!')/dgv,name:"keyword.other.instance.haskell"},{captures:{"1":{name:"keyword.other.deriving.strategy.$1.haskell"}},match:/(?<!')\b(via|stock|newtype|anyclass)\b(?!')/dgv},{include:"#type_signature"}]},{begin:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},name:"meta.deriving.haskell",patterns:[{include:"#type_signature"}]},{captures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{patterns:[{include:"#type_signature"}]},"5":{name:"keyword.other.deriving.strategy.via.haskell"},"6":{patterns:[{include:"#type_signature"}]}},match:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}+([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(\p{space}+(via)\p{space}+([^\n]*)(?=\n?$))?/dgv,name:"meta.deriving.haskell"},{match:/(?<!')\b(via)\b(?!')/dgv,name:"keyword.other.deriving.strategy.via.haskell"}]},double_colon:{captures:{"1":{name:"keyword.operator.double-colon.haskell"}},match:/\p{space}*(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])\p{space}*/dgv},export_constructs:{patterns:[{include:"#comment_like"},{begin:/\b(?<!')(pattern)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.pattern.haskell"}},end:/([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{begin:/\b(?<!')(type)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.type.haskell"}},end:/([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"storage.type.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"storage.type.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{match:/(?<!')\b[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"entity.name.function.haskell"},{match:/(?<!')\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"storage.type.haskell"},{include:"#record_wildcard"},{include:"#reserved_symbol"},{include:"#prefix_op"}]},ffi:{begin:/^(\p{space}*)(foreign)\p{space}+(import|export)\p{space}+/dgv,beginCaptures:{"2":{name:"keyword.other.foreign.haskell"},"3":{name:"keyword.other.$3.haskell"}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.$3.foreign.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.calling-convention.$1.haskell"}},match:/\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\p{space}+/dgv},{begin:/(?=")|(?=\b(?<!')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!'))/dgv,end:/(?=(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]))/dgv,patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]},"3":{name:"entity.name.function.haskell"},"4":{name:"entity.name.function.infix.haskell"}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?:\b(?<!'')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!')|\(\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*\))/dgv},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?=\n?$)/dgv},{captures:{"0":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/"(?:\\"|[^"])*"/dgv},{captures:{"1":{name:"entity.name.function.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.function.infix.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/\b(?<!'')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!')|(\()\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv}]},{include:"#double_colon"},{include:"#type_signature"}]},float_literals:{captures:{"1":{name:"constant.numeric.floating.decimal.haskell"},"2":{name:"constant.numeric.floating.hexadecimal.haskell"}},match:/\b(?<!')(?:([0-9][_0-9]*\.[0-9][_0-9]*(?:[eE][\-\+]?[0-9][_0-9]*)?|[0-9][_0-9]*[eE][\-\+]?[0-9][_0-9]*)|(0(?:[xX]_*\p{AHex}[_\p{AHex}]*\.\p{AHex}[_\p{AHex}]*(?:[pP][\-\+]?[0-9][_0-9]*)?|[xX]_*\p{AHex}[_\p{AHex}]*[pP][\-\+]?[0-9][_0-9]*)))\b(?!')/dgv},forall:{begin:/\b(?<!')(forall|∀)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.forall.haskell"}},end:/(\.)|(->|→)/dgv,endCaptures:{"1":{name:"keyword.operator.period.haskell"},"2":{name:"keyword.operator.arrow.haskell"}},patterns:[{include:"#comment_like"},{include:"#type_variable"},{include:"#type_signature"}]},fun_decl:{begin:/^(\p{space}*)(?<fn>(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:))?))?))?))?))?)\p{space}*(?<![[\p{S}\p{P}]&&[^\)\,\;\]\`\}_"']])(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])/dgv,beginCaptures:{"2":{name:"entity.name.function.haskell",patterns:[{include:"#reserved_symbol"},{include:"#prefix_op"}]},"3":{name:"keyword.operator.double-colon.haskell"}},end:/(?=(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"'[^\p{S}\p{P}]]))|(?=[\}\;])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.function.type-declaration.haskell",patterns:[{include:"#type_signature"}]},gadt_constructor:{patterns:[{begin:/^(\p{space}*)(?:(\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*)\p{space}*(\)))/dgv,beginCaptures:{"2":{name:"constant.other.haskell"},"3":{name:"punctuation.paren.haskell"},"4":{name:"constant.other.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},end:/(?=\b(?<!'')deriving\b(?!'))|(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/(\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*)\p{space}*(\))/dgv,beginCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(?=\n?$)/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]}]},infix_op:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"keyword.operator.infix.haskell"}},match:/((?:(?<!'')('')?[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))/dgv},{captures:{"1":{name:"punctuation.backtick.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{patterns:[{include:"#data_constructor"}]},"4":{name:"punctuation.backtick.haskell"}},match:/(`)((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([\p{Ll}\p{Lu}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(`)/dgv,name:"keyword.operator.function.infix.haskell"}]},inline_phase:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.inlining-phase.haskell",patterns:[{match:/~/dgv,name:"punctuation.tilde.haskell"},{include:"#integer_literals"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid"}]},integer_literals:{captures:{"1":{name:"constant.numeric.integral.decimal.haskell"},"2":{name:"constant.numeric.integral.hexadecimal.haskell"},"3":{name:"constant.numeric.integral.octal.haskell"},"4":{name:"constant.numeric.integral.binary.haskell"}},match:/\b(?<!')(?:([0-9][_0-9]*)|(0[xX]_*\p{AHex}[_\p{AHex}]*)|(0[oO]_*[0-7][_0-7]*)|(0[bB]_*[01][_01]*))\b(?!')/dgv},keyword:{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.$2.haskell"}},match:/\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\b(?!')/dgv},layout_herald:{begin:/(?<!')\b(?:(where|let|m?do)|(of))\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.of.haskell"},"3":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},liquid_haskell:{begin:/\{-@/dgv,end:/@-\}/dgv,name:"block.liquidhaskell.haskell",patterns:[{include:"$self"}]},module_exports:{applyEndPatternLast:1,begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.declaration.exports.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.module.haskell"}},match:/\b(?<!')(module)\b(?!')/dgv},{include:"#comma"},{include:"#export_constructs"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#record_wildcard"},{include:"#export_constructs"},{include:"#comma"}]}]},module_name:{match:/*@__PURE__*/ new EmulatedRegExp("(?<conid>[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:))?))?))?))?))?)","dgv",{"hiddenCaptures":[3,4,5,6]}),name:"entity.name.namespace.haskell"},numeric_literals:{patterns:[{include:"#float_literals"},{include:"#integer_literals"}]},overloaded_label:{patterns:[{captures:{"1":{name:"keyword.operator.prefix.hash.haskell"},"2":{patterns:[{include:"#string_literal"}]}},match:/(?<![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(#)(?:("(?:\\"|[^"])*")|[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'\.]+)/dgv,name:"entity.name.label.haskell"}]},pragma:{begin:/\{-#/dgv,end:/#-\}/dgv,name:"meta.preprocessor.haskell",patterns:[{begin:/\b(?<!')(LANGUAGE)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{match:/(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)/dgv,name:"invalid.deprecated"},{captures:{"1":{name:"keyword.other.preprocessor.extension.haskell"}},match:/((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali[sz]edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))/dgv},{include:"#comma"}]},{begin:/\b(?<!')(SPECIALI[SZ]E)(?:\p{space}*(\[[^\[\]]*\])?\p{space}*|\p{space}+)(instance)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{patterns:[{include:"#inline_phase"}]},"3":{name:"keyword.other.instance.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#type_signature"}]},{begin:/\b(?<!')(SPECIALI[SZ]E)\b(?!')(?:\p{space}+(INLINE)\b(?!'))?\p{space}*(\[[^\[\]]*\])?\p{space}*/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{name:"keyword.other.preprocessor.pragma.haskell"},"3":{patterns:[{include:"#inline_phase"}]}},end:/(?=#-\})/dgv,patterns:[{include:"$self"}]},{match:/\b(?<!')(LANGUAGE|OPTIONS_GHC|INCLUDE|MINIMAL|UNPACK|OVERLAPS|INCOHERENT|NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE|NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES|COMPLETE)\b(?!')/dgiv,name:"keyword.other.preprocessor.haskell"},{begin:/\b(DEPRECATED|WARNING)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#string_literal"}]}]},prefix_op:{patterns:[{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"entity.name.function.infix.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*(?!(?:--+|\.\.)\))(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))\p{space}*(\))/dgv}]},qualifier:{match:/\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\./dgv,name:"entity.name.namespace.haskell"},quasi_quote:{patterns:[{begin:/(\[)([edp])?(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"$self"}]},{begin:/(\[)(t)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"#type_signature"}]},{begin:/(\[)(?:(\$\$)|(\$))?([[^\p{space}\p{S}\p{P}]\.'_]*)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"keyword.operator.prefix.double-dollar.haskell"},"3":{name:"keyword.operator.prefix.dollar.haskell"},"4":{name:"entity.name.quasi-quoter.haskell",patterns:[{include:"#qualifier"}]},"5":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\5\]()()()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell"}]},record:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.haskell",patterns:[{include:"#comment_like"},{include:"#record_field"}]},record_decl:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.definition.haskell",patterns:[{include:"#comment_like"},{include:"#record_decl_field"}]},record_decl_field:{begin:/(?:([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\)))/dgv,beginCaptures:{"1":{name:"variable.other.member.definition.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.definition.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"#double_colon"},{include:"#type_signature"},{include:"#record_decl_field"}]},record_field:{patterns:[{begin:/(?:([\p{Ll}\p{Lu}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\.']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\)))/dgv,beginCaptures:{"1":{name:"variable.other.member.haskell",patterns:[{include:"#qualifier"}]},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"$self"}]},{include:"#record_wildcard"}]},record_wildcard:{captures:{"1":{name:"variable.other.member.wildcard.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(\.\.)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},reserved_symbol:{patterns:[{captures:{"1":{name:"keyword.operator.double-dot.haskell"},"2":{name:"keyword.operator.colon.haskell"},"3":{name:"keyword.operator.eq.haskell"},"4":{name:"keyword.operator.lambda.haskell"},"5":{name:"keyword.operator.pipe.haskell"},"6":{name:"keyword.operator.arrow.left.haskell"},"7":{name:"keyword.operator.arrow.haskell"},"8":{name:"keyword.operator.arrow.left.tail.haskell"},"9":{name:"keyword.operator.arrow.left.tail.double.haskell"},"10":{name:"keyword.operator.arrow.tail.haskell"},"11":{name:"keyword.operator.arrow.tail.double.haskell"},"12":{name:"keyword.other.forall.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(\.\.)|(:)|(=)|(\\)|(\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},{captures:{"1":{name:"keyword.operator.postfix.hash.haskell"}},match:/(?<=[[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\#\,\;\[\`\{]])(#+)(?![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\)\,\;\]\`\}]])/dgv},{captures:{"1":{name:"keyword.operator.infix.tight.at.haskell"}},match:/(?<=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\)\}\]])(@)(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\(\[\{])/dgv},{captures:{"1":{name:"keyword.operator.prefix.tilde.haskell"},"2":{name:"keyword.operator.prefix.bang.haskell"},"3":{name:"keyword.operator.prefix.minus.haskell"},"4":{name:"keyword.operator.prefix.dollar.haskell"},"5":{name:"keyword.operator.prefix.double-dollar.haskell"}},match:/(?<![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(?:(~)|(!)|(-)|(\$)|(\$\$))(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\(\{\[])/dgv}]},role_annotation:{patterns:[{begin:/^(\p{space}*)(type)\p{space}+(role)\b(?!')/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.role.haskell"}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.role-annotation.haskell",patterns:[{include:"#comment_like"},{include:"#type_constructor"},{captures:{"1":{name:"keyword.other.role.$1.haskell"}},match:/\b(?<!')(nominal|representational|phantom)\b(?!')/dgv}]}]},start_type_signature:{patterns:[{begin:/^(\p{space}*)(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])\p{space}*/dgv,beginCaptures:{"2":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|[\]\,]|(?<!')\b(in|then|else|of)\b(?!')|(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:([\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"'[^\p{S}\p{P}]])|([\#\@])-\}|(?=[\}\;])|^(?!(?!)\p{space}*\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$))))/dgv,name:"meta.type-declaration.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])/dgv,beginCaptures:{"1":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|[\]\,]|\b(?<!')(in|then|else|of)\b(?!')|([\#\@])-\}|(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:([\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"'[^\p{S}\p{P}]])|(?=[\}\;])|(?=\n?$))/dgv,patterns:[{include:"#type_signature"}]}]},string_literal:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.haskell"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.haskell"}},name:"string.quoted.double.haskell",patterns:[{match:/\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\"'\&])/dgv,name:"constant.character.escape.haskell"},{match:/\\(?:o[0-7]+|x\p{AHex}+|[0-9]+)/dgv,name:"constant.character.escape.octal.haskell"},{match:/\\\^[A-Z\@\[\]\\\^_]/dgv,name:"constant.character.escape.control.haskell"},{begin:/\\\p{space}/dgv,beginCaptures:{"0":{name:"constant.character.escape.begin.haskell"}},end:/\\/dgv,endCaptures:{"0":{name:"constant.character.escape.end.haskell"}},patterns:[{match:/\P{space}+/dgv,name:"invalid.illegal.character-not-allowed-here.haskell"}]}]},type_application:{patterns:[{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(?=")/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?<=")/dgv,name:"meta.type-application.haskell",patterns:[{include:"#string_literal"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?![\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])/dgv,name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]}]},type_constructor:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.haskell"}},match:/(')?((?:\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv}]},type_operator:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.operator.infix.haskell"}},match:/(?:(?<!')('))?((?:\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(?![\#\@]?-\})(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.backtick.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.infix.haskell"},"5":{name:"punctuation.backtick.haskell"}},match:/(')?(`)((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(`)/dgv}]},type_signature:{patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*(\))/dgv,name:"support.constant.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*,[\p{space}\,]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\p{space}\,]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"},"3":{name:"punctuation.bracket.haskell"}},match:/(')?(\[)\p{space}*(\])/dgv,name:"support.constant.empty-list.haskell"},{include:"#integer_literals"},{match:/(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,name:"keyword.operator.double-colon.haskell"},{include:"#forall"},{match:/=>|⇒/dgv,name:"keyword.operator.big-arrow.haskell"},{include:"#string_literal"},{match:/'[^']'/dgv,name:"invalid"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#type_operator"},{include:"#type_constructor"},{begin:/(\()(#)/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{include:"#type_variable"}]},type_variable:{match:/\b(?<!')(?!(?:forall|deriving)\b(?!'))[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"variable.other.generic-type.haskell"},where:{patterns:[{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"}]}},scopeName:"source.haskell",embeddedLangs:undefined,aliases:["hs"]})
4
4
 
5
5
  export default [
6
6
  lang
@@ -1,6 +1,6 @@
1
1
  import html from './html.mjs'
2
2
 
3
- const lang = Object.freeze({displayName:"HTML (Derivative)",injections:{"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)":{patterns:[{match:/</dgv,name:"invalid.illegal.bad-angle-bracket.html"}]}},name:"html-derivative",patterns:[{include:"text.html.basic#core-minus-invalid"},{begin:/(<\/?)([\p{L}\p{M}\p{N}\p{Pc}][^\p{space}\>]*)(?<!\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:/((?: ?\/)?>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.unrecognized.html.derivative",patterns:[{include:"text.html.basic#attribute"}]}],scopeName:"text.html.derivative",embeddedLangs:["html"],aliases:undefined})
3
+ const lang = Object.freeze({displayName:"HTML (Derivative)",injections:{"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)":{patterns:[{match:/</dgv,name:"invalid.illegal.bad-angle-bracket.html"}]}},name:"html-derivative",patterns:[{include:"text.html.basic#core-minus-invalid"},{begin:/(<\/?)([\p{L}\p{M}\p{N}\p{Pc}][^\p{space}\<\>]*)(?<!\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:/((?: ?\/)?>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.unrecognized.html.derivative",patterns:[{include:"text.html.basic#attribute"}]}],scopeName:"text.html.derivative",embeddedLangs:["html"],aliases:undefined})
4
4
 
5
5
  export default [
6
6
  ...html,