@shikijs/langs-precompiled 2.1.0 → 2.3.0

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.
Files changed (109) hide show
  1. package/dist/abap.mjs +3 -1
  2. package/dist/angular-ts.mjs +1 -1
  3. package/dist/apex.mjs +1 -1
  4. package/dist/apl.mjs +1 -1
  5. package/dist/applescript.mjs +1 -1
  6. package/dist/ara.mjs +1 -1
  7. package/dist/asciidoc.mjs +1 -1
  8. package/dist/asm.mjs +1 -1
  9. package/dist/astro.mjs +1 -1
  10. package/dist/ballerina.mjs +3 -1
  11. package/dist/blade.mjs +1 -1
  12. package/dist/bsl.mjs +2 -1
  13. package/dist/c.mjs +1 -1
  14. package/dist/cadence.mjs +1 -1
  15. package/dist/cobol.mjs +2 -1
  16. package/dist/codeql.mjs +6 -2
  17. package/dist/coffee.mjs +2 -1
  18. package/dist/common-lisp.mjs +1 -1
  19. package/dist/cpp-macro.mjs +1 -1
  20. package/dist/cpp.mjs +1 -1
  21. package/dist/crystal.mjs +1 -1
  22. package/dist/css.mjs +1 -1
  23. package/dist/dax.mjs +3 -1
  24. package/dist/dream-maker.mjs +1 -1
  25. package/dist/elixir.mjs +1 -1
  26. package/dist/emacs-lisp.mjs +1 -1
  27. package/dist/erlang.mjs +1 -1
  28. package/dist/fortran-free-form.mjs +1 -1
  29. package/dist/gdscript.mjs +1 -1
  30. package/dist/gherkin.mjs +3 -1
  31. package/dist/glimmer-js.mjs +1 -1
  32. package/dist/glimmer-ts.mjs +1 -1
  33. package/dist/go.mjs +1 -1
  34. package/dist/graphql.mjs +1 -1
  35. package/dist/hack.mjs +1 -1
  36. package/dist/haml.mjs +1 -1
  37. package/dist/haskell.mjs +1 -1
  38. package/dist/html.mjs +1 -1
  39. package/dist/imba.mjs +1 -1
  40. package/dist/ini.mjs +1 -1
  41. package/dist/java.mjs +1 -1
  42. package/dist/javascript.mjs +1 -1
  43. package/dist/jsx.mjs +1 -1
  44. package/dist/julia.mjs +1 -1
  45. package/dist/kotlin.mjs +1 -1
  46. package/dist/kusto.mjs +1 -1
  47. package/dist/latex.mjs +1 -1
  48. package/dist/less.mjs +3 -1
  49. package/dist/logo.mjs +1 -1
  50. package/dist/lua.mjs +1 -1
  51. package/dist/make.mjs +1 -1
  52. package/dist/markdown-vue.mjs +1 -1
  53. package/dist/markdown.mjs +1 -1
  54. package/dist/matlab.mjs +1 -1
  55. package/dist/mdc.mjs +1 -1
  56. package/dist/mdx.mjs +1 -1
  57. package/dist/mermaid.mjs +1 -1
  58. package/dist/mipsasm.mjs +1 -1
  59. package/dist/mojo.mjs +1 -1
  60. package/dist/nginx.mjs +1 -1
  61. package/dist/nim.mjs +1 -1
  62. package/dist/nix.mjs +1 -1
  63. package/dist/nushell.mjs +1 -1
  64. package/dist/objective-c.mjs +1 -1
  65. package/dist/objective-cpp.mjs +1 -1
  66. package/dist/pascal.mjs +1 -1
  67. package/dist/perl.mjs +1 -1
  68. package/dist/php.mjs +1 -1
  69. package/dist/po.mjs +1 -1
  70. package/dist/polar.mjs +1 -1
  71. package/dist/powershell.mjs +1 -1
  72. package/dist/prolog.mjs +3 -1
  73. package/dist/pug.mjs +1 -1
  74. package/dist/python.mjs +1 -1
  75. package/dist/r.mjs +1 -1
  76. package/dist/racket.mjs +3 -1
  77. package/dist/raku.mjs +1 -1
  78. package/dist/razor.mjs +1 -1
  79. package/dist/riscv.mjs +1 -1
  80. package/dist/ruby.mjs +1 -1
  81. package/dist/sas.mjs +2 -1
  82. package/dist/scala.mjs +1 -1
  83. package/dist/scheme.mjs +1 -1
  84. package/dist/scss.mjs +1 -1
  85. package/dist/shellscript.mjs +1 -1
  86. package/dist/smalltalk.mjs +1 -1
  87. package/dist/sql.mjs +1 -1
  88. package/dist/ssh-config.mjs +1 -1
  89. package/dist/stata.mjs +2 -1
  90. package/dist/stylus.mjs +1 -1
  91. package/dist/svelte.mjs +1 -1
  92. package/dist/systemd.mjs +1 -1
  93. package/dist/templ.mjs +1 -1
  94. package/dist/tex.mjs +1 -1
  95. package/dist/toml.mjs +1 -1
  96. package/dist/tsx.mjs +1 -1
  97. package/dist/twig.mjs +1 -1
  98. package/dist/typescript.mjs +1 -1
  99. package/dist/v.mjs +1 -1
  100. package/dist/vb.mjs +1 -1
  101. package/dist/verilog.mjs +1 -1
  102. package/dist/viml.mjs +3 -1
  103. package/dist/vue-html.mjs +1 -1
  104. package/dist/vue.mjs +1 -1
  105. package/dist/vyper.mjs +1 -1
  106. package/dist/wikitext.mjs +1 -1
  107. package/dist/wolfram.mjs +1 -1
  108. package/dist/yaml.mjs +1 -1
  109. package/package.json +4 -4
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"}]}},comment:"After control variables, to not highlight as a struct/interface (before formatting with gofmt)",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:{comment:"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"}},comment:"new keyword",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"}]}},comment:"make keyword",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:{comment:"constant assignment with const keyword",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"}]}},comment:"single assignment",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"}},comment:"multi assignment",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"}]}},comment:"double parentheses types",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"}]}},comment:"struct field property and types when hovering with the mouse",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"}]}},comment:"Function declarations",end:/(?<=\))\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?!(?:[\[\]\*]+)?(?:\bstruct\b|\binterface\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"}]}},comment:"single function as a type returned type(s) declaration",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:{comment:"function parameter variables and 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"}]}},comment:"struct/interface type declaration",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"}]}},comment:"multiple parameters one type -with multilines",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"}]}},comment:"multiple params and types | multiple params one type | one param one type",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"}]}},comment:"other types",match:/([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv},{include:"$self"}]},functions:{begin:/(\bfunc\b)(?=\()/dgv,beginCaptures:{"1":{name:"keyword.function.go"}},comment:"Functions",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"}]}},comment:"functions in-line with multi return types",match:/(\bfunc\b)(\([^\/]*?\)\p{space}+\([^\/]*?\))\p{space}+(?=\{)/dgv},generic_param_types:{comment:"generic parameter variables and 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"}]}},comment:"struct/interface type declaration",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"}]}},comment:"multiple parameters one type -with multilines",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"}]}},comment:"multiple params and types | multiple types one param",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"}]}},comment:"other types",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"}]}},comment:"Generic support for all types",match:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)(\[(?:[^\]]+)?\])/dgv},"group-functions":{comment:"all statements related to functions",patterns:[{include:"#function_declaration"},{include:"#functions_inline"},{include:"#functions"},{include:"#built_in_functions"},{include:"#support_functions"}]},"group-types":{comment:"all statements related to 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":{comment:"all statements related to 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:{comment:"import",patterns:[{begin:/\b(import)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.control.import.go"}},comment:"import",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),patterns:[{include:"#imports"}]}]},imports:{comment:"import package(s)",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"}},comment:"interface variable types",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#interface_variables_types_field"},{include:"$self"}]},interface_variables_types_field:{comment:"interface variable type fields",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"}]}},comment:"other types",match:/([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv}]},keywords:{patterns:[{comment:"Flow control keywords",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"}]}},comment:"labeled loop variable name",match:/(^\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+:\p{space}*(?=\n?$)|^\p{space}*(?:\bbreak\b|\bgoto\b|\bcontinue\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"}},comment:"Language constants",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"}},comment:"map types",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"}},comment:"multi type declaration",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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/dgv,name:"punctuation.separator.constant.numeric.go"}]},"10":{name:"keyword.other.unit.imaginary.go"},"11":{name:"constant.numeric.decimal.go",patterns:[{match:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/dgv,name:"punctuation.separator.constant.numeric.go"}]},"53":{name:"keyword.other.unit.imaginary.go"}},match:/(?:(?:(?:(?:(?:(?=[0-9\.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9])\.|\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*))?(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$))|(?=[0-9\.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|((?:(?<=[0-9])\.|\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?:(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*))?(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9a-fA-F])\.|\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])((?:(?<=[0-9a-fA-F])\.|\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))/dgvy},{captures:{"1":{name:"constant.numeric.decimal.go",patterns:[{match:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$))|(0[bB])_?([01](?:[01]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[oO]?)_?((?:[0-7]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))+)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(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:{comment:"Note that the order here is very important!",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:{comment:"struct and interface expression in-line (before curly bracket)",patterns:[{comment:"after control variables must be added exactly here, do not move it! (changing may not affect tests, so be careful!)",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}\.]+)(\[(?:[^\]]+)?\])?(?=\{)(?<!\bstruct\b|\binterface\b)/dgv}]},other_variables:{comment:"all 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"}},comment:"package name",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),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":{comment:"function and generic parameter 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"}]}},comment:"Property variables in struct",match:/(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+:(?!=))/dgv},raw_string_literals:{begin:/`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.go"}},comment:"Raw string literals",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[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{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"}]}},comment:"single type declaration",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"}]}},comment:"single type declaration with generics",end:/(?<=\])(\p{space}+(?:=\p{space}*)?(?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?!(?:[\[\]\*]+)?(?:\bstruct\b|\binterface\b|\bfunc\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"}]}},comment:"slice index and capacity variables, to not scope them as property variables",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[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{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"}},comment:"Interpreted string literals",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\%tbcdoqxXUbeEfFgGspw]/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"}]}},comment:"struct, interface type declarations (related to: struct_variables_types, interface_variables_types)",match:/^\p{space}*(\btype\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv},struct_variable_types_fields_multi:{comment:"struct variable and type fields with multi lines",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"}},comment:"struct in struct types",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"}},comment:"interface in struct types",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"}},comment:"function in struct types",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"}},comment:"Struct variable type",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#struct_variables_types_fields"},{include:"$self"}]},struct_variables_types_fields:{comment:"Struct variable type 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"}]}},comment:"one line - single type",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"}]}},comment:"one line - property variables and types",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}]}},comment:"one line with semicolon(;) without formatting gofmt - single type | property variables and types",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"}]}},comment:"one type only",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"}]}},comment:"property variables and types",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"}]}},comment:"Support Functions",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"}]}},comment:"variables after case control keyword in switch/select expression, to not scope them as property variables",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"}},comment:"switch type assertions, only highlights types after case keyword",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"}]}},comment:"types after case keyword with single line",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"}},comment:"types after case keyword with multi lines",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"}},comment:"Syntax error using slices",match:/\[\](\p{space}+)/dgv},{comment:"Syntax error numeric literals",match:/\b0[0-7]*[89]\p{Nd}*\b/dgv,name:"invalid.illegal.numeric.go"}]},terminators:{comment:"Terminators",match:/;/dgv,name:"punctuation.terminator.go"},"type-declarations":{comment:"includes all 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":{comment:"includes all type declarations without brackets (in some cases, brackets need to be captured manually)",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"}]}},comment:"struct/interface types in-line (type assertion) | switch type keyword",match:/(?<=\.\()(?:(\btype\b)|((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+))(?=\))/dgv},var_assignment:{comment:"variable assignment with var keyword",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"}]}},comment:"single assignment",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"}},comment:"multi assignment",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:{comment:"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"}]}},comment:"variable assignment with :=",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"}]}},comment:"variable assignment with =",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"}]}},comment:"After control variables, to not highlight as a struct/interface (before formatting with gofmt)",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:{comment:"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"}},comment:"new keyword",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"}]}},comment:"make keyword",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:{comment:"constant assignment with const keyword",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"}]}},comment:"single assignment",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"}},comment:"multi assignment",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"}]}},comment:"double parentheses types",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"}]}},comment:"struct field property and types when hovering with the mouse",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"}]}},comment:"Function declarations",end:/(?<=\))\p{space}*((?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?!(?:[\[\]\*]+)?(?:\bstruct\b|\binterface\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"}]}},comment:"single function as a type returned type(s) declaration",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:{comment:"function parameter variables and 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"}]}},comment:"struct/interface type declaration",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"}]}},comment:"multiple parameters one type -with multilines",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"}]}},comment:"multiple params and types | multiple params one type | one param one type",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"}]}},comment:"other types",match:/([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv},{include:"$self"}]},functions:{begin:/(\bfunc\b)(?=\()/dgv,beginCaptures:{"1":{name:"keyword.function.go"}},comment:"Functions",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"}]}},comment:"functions in-line with multi return types",match:/(\bfunc\b)(\([^\/]*?\)\p{space}+\([^\/]*?\))\p{space}+(?=\{)/dgv},generic_param_types:{comment:"generic parameter variables and 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"}]}},comment:"struct/interface type declaration",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"}]}},comment:"multiple parameters one type -with multilines",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"}]}},comment:"multiple params and types | multiple types one param",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"}]}},comment:"other types",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"}]}},comment:"Generic support for all types",match:/([\p{L}\p{M}\p{N}\p{Pc}\.\*]+)(\[(?:[^\]]+)?\])/dgv},"group-functions":{comment:"all statements related to functions",patterns:[{include:"#function_declaration"},{include:"#functions_inline"},{include:"#functions"},{include:"#built_in_functions"},{include:"#support_functions"}]},"group-types":{comment:"all statements related to 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":{comment:"all statements related to 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:{comment:"import",patterns:[{begin:/\b(import)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.control.import.go"}},comment:"import",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{include:"#imports"}]}]},imports:{comment:"import package(s)",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"}},comment:"interface variable types",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#interface_variables_types_field"},{include:"$self"}]},interface_variables_types_field:{comment:"interface variable type fields",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"}]}},comment:"other types",match:/([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv}]},keywords:{patterns:[{comment:"Flow control keywords",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"}]}},comment:"labeled loop variable name",match:/(^\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+:\p{space}*(?=\n?$)|^\p{space}*(?:\bbreak\b|\bgoto\b|\bcontinue\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"}},comment:"Language constants",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"}},comment:"map types",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"}},comment:"multi type declaration",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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/dgv,name:"punctuation.separator.constant.numeric.go"}]},"10":{name:"keyword.other.unit.imaginary.go"},"11":{name:"constant.numeric.decimal.go",patterns:[{match:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/dgv,name:"punctuation.separator.constant.numeric.go"}]},"53":{name:"keyword.other.unit.imaginary.go"}},match:/(?:(?:(?:(?:(?:(?=[0-9\.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9])\.|\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*))?(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$))|(?=[0-9\.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|((?:(?<=[0-9])\.|\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?:(?<!_)([eE])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*))?(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9a-fA-F])\.|\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])((?:(?<=[0-9a-fA-F])\.|\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\+?)(-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])_(?=[0-9a-fA-F]))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))/dgvy},{captures:{"1":{name:"constant.numeric.decimal.go",patterns:[{match:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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:/(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])/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]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$))|(0[bB])_?([01](?:[01]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[oO]?)_?((?:[0-7]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))+)(i(?![\p{L}\p{M}\p{N}\p{Pc}]))?(?:\n|(?=\n?$)))|(0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(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:{comment:"Note that the order here is very important!",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:{comment:"struct and interface expression in-line (before curly bracket)",patterns:[{comment:"after control variables must be added exactly here, do not move it! (changing may not affect tests, so be careful!)",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}\.]+)(\[(?:[^\]]+)?\])?(?=\{)(?<!\bstruct\b|\binterface\b)/dgv}]},other_variables:{comment:"all 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"}},comment:"package name",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":{comment:"function and generic parameter 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"}]}},comment:"Property variables in struct",match:/(\b[\p{L}\p{M}\p{N}\p{Pc}\.]+:(?!=))/dgv},raw_string_literals:{begin:/`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.go"}},comment:"Raw string literals",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[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{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"}]}},comment:"single type declaration",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"}]}},comment:"single type declaration with generics",end:/(?<=\])(\p{space}+(?:=\p{space}*)?(?:(?:(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?(?!(?:[\[\]\*]+)?(?:\bstruct\b|\binterface\b|\bfunc\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"}]}},comment:"slice index and capacity variables, to not scope them as property variables",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[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{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"}},comment:"Interpreted string literals",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\%tbcdoqxXUbeEfFgGspw]/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"}]}},comment:"struct, interface type declarations (related to: struct_variables_types, interface_variables_types)",match:/^\p{space}*(\btype\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\.]+)/dgv},struct_variable_types_fields_multi:{comment:"struct variable and type fields with multi lines",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"}},comment:"struct in struct types",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"}},comment:"interface in struct types",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"}},comment:"function in struct types",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"}},comment:"Struct variable type",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#struct_variables_types_fields"},{include:"$self"}]},struct_variables_types_fields:{comment:"Struct variable type 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"}]}},comment:"one line - single type",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"}]}},comment:"one line - property variables and types",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}]}},comment:"one line with semicolon(;) without formatting gofmt - single type | property variables and types",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"}]}},comment:"one type only",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"}]}},comment:"property variables and types",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"}]}},comment:"Support Functions",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"}]}},comment:"variables after case control keyword in switch/select expression, to not scope them as property variables",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"}},comment:"switch type assertions, only highlights types after case keyword",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"}]}},comment:"types after case keyword with single line",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"}},comment:"types after case keyword with multi lines",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"}},comment:"Syntax error using slices",match:/\[\](\p{space}+)/dgv},{comment:"Syntax error numeric literals",match:/\b0[0-7]*[89]\p{Nd}*\b/dgv,name:"invalid.illegal.numeric.go"}]},terminators:{comment:"Terminators",match:/;/dgv,name:"punctuation.terminator.go"},"type-declarations":{comment:"includes all 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":{comment:"includes all type declarations without brackets (in some cases, brackets need to be captured manually)",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"}]}},comment:"struct/interface types in-line (type assertion) | switch type keyword",match:/(?<=\.\()(?:(\btype\b)|((?:(?:\p{space}*(?:[\*\[\]]+)?(?:<-\p{space}*)?\bchan\b(?:\p{space}*<-)?\p{space}*)+)?[\p{L}\p{M}\p{N}\p{Pc}\.\[\]\*]+))(?=\))/dgv},var_assignment:{comment:"variable assignment with var keyword",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"}]}},comment:"single assignment",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"}},comment:"multi assignment",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:{comment:"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"}]}},comment:"variable assignment with :=",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"}]}},comment:"variable assignment with =",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/graphql.mjs CHANGED
@@ -4,7 +4,7 @@ import typescript from './typescript.mjs'
4
4
  import jsx from './jsx.mjs'
5
5
  import tsx from './tsx.mjs'
6
6
 
7
- const lang = Object.freeze({displayName:"GraphQL",fileTypes:["graphql","graphqls","gql","graphcool"],name:"graphql",patterns:[{include:"#graphql"}],repository:{graphql:{patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-fragment-definition"},{include:"#graphql-directive-definition"},{include:"#graphql-type-interface"},{include:"#graphql-enum"},{include:"#graphql-scalar"},{include:"#graphql-union"},{include:"#graphql-schema"},{include:"#graphql-operation-def"},{include:"#literal-quasi-embedded"}]},"graphql-ampersand":{captures:{"1":{name:"keyword.operator.logical.graphql"}},match:/\p{space}*(&)/dgv},"graphql-arguments":{begin:/\p{space}*(\()/dgv,beginCaptures:{"1":{name:"meta.brace.round.directive.graphql"}},end:/\p{space}*(\))/dgv,endCaptures:{"1":{name:"meta.brace.round.directive.graphql"}},name:"meta.arguments.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{begin:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"variable.parameter.graphql"},"2":{name:"punctuation.colon.graphql"}},end:/(?=\p{space}*(?:([_A-Za-z][_0-9A-Za-z]*)\p{space}*(:)|\)))|\p{space}*(,)/dgv,endCaptures:{"3":{name:"punctuation.comma.graphql"}},patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-value"},{include:"#graphql-skip-newlines"}]},{include:"#literal-quasi-embedded"}]},"graphql-boolean-value":{captures:{"1":{name:"constant.language.boolean.graphql"}},match:/\p{space}*\b(true|false)\b/dgv},"graphql-colon":{captures:{"1":{name:"punctuation.colon.graphql"}},match:/\p{space}*(:)/dgv},"graphql-comma":{captures:{"1":{name:"punctuation.comma.graphql"}},match:/\p{space}*(,)/dgv},"graphql-comment":{patterns:[{captures:{"1":{name:"punctuation.whitespace.comment.leading.graphql"}},comment:"need to prefix comment space with a scope else Atom's reflow cmd doesn't work",match:/(\p{space}*)(#)[^\n]*/dgv,name:"comment.line.graphql.js"},{begin:/(""")/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.graphql"}},end:/(""")/dgv,name:"comment.line.graphql.js"},{begin:/(")/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.graphql"}},end:/(")/dgv,name:"comment.line.graphql.js"}]},"graphql-description-docstring":{begin:/"""/dgv,end:/"""/dgv,name:"comment.block.graphql"},"graphql-description-singleline":{match:/#(?=([^"]*"[^"]*")*[^"]*(?=\n?$))[^\n]*(?=\n?$)/dgv,name:"comment.line.number-sign.graphql"},"graphql-directive":{applyEndPatternLast:1,begin:/\p{space}*((@)\p{space}*([_A-Za-z][_0-9A-Za-z]*))/dgv,beginCaptures:{"1":{name:"entity.name.function.directive.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-arguments"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-directive-definition":{applyEndPatternLast:1,begin:/\p{space}*(\bdirective\b)\p{space}*(@[_A-Za-z][_0-9A-Za-z]*)/dgv,beginCaptures:{"1":{name:"keyword.directive.graphql"},"2":{name:"entity.name.function.directive.graphql"},"3":{name:"keyword.on.graphql"},"4":{name:"support.type.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-variable-definitions"},{applyEndPatternLast:1,begin:/\p{space}*(\bon\b)\p{space}*([_A-Za-z]*)/dgv,beginCaptures:{"1":{name:"keyword.on.graphql"},"2":{name:"support.type.location.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-skip-newlines"},{include:"#graphql-comment"},{include:"#literal-quasi-embedded"},{captures:{"2":{name:"support.type.location.graphql"}},match:/\p{space}*(\|)\p{space}*([_A-Za-z]*)/dgv}]},{include:"#graphql-skip-newlines"},{include:"#graphql-comment"},{include:"#literal-quasi-embedded"}]},"graphql-enum":{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$\\p{space}*))\\1)\\b(enum)\\b\\p{space}*([_A-Za-z][_0-9A-Za-z]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.enum.graphql"},"2":{name:"support.type.enum.graphql"}},end:/(?<=\})/dgv,name:"meta.enum.graphql",patterns:[{begin:/\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"punctuation.operation.graphql"}},end:/\p{space}*(\})/dgv,endCaptures:{"1":{name:"punctuation.operation.graphql"}},name:"meta.type.object.graphql",patterns:[{include:"#graphql-object-type"},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-enum-value"},{include:"#literal-quasi-embedded"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"}]},"graphql-enum-value":{match:/\p{space}*(?!=\b(true|false|null)\b)([_A-Za-z][_0-9A-Za-z]*)/dgv,name:"constant.character.enum.graphql"},"graphql-field":{patterns:[{captures:{"1":{name:"string.unquoted.alias.graphql"},"2":{name:"punctuation.colon.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)\p{space}*(:)/dgv},{captures:{"1":{name:"variable.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv},{include:"#graphql-arguments"},{include:"#graphql-directive"},{include:"#graphql-selection-set"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-float-value":{captures:{"1":{name:"constant.numeric.float.graphql"}},match:/\p{space}*(-?(0|[1-9][0-9]*)(\.[0-9]+)?((e|E)(\+|-)?[0-9]+)?)/dgv},"graphql-fragment-definition":{begin:/\p{space}*(\bfragment\b)\p{space}*([_A-Za-z][_0-9A-Za-z]*)?\p{space}*(\bon\b)\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv,captures:{"1":{name:"keyword.fragment.graphql"},"2":{name:"entity.name.fragment.graphql"},"3":{name:"keyword.on.graphql"},"4":{name:"support.type.graphql"}},end:/(?<=\})/dgv,name:"meta.fragment.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-fragment-spread":{applyEndPatternLast:1,begin:/\p{space}*(\.\.\.)\p{space}*(?!\bon\b)([_A-Za-z][_0-9A-Za-z]*)/dgv,captures:{"1":{name:"keyword.operator.spread.graphql"},"2":{name:"variable.fragment.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-ignore-spaces":{match:/\p{space}*/dgv},"graphql-inline-fragment":{applyEndPatternLast:1,begin:/\p{space}*(\.\.\.)\p{space}*(?:(\bon\b)\p{space}*([_A-Za-z][_0-9A-Za-z]*))?/dgv,captures:{"1":{name:"keyword.operator.spread.graphql"},"2":{name:"keyword.on.graphql"},"3":{name:"support.type.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-input-types":{patterns:[{include:"#graphql-scalar-type"},{captures:{"1":{name:"support.type.graphql"},"2":{name:"keyword.operator.nulltype.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)(?:\p{space}*(!))?/dgv},{begin:/\p{space}*(\[)/dgv,captures:{"1":{name:"meta.brace.square.graphql"},"2":{name:"keyword.operator.nulltype.graphql"}},end:/\p{space}*(\])(?:\p{space}*(!))?/dgv,name:"meta.type.list.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-input-types"},{include:"#graphql-comma"},{include:"#literal-quasi-embedded"}]}]},"graphql-list-value":{patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$\\p{space}*))\\1)(\\[)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"meta.brace.square.graphql"}},end:/\p{space}*(\])/dgv,endCaptures:{"1":{name:"meta.brace.square.graphql"}},name:"meta.listvalues.graphql",patterns:[{include:"#graphql-value"}]}]},"graphql-name":{captures:{"1":{name:"entity.name.function.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv},"graphql-null-value":{captures:{"1":{name:"constant.language.null.graphql"}},match:/\p{space}*\b(null)\b/dgv},"graphql-object-field":{captures:{"1":{name:"constant.object.key.graphql"},"2":{name:"string.unquoted.graphql"},"3":{name:"punctuation.graphql"}},match:/\p{space}*(([_A-Za-z][_0-9A-Za-z]*))\p{space}*(:)/dgv},"graphql-object-value":{patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$\\p{space}*))\\1)(\\{)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"meta.brace.curly.graphql"}},end:/\p{space}*(\})/dgv,endCaptures:{"1":{name:"meta.brace.curly.graphql"}},name:"meta.objectvalues.graphql",patterns:[{include:"#graphql-object-field"},{include:"#graphql-value"}]}]},"graphql-operation-def":{patterns:[{include:"#graphql-query-mutation"},{include:"#graphql-name"},{include:"#graphql-variable-definitions"},{include:"#graphql-directive"},{include:"#graphql-selection-set"}]},"graphql-query-mutation":{captures:{"1":{name:"keyword.operation.graphql"}},match:/\p{space}*\b(query|mutation)\b/dgv},"graphql-scalar":{captures:{"1":{name:"keyword.scalar.graphql"},"2":{name:"entity.scalar.graphql"}},match:/\p{space}*\b(scalar)\b\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv},"graphql-scalar-type":{captures:{"1":{name:"support.type.builtin.graphql"},"2":{name:"keyword.operator.nulltype.graphql"}},match:/\p{space}*\b(Int|Float|String|Boolean|ID)\b(?:\p{space}*(!))?/dgv},"graphql-schema":{begin:/\p{space}*\b(schema)\b/dgv,beginCaptures:{"1":{name:"keyword.schema.graphql"}},end:/(?<=\})/dgv,patterns:[{begin:/\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"punctuation.operation.graphql"}},end:/\p{space}*(\})/dgv,endCaptures:{"1":{name:"punctuation.operation.graphql"}},patterns:[{begin:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)(?=\p{space}*\(|:)/dgv,beginCaptures:{"1":{name:"variable.arguments.graphql"}},end:/(?=\p{space}*(([_A-Za-z][_0-9A-Za-z]*)\p{space}*(\(|:)|(\})))|\p{space}*(,)/dgv,endCaptures:{"5":{name:"punctuation.comma.graphql"}},patterns:[{captures:{"1":{name:"support.type.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-colon"},{include:"#graphql-skip-newlines"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-skip-newlines"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"}]},"graphql-selection-set":{begin:/\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"punctuation.operation.graphql"}},end:/\p{space}*(\})/dgv,endCaptures:{"1":{name:"punctuation.operation.graphql"}},name:"meta.selectionset.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-field"},{include:"#graphql-fragment-spread"},{include:"#graphql-inline-fragment"},{include:"#graphql-comma"},{include:"#native-interpolation"},{include:"#literal-quasi-embedded"}]},"graphql-skip-newlines":{match:/\p{space}*\n/dgv},"graphql-string-content":{patterns:[{match:/\\[\/'"\\nrtbf]/dgv,name:"constant.character.escape.graphql"},{match:/\\u([0-9a-fA-F]{4})/dgv,name:"constant.character.escape.graphql"}]},"graphql-string-value":{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$\\p{space}*))\\1)((\"))","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"string.quoted.double.graphql"},"2":{name:"punctuation.definition.string.begin.graphql"}},contentName:"string.quoted.double.graphql",end:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$\\p{space}*))\\1)(?:((\"))|(\\n))","dgv",{"useEmulationGroups":true}),endCaptures:{"1":{name:"string.quoted.double.graphql"},"2":{name:"punctuation.definition.string.end.graphql"},"3":{name:"invalid.illegal.newline.graphql"}},patterns:[{include:"#graphql-string-content"},{include:"#literal-quasi-embedded"}]},"graphql-type-definition":{begin:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)(?=\p{space}*\(|:)/dgv,beginCaptures:{"1":{name:"variable.graphql"}},comment:"key (optionalArgs): Type",end:/(?=\p{space}*(([_A-Za-z][_0-9A-Za-z]*)\p{space}*(\(|:)|(\})))|\p{space}*(,)/dgv,endCaptures:{"5":{name:"punctuation.comma.graphql"}},patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-variable-definitions"},{include:"#graphql-type-object"},{include:"#graphql-colon"},{include:"#graphql-input-types"},{include:"#literal-quasi-embedded"}]},"graphql-type-interface":{applyEndPatternLast:1,begin:/\p{space}*\b(?:(extends?)?\b\p{space}*\b(type)|(interface)|(input))\b\p{space}*([_A-Za-z][_0-9A-Za-z]*)?/dgv,captures:{"1":{name:"keyword.type.graphql"},"2":{name:"keyword.type.graphql"},"3":{name:"keyword.interface.graphql"},"4":{name:"keyword.input.graphql"},"5":{name:"support.type.graphql"}},end:/(?=[^\n])/dgv,name:"meta.type.interface.graphql",patterns:[{begin:/\p{space}*\b(implements)\b\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.implements.graphql"}},end:/\p{space}*(?=\{)/dgv,patterns:[{captures:{"1":{name:"support.type.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-ampersand"},{include:"#graphql-comma"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-type-object"},{include:"#literal-quasi-embedded"},{include:"#graphql-ignore-spaces"}]},"graphql-type-object":{begin:/\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"punctuation.operation.graphql"}},end:/\p{space}*(\})/dgv,endCaptures:{"1":{name:"punctuation.operation.graphql"}},name:"meta.type.object.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-object-type"},{include:"#graphql-type-definition"},{include:"#literal-quasi-embedded"}]},"graphql-union":{applyEndPatternLast:1,begin:/\p{space}*\b(union)\b\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv,captures:{"1":{name:"keyword.union.graphql"},"2":{name:"support.type.graphql"}},end:/(?=[^\n])/dgv,patterns:[{applyEndPatternLast:1,begin:/\p{space}*(=)\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv,captures:{"1":{name:"punctuation.assignment.graphql"},"2":{name:"support.type.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"},{captures:{"1":{name:"punctuation.or.graphql"},"2":{name:"support.type.graphql"}},match:/\p{space}*(\|)\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-union-mark":{captures:{"1":{name:"punctuation.union.graphql"}},match:/\p{space}*(\|)/dgv},"graphql-value":{patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-variable-name"},{include:"#graphql-float-value"},{include:"#graphql-string-value"},{include:"#graphql-boolean-value"},{include:"#graphql-null-value"},{include:"#graphql-enum-value"},{include:"#graphql-list-value"},{include:"#graphql-object-value"},{include:"#literal-quasi-embedded"}]},"graphql-variable-assignment":{applyEndPatternLast:1,begin:/\p{space}(=)/dgv,beginCaptures:{"1":{name:"punctuation.assignment.graphql"}},end:/(?=[\n\,\)])/dgv,patterns:[{include:"#graphql-value"}]},"graphql-variable-definition":{begin:/\p{space}*(\$?[_A-Za-z][_0-9A-Za-z]*)(?=\p{space}*\(|:)/dgv,beginCaptures:{"1":{name:"variable.parameter.graphql"}},comment:"variable: type = value,.... which may be a list",end:/(?=\p{space}*((\$?[_A-Za-z][_0-9A-Za-z]*)\p{space}*(\(|:)|(\}|\))))|\p{space}*(,)/dgv,endCaptures:{"5":{name:"punctuation.comma.graphql"}},name:"meta.variables.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-colon"},{include:"#graphql-input-types"},{include:"#graphql-variable-assignment"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-variable-definitions":{begin:/\p{space}*(\()/dgv,captures:{"1":{name:"meta.brace.round.graphql"}},end:/\p{space}*(\))/dgv,patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-variable-definition"},{include:"#literal-quasi-embedded"}]},"graphql-variable-name":{captures:{"1":{name:"variable.graphql"}},match:/\p{space}*(\$[_A-Za-z][_0-9A-Za-z]*)/dgv},"native-interpolation":{begin:/\p{space}*(\$\{)/dgv,beginCaptures:{"1":{name:"keyword.other.substitution.begin"}},end:/(\})/dgv,endCaptures:{"1":{name:"keyword.other.substitution.end"}},name:"native.interpolation",patterns:[{include:"source.js"},{include:"source.ts"},{include:"source.js.jsx"},{include:"source.tsx"}]}},scopeName:"source.graphql",embeddedLangs:["javascript","typescript","jsx","tsx"],aliases:["gql"]})
7
+ const lang = Object.freeze({displayName:"GraphQL",fileTypes:["graphql","graphqls","gql","graphcool"],name:"graphql",patterns:[{include:"#graphql"}],repository:{graphql:{patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-fragment-definition"},{include:"#graphql-directive-definition"},{include:"#graphql-type-interface"},{include:"#graphql-enum"},{include:"#graphql-scalar"},{include:"#graphql-union"},{include:"#graphql-schema"},{include:"#graphql-operation-def"},{include:"#literal-quasi-embedded"}]},"graphql-ampersand":{captures:{"1":{name:"keyword.operator.logical.graphql"}},match:/\p{space}*(&)/dgv},"graphql-arguments":{begin:/\p{space}*(\()/dgv,beginCaptures:{"1":{name:"meta.brace.round.directive.graphql"}},end:/\p{space}*(\))/dgv,endCaptures:{"1":{name:"meta.brace.round.directive.graphql"}},name:"meta.arguments.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{begin:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"variable.parameter.graphql"},"2":{name:"punctuation.colon.graphql"}},end:/(?=\p{space}*(?:([_A-Za-z][_0-9A-Za-z]*)\p{space}*(:)|\)))|\p{space}*(,)/dgv,endCaptures:{"3":{name:"punctuation.comma.graphql"}},patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-value"},{include:"#graphql-skip-newlines"}]},{include:"#literal-quasi-embedded"}]},"graphql-boolean-value":{captures:{"1":{name:"constant.language.boolean.graphql"}},match:/\p{space}*\b(true|false)\b/dgv},"graphql-colon":{captures:{"1":{name:"punctuation.colon.graphql"}},match:/\p{space}*(:)/dgv},"graphql-comma":{captures:{"1":{name:"punctuation.comma.graphql"}},match:/\p{space}*(,)/dgv},"graphql-comment":{patterns:[{captures:{"1":{name:"punctuation.whitespace.comment.leading.graphql"}},comment:"need to prefix comment space with a scope else Atom's reflow cmd doesn't work",match:/(\p{space}*)(#)[^\n]*/dgv,name:"comment.line.graphql.js"},{begin:/(""")/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.graphql"}},end:/(""")/dgv,name:"comment.line.graphql.js"},{begin:/(")/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.graphql"}},end:/(")/dgv,name:"comment.line.graphql.js"}]},"graphql-description-docstring":{begin:/"""/dgv,end:/"""/dgv,name:"comment.block.graphql"},"graphql-description-singleline":{match:/#(?=([^"]*"[^"]*")*[^"]*(?=\n?$))[^\n]*(?=\n?$)/dgv,name:"comment.line.number-sign.graphql"},"graphql-directive":{applyEndPatternLast:1,begin:/\p{space}*((@)\p{space}*([_A-Za-z][_0-9A-Za-z]*))/dgv,beginCaptures:{"1":{name:"entity.name.function.directive.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-arguments"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-directive-definition":{applyEndPatternLast:1,begin:/\p{space}*(\bdirective\b)\p{space}*(@[_A-Za-z][_0-9A-Za-z]*)/dgv,beginCaptures:{"1":{name:"keyword.directive.graphql"},"2":{name:"entity.name.function.directive.graphql"},"3":{name:"keyword.on.graphql"},"4":{name:"support.type.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-variable-definitions"},{applyEndPatternLast:1,begin:/\p{space}*(\bon\b)\p{space}*([_A-Za-z]*)/dgv,beginCaptures:{"1":{name:"keyword.on.graphql"},"2":{name:"support.type.location.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-skip-newlines"},{include:"#graphql-comment"},{include:"#literal-quasi-embedded"},{captures:{"2":{name:"support.type.location.graphql"}},match:/\p{space}*(\|)\p{space}*([_A-Za-z]*)/dgv}]},{include:"#graphql-skip-newlines"},{include:"#graphql-comment"},{include:"#literal-quasi-embedded"}]},"graphql-enum":{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\p{space}*))\\1)\\b(enum)\\b\\p{space}*([_A-Za-z][_0-9A-Za-z]*)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"1":{name:"keyword.enum.graphql"},"2":{name:"support.type.enum.graphql"}},end:/(?<=\})/dgv,name:"meta.enum.graphql",patterns:[{begin:/\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"punctuation.operation.graphql"}},end:/\p{space}*(\})/dgv,endCaptures:{"1":{name:"punctuation.operation.graphql"}},name:"meta.type.object.graphql",patterns:[{include:"#graphql-object-type"},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-enum-value"},{include:"#literal-quasi-embedded"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"}]},"graphql-enum-value":{match:/\p{space}*(?!=\b(true|false|null)\b)([_A-Za-z][_0-9A-Za-z]*)/dgv,name:"constant.character.enum.graphql"},"graphql-field":{patterns:[{captures:{"1":{name:"string.unquoted.alias.graphql"},"2":{name:"punctuation.colon.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)\p{space}*(:)/dgv},{captures:{"1":{name:"variable.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv},{include:"#graphql-arguments"},{include:"#graphql-directive"},{include:"#graphql-selection-set"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-float-value":{captures:{"1":{name:"constant.numeric.float.graphql"}},match:/\p{space}*(-?(0|[1-9][0-9]*)(\.[0-9]+)?((e|E)(\+|-)?[0-9]+)?)/dgv},"graphql-fragment-definition":{begin:/\p{space}*(\bfragment\b)\p{space}*([_A-Za-z][_0-9A-Za-z]*)?\p{space}*(\bon\b)\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv,captures:{"1":{name:"keyword.fragment.graphql"},"2":{name:"entity.name.fragment.graphql"},"3":{name:"keyword.on.graphql"},"4":{name:"support.type.graphql"}},end:/(?<=\})/dgv,name:"meta.fragment.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-fragment-spread":{applyEndPatternLast:1,begin:/\p{space}*(\.\.\.)\p{space}*(?!\bon\b)([_A-Za-z][_0-9A-Za-z]*)/dgv,captures:{"1":{name:"keyword.operator.spread.graphql"},"2":{name:"variable.fragment.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-ignore-spaces":{match:/\p{space}*/dgv},"graphql-inline-fragment":{applyEndPatternLast:1,begin:/\p{space}*(\.\.\.)\p{space}*(?:(\bon\b)\p{space}*([_A-Za-z][_0-9A-Za-z]*))?/dgv,captures:{"1":{name:"keyword.operator.spread.graphql"},"2":{name:"keyword.on.graphql"},"3":{name:"support.type.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-input-types":{patterns:[{include:"#graphql-scalar-type"},{captures:{"1":{name:"support.type.graphql"},"2":{name:"keyword.operator.nulltype.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)(?:\p{space}*(!))?/dgv},{begin:/\p{space}*(\[)/dgv,captures:{"1":{name:"meta.brace.square.graphql"},"2":{name:"keyword.operator.nulltype.graphql"}},end:/\p{space}*(\])(?:\p{space}*(!))?/dgv,name:"meta.type.list.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-input-types"},{include:"#graphql-comma"},{include:"#literal-quasi-embedded"}]}]},"graphql-list-value":{patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\p{space}*))\\1)(\\[)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"1":{name:"meta.brace.square.graphql"}},end:/\p{space}*(\])/dgv,endCaptures:{"1":{name:"meta.brace.square.graphql"}},name:"meta.listvalues.graphql",patterns:[{include:"#graphql-value"}]}]},"graphql-name":{captures:{"1":{name:"entity.name.function.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv},"graphql-null-value":{captures:{"1":{name:"constant.language.null.graphql"}},match:/\p{space}*\b(null)\b/dgv},"graphql-object-field":{captures:{"1":{name:"constant.object.key.graphql"},"2":{name:"string.unquoted.graphql"},"3":{name:"punctuation.graphql"}},match:/\p{space}*(([_A-Za-z][_0-9A-Za-z]*))\p{space}*(:)/dgv},"graphql-object-value":{patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\p{space}*))\\1)(\\{)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"1":{name:"meta.brace.curly.graphql"}},end:/\p{space}*(\})/dgv,endCaptures:{"1":{name:"meta.brace.curly.graphql"}},name:"meta.objectvalues.graphql",patterns:[{include:"#graphql-object-field"},{include:"#graphql-value"}]}]},"graphql-operation-def":{patterns:[{include:"#graphql-query-mutation"},{include:"#graphql-name"},{include:"#graphql-variable-definitions"},{include:"#graphql-directive"},{include:"#graphql-selection-set"}]},"graphql-query-mutation":{captures:{"1":{name:"keyword.operation.graphql"}},match:/\p{space}*\b(query|mutation)\b/dgv},"graphql-scalar":{captures:{"1":{name:"keyword.scalar.graphql"},"2":{name:"entity.scalar.graphql"}},match:/\p{space}*\b(scalar)\b\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv},"graphql-scalar-type":{captures:{"1":{name:"support.type.builtin.graphql"},"2":{name:"keyword.operator.nulltype.graphql"}},match:/\p{space}*\b(Int|Float|String|Boolean|ID)\b(?:\p{space}*(!))?/dgv},"graphql-schema":{begin:/\p{space}*\b(schema)\b/dgv,beginCaptures:{"1":{name:"keyword.schema.graphql"}},end:/(?<=\})/dgv,patterns:[{begin:/\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"punctuation.operation.graphql"}},end:/\p{space}*(\})/dgv,endCaptures:{"1":{name:"punctuation.operation.graphql"}},patterns:[{begin:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)(?=\p{space}*\(|:)/dgv,beginCaptures:{"1":{name:"variable.arguments.graphql"}},end:/(?=\p{space}*(([_A-Za-z][_0-9A-Za-z]*)\p{space}*(\(|:)|(\})))|\p{space}*(,)/dgv,endCaptures:{"5":{name:"punctuation.comma.graphql"}},patterns:[{captures:{"1":{name:"support.type.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-colon"},{include:"#graphql-skip-newlines"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-skip-newlines"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"}]},"graphql-selection-set":{begin:/\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"punctuation.operation.graphql"}},end:/\p{space}*(\})/dgv,endCaptures:{"1":{name:"punctuation.operation.graphql"}},name:"meta.selectionset.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-field"},{include:"#graphql-fragment-spread"},{include:"#graphql-inline-fragment"},{include:"#graphql-comma"},{include:"#native-interpolation"},{include:"#literal-quasi-embedded"}]},"graphql-skip-newlines":{match:/\p{space}*\n/dgv},"graphql-string-content":{patterns:[{match:/\\[\/'"\\nrtbf]/dgv,name:"constant.character.escape.graphql"},{match:/\\u([0-9a-fA-F]{4})/dgv,name:"constant.character.escape.graphql"}]},"graphql-string-value":{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\p{space}*))\\1)((\"))","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"1":{name:"string.quoted.double.graphql"},"2":{name:"punctuation.definition.string.begin.graphql"}},contentName:"string.quoted.double.graphql",end:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\p{space}*))\\1)(?:((\"))|(\\n))","dgv",{"hiddenCaptures":[1]}),endCaptures:{"1":{name:"string.quoted.double.graphql"},"2":{name:"punctuation.definition.string.end.graphql"},"3":{name:"invalid.illegal.newline.graphql"}},patterns:[{include:"#graphql-string-content"},{include:"#literal-quasi-embedded"}]},"graphql-type-definition":{begin:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)(?=\p{space}*\(|:)/dgv,beginCaptures:{"1":{name:"variable.graphql"}},comment:"key (optionalArgs): Type",end:/(?=\p{space}*(([_A-Za-z][_0-9A-Za-z]*)\p{space}*(\(|:)|(\})))|\p{space}*(,)/dgv,endCaptures:{"5":{name:"punctuation.comma.graphql"}},patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-variable-definitions"},{include:"#graphql-type-object"},{include:"#graphql-colon"},{include:"#graphql-input-types"},{include:"#literal-quasi-embedded"}]},"graphql-type-interface":{applyEndPatternLast:1,begin:/\p{space}*\b(?:(extends?)?\b\p{space}*\b(type)|(interface)|(input))\b\p{space}*([_A-Za-z][_0-9A-Za-z]*)?/dgv,captures:{"1":{name:"keyword.type.graphql"},"2":{name:"keyword.type.graphql"},"3":{name:"keyword.interface.graphql"},"4":{name:"keyword.input.graphql"},"5":{name:"support.type.graphql"}},end:/(?=[^\n])/dgv,name:"meta.type.interface.graphql",patterns:[{begin:/\p{space}*\b(implements)\b\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.implements.graphql"}},end:/\p{space}*(?=\{)/dgv,patterns:[{captures:{"1":{name:"support.type.graphql"}},match:/\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-ampersand"},{include:"#graphql-comma"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-type-object"},{include:"#literal-quasi-embedded"},{include:"#graphql-ignore-spaces"}]},"graphql-type-object":{begin:/\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"punctuation.operation.graphql"}},end:/\p{space}*(\})/dgv,endCaptures:{"1":{name:"punctuation.operation.graphql"}},name:"meta.type.object.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-object-type"},{include:"#graphql-type-definition"},{include:"#literal-quasi-embedded"}]},"graphql-union":{applyEndPatternLast:1,begin:/\p{space}*\b(union)\b\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv,captures:{"1":{name:"keyword.union.graphql"},"2":{name:"support.type.graphql"}},end:/(?=[^\n])/dgv,patterns:[{applyEndPatternLast:1,begin:/\p{space}*(=)\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv,captures:{"1":{name:"punctuation.assignment.graphql"},"2":{name:"support.type.graphql"}},end:/(?=[^\n])/dgv,patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"},{captures:{"1":{name:"punctuation.or.graphql"},"2":{name:"support.type.graphql"}},match:/\p{space}*(\|)\p{space}*([_A-Za-z][_0-9A-Za-z]*)/dgv}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-union-mark":{captures:{"1":{name:"punctuation.union.graphql"}},match:/\p{space}*(\|)/dgv},"graphql-value":{patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-variable-name"},{include:"#graphql-float-value"},{include:"#graphql-string-value"},{include:"#graphql-boolean-value"},{include:"#graphql-null-value"},{include:"#graphql-enum-value"},{include:"#graphql-list-value"},{include:"#graphql-object-value"},{include:"#literal-quasi-embedded"}]},"graphql-variable-assignment":{applyEndPatternLast:1,begin:/\p{space}(=)/dgv,beginCaptures:{"1":{name:"punctuation.assignment.graphql"}},end:/(?=[\n\,\)])/dgv,patterns:[{include:"#graphql-value"}]},"graphql-variable-definition":{begin:/\p{space}*(\$?[_A-Za-z][_0-9A-Za-z]*)(?=\p{space}*\(|:)/dgv,beginCaptures:{"1":{name:"variable.parameter.graphql"}},comment:"variable: type = value,.... which may be a list",end:/(?=\p{space}*((\$?[_A-Za-z][_0-9A-Za-z]*)\p{space}*(\(|:)|(\}|\))))|\p{space}*(,)/dgv,endCaptures:{"5":{name:"punctuation.comma.graphql"}},name:"meta.variables.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-colon"},{include:"#graphql-input-types"},{include:"#graphql-variable-assignment"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-variable-definitions":{begin:/\p{space}*(\()/dgv,captures:{"1":{name:"meta.brace.round.graphql"}},end:/\p{space}*(\))/dgv,patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-variable-definition"},{include:"#literal-quasi-embedded"}]},"graphql-variable-name":{captures:{"1":{name:"variable.graphql"}},match:/\p{space}*(\$[_A-Za-z][_0-9A-Za-z]*)/dgv},"native-interpolation":{begin:/\p{space}*(\$\{)/dgv,beginCaptures:{"1":{name:"keyword.other.substitution.begin"}},end:/(\})/dgv,endCaptures:{"1":{name:"keyword.other.substitution.end"}},name:"native.interpolation",patterns:[{include:"source.js"},{include:"source.ts"},{include:"source.js.jsx"},{include:"source.tsx"}]}},scopeName:"source.graphql",embeddedLangs:["javascript","typescript","jsx","tsx"],aliases:["gql"]})
8
8
 
9
9
  export default [
10
10
  ...javascript,