tm-grammars 1.22.19 → 1.23.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 (234) hide show
  1. package/NOTICE +286 -1
  2. package/README.md +241 -239
  3. package/grammars/abap.json +36 -36
  4. package/grammars/actionscript-3.json +29 -29
  5. package/grammars/ada.json +78 -78
  6. package/grammars/angular-expression.json +62 -62
  7. package/grammars/angular-html.json +0 -1
  8. package/grammars/angular-inline-style.json +3 -3
  9. package/grammars/angular-inline-template.json +2 -2
  10. package/grammars/angular-template-blocks.json +3 -3
  11. package/grammars/angular-template.json +1 -1
  12. package/grammars/angular-ts.json +251 -251
  13. package/grammars/apache.json +31 -31
  14. package/grammars/apex.json +108 -108
  15. package/grammars/apl.json +18 -18
  16. package/grammars/applescript.json +11 -11
  17. package/grammars/ara.json +13 -13
  18. package/grammars/asciidoc.json +234 -234
  19. package/grammars/asm.json +90 -90
  20. package/grammars/astro.json +25 -25
  21. package/grammars/awk.json +8 -8
  22. package/grammars/ballerina.json +150 -150
  23. package/grammars/bat.json +28 -28
  24. package/grammars/beancount.json +33 -33
  25. package/grammars/berry.json +11 -11
  26. package/grammars/bibtex.json +12 -12
  27. package/grammars/bicep.json +12 -12
  28. package/grammars/blade.json +183 -183
  29. package/grammars/bsl.json +58 -58
  30. package/grammars/c.json +162 -162
  31. package/grammars/cadence.json +20 -20
  32. package/grammars/cairo.json +10 -10
  33. package/grammars/clarity.json +20 -20
  34. package/grammars/clojure.json +25 -25
  35. package/grammars/cmake.json +3 -3
  36. package/grammars/cobol.json +91 -91
  37. package/grammars/codeql.json +154 -154
  38. package/grammars/coffee.json +45 -45
  39. package/grammars/common-lisp.json +50 -50
  40. package/grammars/coq.json +10 -10
  41. package/grammars/cpp-macro.json +410 -410
  42. package/grammars/cpp.json +641 -641
  43. package/grammars/crystal.json +68 -68
  44. package/grammars/csharp.json +196 -196
  45. package/grammars/css.json +83 -83
  46. package/grammars/csv.json +1 -1
  47. package/grammars/cue.json +55 -55
  48. package/grammars/cypher.json +11 -11
  49. package/grammars/d.json +127 -32
  50. package/grammars/dart.json +18 -18
  51. package/grammars/dax.json +9 -9
  52. package/grammars/desktop.json +9 -9
  53. package/grammars/diff.json +3 -3
  54. package/grammars/dotenv.json +3 -3
  55. package/grammars/dream-maker.json +20 -20
  56. package/grammars/edge.json +8 -8
  57. package/grammars/elixir.json +44 -44
  58. package/grammars/elm.json +23 -23
  59. package/grammars/emacs-lisp.json +76 -76
  60. package/grammars/erb.json +2 -2
  61. package/grammars/erlang.json +29 -29
  62. package/grammars/es-tag-css.json +3 -3
  63. package/grammars/es-tag-glsl.json +3 -3
  64. package/grammars/es-tag-html.json +3 -3
  65. package/grammars/es-tag-sql.json +2 -2
  66. package/grammars/es-tag-xml.json +2 -2
  67. package/grammars/fennel.json +8 -8
  68. package/grammars/fish.json +10 -10
  69. package/grammars/fluent.json +10 -10
  70. package/grammars/fortran-fixed-form.json +1 -1
  71. package/grammars/fortran-free-form.json +106 -106
  72. package/grammars/fsharp.json +70 -70
  73. package/grammars/gdresource.json +15 -15
  74. package/grammars/gdscript.json +31 -27
  75. package/grammars/gdshader.json +18 -18
  76. package/grammars/genie.json +6 -6
  77. package/grammars/gherkin.json +1 -1
  78. package/grammars/git-commit.json +1 -1
  79. package/grammars/git-rebase.json +1 -1
  80. package/grammars/gleam.json +11 -11
  81. package/grammars/glimmer-js.json +35 -35
  82. package/grammars/glimmer-ts.json +35 -35
  83. package/grammars/glsl.json +4 -4
  84. package/grammars/gnuplot.json +41 -41
  85. package/grammars/go.json +155 -155
  86. package/grammars/graphql.json +20 -20
  87. package/grammars/groovy.json +44 -44
  88. package/grammars/hack.json +74 -74
  89. package/grammars/haml.json +24 -24
  90. package/grammars/handlebars.json +25 -25
  91. package/grammars/haskell.json +99 -99
  92. package/grammars/haxe.json +51 -51
  93. package/grammars/hcl.json +43 -43
  94. package/grammars/hjson.json +29 -29
  95. package/grammars/hlsl.json +15 -15
  96. package/grammars/html-derivative.json +0 -1
  97. package/grammars/html.json +28 -29
  98. package/grammars/http.json +17 -17
  99. package/grammars/hxml.json +3 -3
  100. package/grammars/hy.json +10 -10
  101. package/grammars/imba.json +168 -173
  102. package/grammars/ini.json +2 -2
  103. package/grammars/java.json +54 -54
  104. package/grammars/javascript.json +262 -262
  105. package/grammars/jinja-html.json +3 -3
  106. package/grammars/jinja.json +15 -15
  107. package/grammars/jison.json +18 -18
  108. package/grammars/json.json +6 -6
  109. package/grammars/json5.json +12 -12
  110. package/grammars/jsonc.json +6 -6
  111. package/grammars/jsonl.json +6 -6
  112. package/grammars/jsonnet.json +15 -15
  113. package/grammars/jssm.json +4 -4
  114. package/grammars/jsx.json +262 -262
  115. package/grammars/julia.json +45 -45
  116. package/grammars/kotlin.json +15 -15
  117. package/grammars/kusto.json +13 -13
  118. package/grammars/latex.json +260 -260
  119. package/grammars/lean.json +12 -12
  120. package/grammars/less.json +91 -91
  121. package/grammars/liquid.json +96 -62
  122. package/grammars/llvm.json +122 -0
  123. package/grammars/log.json +22 -22
  124. package/grammars/logo.json +2 -2
  125. package/grammars/lua.json +34 -34
  126. package/grammars/luau.json +20 -20
  127. package/grammars/make.json +22 -22
  128. package/grammars/markdown-vue.json +1 -1
  129. package/grammars/markdown.json +83 -83
  130. package/grammars/marko.json +19 -19
  131. package/grammars/matlab.json +29 -29
  132. package/grammars/mdc.json +17 -17
  133. package/grammars/mdx.json +278 -278
  134. package/grammars/mermaid.json +97 -97
  135. package/grammars/mipsasm.json +2 -2
  136. package/grammars/mojo.json +122 -122
  137. package/grammars/move.json +35 -35
  138. package/grammars/narrat.json +10 -10
  139. package/grammars/nextflow.json +11 -11
  140. package/grammars/nginx.json +45 -45
  141. package/grammars/nim.json +44 -44
  142. package/grammars/nix.json +71 -71
  143. package/grammars/nushell.json +36 -36
  144. package/grammars/objective-c.json +129 -129
  145. package/grammars/objective-cpp.json +245 -245
  146. package/grammars/ocaml.json +229 -229
  147. package/grammars/pascal.json +4 -4
  148. package/grammars/perl.json +64 -64
  149. package/grammars/php.json +199 -199
  150. package/grammars/plsql.json +10 -10
  151. package/grammars/po.json +4 -4
  152. package/grammars/polar.json +13 -13
  153. package/grammars/postcss.json +31 -31
  154. package/grammars/powerquery.json +10 -10
  155. package/grammars/powershell.json +54 -54
  156. package/grammars/prisma.json +13 -13
  157. package/grammars/prolog.json +3 -3
  158. package/grammars/proto.json +11 -11
  159. package/grammars/pug.json +30 -30
  160. package/grammars/puppet.json +35 -35
  161. package/grammars/purescript.json +843 -467
  162. package/grammars/python.json +126 -126
  163. package/grammars/qml.json +18 -18
  164. package/grammars/qss.json +7 -7
  165. package/grammars/r.json +17 -17
  166. package/grammars/racket.json +58 -58
  167. package/grammars/raku.json +15 -15
  168. package/grammars/razor.json +30 -30
  169. package/grammars/reg.json +3 -3
  170. package/grammars/regexp.json +15 -15
  171. package/grammars/rel.json +4 -4
  172. package/grammars/riscv.json +15 -15
  173. package/grammars/rst.json +26 -26
  174. package/grammars/ruby.json +103 -106
  175. package/grammars/rust.json +13 -13
  176. package/grammars/sas.json +9 -9
  177. package/grammars/sass.json +35 -35
  178. package/grammars/scala.json +75 -75
  179. package/grammars/scheme.json +16 -16
  180. package/grammars/scss.json +68 -68
  181. package/grammars/sdbl.json +18 -18
  182. package/grammars/shaderlab.json +8 -8
  183. package/grammars/shellscript.json +111 -111
  184. package/grammars/shellsession.json +1 -1
  185. package/grammars/smalltalk.json +5 -5
  186. package/grammars/solidity.json +20 -20
  187. package/grammars/soy.json +30 -30
  188. package/grammars/sparql.json +1 -1
  189. package/grammars/splunk.json +6 -6
  190. package/grammars/sql.json +8 -8
  191. package/grammars/ssh-config.json +2 -2
  192. package/grammars/stata.json +90 -90
  193. package/grammars/stylus.json +48 -48
  194. package/grammars/svelte.json +35 -25
  195. package/grammars/swift.json +114 -114
  196. package/grammars/system-verilog.json +25 -25
  197. package/grammars/systemd.json +16 -16
  198. package/grammars/talonscript.json +12 -12
  199. package/grammars/tasl.json +10 -10
  200. package/grammars/tcl.json +11 -11
  201. package/grammars/templ.json +34 -34
  202. package/grammars/terraform.json +42 -42
  203. package/grammars/tex.json +14 -14
  204. package/grammars/toml.json +15 -15
  205. package/grammars/tsx.json +262 -262
  206. package/grammars/turtle.json +2 -2
  207. package/grammars/twig.json +37 -37
  208. package/grammars/typescript.json +251 -251
  209. package/grammars/typespec.json +54 -273
  210. package/grammars/typst.json +34 -34
  211. package/grammars/v.json +32 -32
  212. package/grammars/vala.json +6 -6
  213. package/grammars/vb.json +7 -7
  214. package/grammars/verilog.json +4 -4
  215. package/grammars/vhdl.json +10 -10
  216. package/grammars/viml.json +22 -22
  217. package/grammars/vue-html.json +10 -10
  218. package/grammars/vue-sfc-style-variable-injection.json +1 -1
  219. package/grammars/vue.json +65 -65
  220. package/grammars/vyper.json +126 -126
  221. package/grammars/wasm.json +26 -26
  222. package/grammars/wenyan.json +7 -7
  223. package/grammars/wgsl.json +9 -9
  224. package/grammars/wikitext.json +66 -66
  225. package/grammars/wit.json +1409 -0
  226. package/grammars/wolfram.json +446 -446
  227. package/grammars/xml.json +11 -11
  228. package/grammars/xsl.json +1 -1
  229. package/grammars/yaml.json +24 -24
  230. package/grammars/zenscript.json +8 -8
  231. package/grammars/zig.json +11 -11
  232. package/index.d.ts +7 -0
  233. package/index.js +1003 -283
  234. package/package.json +1 -1
package/grammars/go.json CHANGED
@@ -19,17 +19,17 @@
19
19
  "name": "punctuation.definition.begin.bracket.square.go"
20
20
  },
21
21
  {
22
- "match": "\\]",
22
+ "match": "]",
23
23
  "name": "punctuation.definition.end.bracket.square.go"
24
24
  },
25
25
  {
26
- "match": "(?:\\w+)",
26
+ "match": "\\w+",
27
27
  "name": "variable.other.go"
28
28
  }
29
29
  ]
30
30
  }
31
31
  },
32
- "match": "(?:(?<=\\brange\\b|\\bswitch\\b|\\;|\\bif\\b|\\bfor\\b|\\<|\\>|\\<\\=|\\>\\=|\\=\\=|\\!\\=|\\w(?:\\+|/|\\-|\\*|\\%)|\\w(?:\\+|/|\\-|\\*|\\%)\\=|\\|\\||\\&\\&)(?:\\s*)((?![\\[\\]]+)[[:alnum:]\\-\\_\\!\\.\\[\\]\\<\\>\\=\\*/\\+\\%\\:]+)(?:\\s*)(?=\\{))"
32
+ "match": "(?<=\\brange\\b|\\bswitch\\b|;|\\bif\\b|\\bfor\\b|[<>]|<=|>=|==|!=|\\w[+/\\-*%]|\\w[+/\\-*%]=|\\|\\||&&)\\s*((?![\\[\\]]+)[[:alnum:]\\-_!.\\[\\]<>=*/+%:]+)\\s*(?=\\{)"
33
33
  },
34
34
  "brackets": {
35
35
  "patterns": [
@@ -40,7 +40,7 @@
40
40
  "name": "punctuation.definition.begin.bracket.curly.go"
41
41
  }
42
42
  },
43
- "end": "\\}",
43
+ "end": "}",
44
44
  "endCaptures": {
45
45
  "0": {
46
46
  "name": "punctuation.definition.end.bracket.curly.go"
@@ -78,7 +78,7 @@
78
78
  "name": "punctuation.definition.begin.bracket.square.go"
79
79
  }
80
80
  },
81
- "end": "\\]",
81
+ "end": "]",
82
82
  "endCaptures": {
83
83
  "0": {
84
84
  "name": "punctuation.definition.end.bracket.square.go"
@@ -99,7 +99,7 @@
99
99
  "name": "entity.name.function.support.builtin.go"
100
100
  },
101
101
  {
102
- "begin": "(?:(\\bnew\\b)(\\())",
102
+ "begin": "(\\bnew\\b)(\\()",
103
103
  "beginCaptures": {
104
104
  "1": {
105
105
  "name": "entity.name.function.support.builtin.go"
@@ -128,7 +128,7 @@
128
128
  "include": "#generic_types"
129
129
  },
130
130
  {
131
- "match": "(?:\\w+)",
131
+ "match": "\\w+",
132
132
  "name": "entity.name.type.go"
133
133
  },
134
134
  {
@@ -137,7 +137,7 @@
137
137
  ]
138
138
  },
139
139
  {
140
- "begin": "(?:(\\bmake\\b)(?:(\\()((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?:[\\[\\]\\*]+)?(?:(?!\\bmap\\b)(?:[\\w\\.]+))?(\\[(?:(?:[\\S]+)(?:(?:\\,\\s*(?:[\\S]+))*))?\\])?(?:\\,)?)?))",
140
+ "begin": "(\\bmake\\b)(\\()((?:(?:[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?[\\[\\]*]+{0,1}(?:(?!\\bmap\\b)[\\w.]+)?(\\[(?:\\S+(?:,\\s*\\S+)*)?])?,?)?",
141
141
  "beginCaptures": {
142
142
  "1": {
143
143
  "name": "entity.name.function.support.builtin.go"
@@ -177,13 +177,13 @@
177
177
  "comments": {
178
178
  "patterns": [
179
179
  {
180
- "begin": "(\\/\\*)",
180
+ "begin": "(/\\*)",
181
181
  "beginCaptures": {
182
182
  "1": {
183
183
  "name": "punctuation.definition.comment.go"
184
184
  }
185
185
  },
186
- "end": "(\\*\\/)",
186
+ "end": "(\\*/)",
187
187
  "endCaptures": {
188
188
  "1": {
189
189
  "name": "punctuation.definition.comment.go"
@@ -192,7 +192,7 @@
192
192
  "name": "comment.block.go"
193
193
  },
194
194
  {
195
- "begin": "(\\/\\/)",
195
+ "begin": "(//)",
196
196
  "beginCaptures": {
197
197
  "1": {
198
198
  "name": "punctuation.definition.comment.go"
@@ -239,7 +239,7 @@
239
239
  "name": "punctuation.definition.begin.bracket.square.go"
240
240
  },
241
241
  {
242
- "match": "\\]",
242
+ "match": "]",
243
243
  "name": "punctuation.definition.end.bracket.square.go"
244
244
  },
245
245
  {
@@ -249,10 +249,10 @@
249
249
  ]
250
250
  }
251
251
  },
252
- "match": "(?:(?<=\\bconst\\b)(?:\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:\\=)?)?)"
252
+ "match": "(?<=\\bconst\\b)\\s*(\\b[\\w.]+(?:,\\s*[\\w.]+)*)\\s*((?:(?:[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?![\\[\\]*]+{0,1}\\b(?:struct|func|map)\\b)(?:[\\w.\\[\\]*]+(?:,\\s*[\\w.\\[\\]*]+)*)?\\s*=?)?"
253
253
  },
254
254
  {
255
- "begin": "(?:(?<=\\bconst\\b)(?:\\s*)(\\())",
255
+ "begin": "(?<=\\bconst\\b)\\s*(\\()",
256
256
  "beginCaptures": {
257
257
  "1": {
258
258
  "name": "punctuation.definition.begin.bracket.round.go"
@@ -299,7 +299,7 @@
299
299
  "name": "punctuation.definition.begin.bracket.square.go"
300
300
  },
301
301
  {
302
- "match": "\\]",
302
+ "match": "]",
303
303
  "name": "punctuation.definition.end.bracket.square.go"
304
304
  },
305
305
  {
@@ -309,7 +309,7 @@
309
309
  ]
310
310
  }
311
311
  },
312
- "match": "(?:(?:^\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:\\=)?)?)"
312
+ "match": "^\\s*(\\b[\\w.]+(?:,\\s*[\\w.]+)*)\\s*((?:(?:[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?![\\[\\]*]+{0,1}\\b(?:struct|func|map)\\b)(?:[\\w.\\[\\]*]+(?:,\\s*[\\w.\\[\\]*]+)*)?\\s*=?)?"
313
313
  },
314
314
  {
315
315
  "include": "$self"
@@ -321,7 +321,7 @@
321
321
  "delimiters": {
322
322
  "patterns": [
323
323
  {
324
- "match": "\\,",
324
+ "match": ",",
325
325
  "name": "punctuation.other.comma.go"
326
326
  },
327
327
  {
@@ -354,7 +354,7 @@
354
354
  "name": "punctuation.definition.begin.bracket.square.go"
355
355
  },
356
356
  {
357
- "match": "\\]",
357
+ "match": "]",
358
358
  "name": "punctuation.definition.end.bracket.square.go"
359
359
  },
360
360
  {
@@ -364,7 +364,7 @@
364
364
  ]
365
365
  }
366
366
  },
367
- "match": "(?:(?<!\\w)(\\((?:[\\w\\.\\[\\]\\*\\&]+)\\))(?=\\())"
367
+ "match": "(?<!\\w)(\\([\\w.\\[\\]*\\&]+\\))(?=\\()"
368
368
  },
369
369
  "field_hover": {
370
370
  "captures": {
@@ -398,10 +398,10 @@
398
398
  ]
399
399
  }
400
400
  },
401
- "match": "(?:(?<=^\\bfield\\b)\\s+([\\w\\*\\.]+)\\s+([\\s\\S]+))"
401
+ "match": "(?<=^\\bfield\\b)\\s+([\\w*.]+)\\s+([\\s\\S]+)"
402
402
  },
403
403
  "function_declaration": {
404
- "begin": "(?:^(\\bfunc\\b)(?:\\s*(\\([^\\)]+\\)\\s*)?(?:(\\w+)(?=\\(|\\[))?))",
404
+ "begin": "^(\\bfunc\\b)\\s*(\\([^)]+\\)\\s*)?(?:(\\w+)(?=[(\\[]))?",
405
405
  "beginCaptures": {
406
406
  "1": {
407
407
  "name": "keyword.function.go"
@@ -436,13 +436,13 @@
436
436
  "include": "#parameter-variable-types"
437
437
  },
438
438
  {
439
- "match": "(?:\\w+)",
439
+ "match": "\\w+",
440
440
  "name": "entity.name.type.go"
441
441
  }
442
442
  ]
443
443
  }
444
444
  },
445
- "match": "(?:(\\w+(?:\\s+))?((?:[\\w\\.\\*]+)(?:\\[(?:(?:(?:[\\w\\.\\*]+)(?:\\,\\s+)?)+)?\\])?))"
445
+ "match": "(\\w+\\s+)?([\\w.*]+(?:\\[(?:[\\w.*]+(?:,\\s+)?)+{0,1}])?)"
446
446
  },
447
447
  {
448
448
  "include": "$self"
@@ -464,7 +464,7 @@
464
464
  ]
465
465
  }
466
466
  },
467
- "end": "(?:(?<=\\))\\s*((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?!(?:[\\[\\]\\*]+)?(?:\\bstruct\\b|\\binterface\\b))[\\w\\.\\-\\*\\[\\]]+)?\\s*(?=\\{))",
467
+ "end": "(?<=\\))\\s*((?:[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}(?![\\[\\]*]+{0,1}\\b(?:struct\\b|interface\\b))[\\w.\\-*\\[\\]]+)?\\s*(?=\\{)",
468
468
  "endCaptures": {
469
469
  "1": {
470
470
  "patterns": [
@@ -475,7 +475,7 @@
475
475
  "include": "#parameter-variable-types"
476
476
  },
477
477
  {
478
- "match": "(?:\\w+)",
478
+ "match": "\\w+",
479
479
  "name": "entity.name.type.go"
480
480
  }
481
481
  ]
@@ -502,7 +502,7 @@
502
502
  ]
503
503
  },
504
504
  {
505
- "begin": "(?:([\\w\\.\\*]+)?(\\[))",
505
+ "begin": "([\\w.*]+)?(\\[)",
506
506
  "beginCaptures": {
507
507
  "1": {
508
508
  "patterns": [
@@ -510,7 +510,7 @@
510
510
  "include": "#type-declarations"
511
511
  },
512
512
  {
513
- "match": "(?:\\w+)",
513
+ "match": "\\w+",
514
514
  "name": "entity.name.type.go"
515
515
  }
516
516
  ]
@@ -519,7 +519,7 @@
519
519
  "name": "punctuation.definition.begin.bracket.square.go"
520
520
  }
521
521
  },
522
- "end": "\\]",
522
+ "end": "]",
523
523
  "endCaptures": {
524
524
  "0": {
525
525
  "name": "punctuation.definition.end.bracket.square.go"
@@ -548,7 +548,7 @@
548
548
  ]
549
549
  }
550
550
  },
551
- "match": "(?:(?<=\\))(?:\\s*)((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?[\\w\\*\\.\\[\\]\\<\\>\\-]+(?:\\s*)(?:\\/(?:\\/|\\*).*)?)$)"
551
+ "match": "(?<=\\))\\s*((?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[\\w*.\\[\\]<>\\-]+\\s*(?:/[/*].*)?)$"
552
552
  },
553
553
  {
554
554
  "include": "$self"
@@ -580,7 +580,7 @@
580
580
  ]
581
581
  }
582
582
  },
583
- "match": "((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)\\s+(?=(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b\\s*\\{)"
583
+ "match": "((?:\\b\\w+,\\s*)+{0,1}\\b\\w+)\\s+(?=(?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[\\[\\]*]+{0,1}\\b(?:struct|interface)\\b\\s*\\{)"
584
584
  },
585
585
  {
586
586
  "captures": {
@@ -596,7 +596,7 @@
596
596
  ]
597
597
  }
598
598
  },
599
- "match": "(?:(?:(?<=\\()|^\\s*)((?:(?:\\b\\w+\\,\\s*)+)(?:/(?:/|\\*).*)?)$)"
599
+ "match": "(?:(?<=\\()|^\\s*)((?:\\b\\w+,\\s*)+(?:/[/*].*)?)$"
600
600
  },
601
601
  {
602
602
  "captures": {
@@ -620,16 +620,16 @@
620
620
  "include": "#parameter-variable-types"
621
621
  },
622
622
  {
623
- "match": "(?:\\w+)",
623
+ "match": "\\w+",
624
624
  "name": "entity.name.type.go"
625
625
  }
626
626
  ]
627
627
  }
628
628
  },
629
- "match": "(?:((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)(?:\\s+)((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:(?:(?:[\\w\\[\\]\\.\\*]+)?(?:(?:\\bfunc\\b\\((?:[^\\)]+)?\\))(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s*))+(?:(?:(?:[\\w\\*\\.\\[\\]]+)|(?:\\((?:[^\\)]+)?\\))))?)|(?:(?:[\\[\\]\\*]+)?[\\w\\*\\.]+(?:\\[(?:[^\\]]+)\\])?(?:[\\w\\.\\*]+)?)+)))"
629
+ "match": "((?:\\b\\w+,\\s*)+{0,1}\\b\\w+)\\s+((?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}(?:[\\w\\[\\].*]+{0,1}(?:\\bfunc\\b\\([^)]+{0,1}\\)(?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\s*)+(?:[\\w*.\\[\\]]+|\\([^)]+{0,1}\\))?|(?:[\\[\\]*]+{0,1}[\\w*.]+(?:\\[[^\\]]+])?[\\w.*]+{0,1})+))"
630
630
  },
631
631
  {
632
- "begin": "(?:([\\w\\.\\*]+)?(\\[))",
632
+ "begin": "([\\w.*]+)?(\\[)",
633
633
  "beginCaptures": {
634
634
  "1": {
635
635
  "patterns": [
@@ -637,7 +637,7 @@
637
637
  "include": "#type-declarations"
638
638
  },
639
639
  {
640
- "match": "(?:\\w+)",
640
+ "match": "\\w+",
641
641
  "name": "entity.name.type.go"
642
642
  }
643
643
  ]
@@ -646,7 +646,7 @@
646
646
  "name": "punctuation.definition.begin.bracket.square.go"
647
647
  }
648
648
  },
649
- "end": "\\]",
649
+ "end": "]",
650
650
  "endCaptures": {
651
651
  "0": {
652
652
  "name": "punctuation.definition.end.bracket.square.go"
@@ -685,13 +685,13 @@
685
685
  "include": "#type-declarations"
686
686
  },
687
687
  {
688
- "match": "(?:\\w+)",
688
+ "match": "\\w+",
689
689
  "name": "entity.name.type.go"
690
690
  }
691
691
  ]
692
692
  }
693
693
  },
694
- "match": "([\\w\\.]+)"
694
+ "match": "([\\w.]+)"
695
695
  },
696
696
  {
697
697
  "include": "$self"
@@ -699,13 +699,13 @@
699
699
  ]
700
700
  },
701
701
  "functions": {
702
- "begin": "(?:(\\bfunc\\b)(?=\\())",
702
+ "begin": "(\\bfunc\\b)(?=\\()",
703
703
  "beginCaptures": {
704
704
  "1": {
705
705
  "name": "keyword.function.go"
706
706
  }
707
707
  },
708
- "end": "(?:(?<=\\))(\\s*(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?((?:(?:\\s*(?:(?:[\\[\\]\\*]+)?[\\w\\.\\*]+)?(?:(?:\\[(?:(?:[\\w\\.\\*]+)?(?:\\[(?:[^\\]]+)?\\])?(?:\\,\\s+)?)+\\])|(?:\\((?:[^\\)]+)?\\)))?(?:[\\w\\.\\*]+)?)(?:\\s*)(?=\\{))|(?:\\s*(?:(?:(?:[\\[\\]\\*]+)?(?!\\bfunc\\b)(?:[\\w\\.\\*]+)(?:\\[(?:(?:[\\w\\.\\*]+)?(?:\\[(?:[^\\]]+)?\\])?(?:\\,\\s+)?)+\\])?(?:[\\w\\.\\*]+)?)|(?:\\((?:[^\\)]+)?\\)))))?)",
708
+ "end": "(?<=\\))(\\s*(?:[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(\\s*(?:[\\[\\]*]+{0,1}[\\w.*]+)?(?:\\[(?:[\\w.*]+{0,1}(?:\\[[^\\]]+{0,1}])?(?:,\\s+)?)+]|\\([^)]+{0,1}\\))?[\\w.*]+{0,1}\\s*(?=\\{)|\\s*(?:[\\[\\]*]+{0,1}(?!\\bfunc\\b)[\\w.*]+(?:\\[(?:[\\w.*]+{0,1}(?:\\[[^\\]]+{0,1}])?(?:,\\s+)?)+])?[\\w.*]+{0,1}|\\([^)]+{0,1}\\)))?",
709
709
  "endCaptures": {
710
710
  "1": {
711
711
  "patterns": [
@@ -723,7 +723,7 @@
723
723
  "include": "#parameter-variable-types"
724
724
  },
725
725
  {
726
- "match": "(?:\\w+)",
726
+ "match": "\\w+",
727
727
  "name": "entity.name.type.go"
728
728
  }
729
729
  ]
@@ -772,7 +772,7 @@
772
772
  "name": "punctuation.definition.begin.bracket.square.go"
773
773
  },
774
774
  {
775
- "match": "\\]",
775
+ "match": "]",
776
776
  "name": "punctuation.definition.end.bracket.square.go"
777
777
  },
778
778
  {
@@ -780,17 +780,17 @@
780
780
  "name": "punctuation.definition.begin.bracket.curly.go"
781
781
  },
782
782
  {
783
- "match": "\\}",
783
+ "match": "}",
784
784
  "name": "punctuation.definition.end.bracket.curly.go"
785
785
  },
786
786
  {
787
- "match": "(?:\\w+)",
787
+ "match": "\\w+",
788
788
  "name": "entity.name.type.go"
789
789
  }
790
790
  ]
791
791
  }
792
792
  },
793
- "match": "(?:(\\bfunc\\b)((?:\\((?:[^/]*?)\\))(?:\\s+)(?:\\((?:[^/]*?)\\)))(?:\\s+)(?=\\{))"
793
+ "match": "(\\bfunc\\b)(\\([^/]*?\\)\\s+\\([^/]*?\\))\\s+(?=\\{)"
794
794
  },
795
795
  "generic_param_types": {
796
796
  "patterns": [
@@ -817,7 +817,7 @@
817
817
  ]
818
818
  }
819
819
  },
820
- "match": "((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)\\s+(?=(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b\\s*\\{)"
820
+ "match": "((?:\\b\\w+,\\s*)+{0,1}\\b\\w+)\\s+(?=(?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[\\[\\]*]+{0,1}\\b(?:struct|interface)\\b\\s*\\{)"
821
821
  },
822
822
  {
823
823
  "captures": {
@@ -833,7 +833,7 @@
833
833
  ]
834
834
  }
835
835
  },
836
- "match": "(?:(?:(?<=\\()|^\\s*)((?:(?:\\b\\w+\\,\\s*)+)(?:/(?:/|\\*).*)?)$)"
836
+ "match": "(?:(?<=\\()|^\\s*)((?:\\b\\w+,\\s*)+(?:/[/*].*)?)$"
837
837
  },
838
838
  {
839
839
  "captures": {
@@ -857,7 +857,7 @@
857
857
  "include": "#parameter-variable-types"
858
858
  },
859
859
  {
860
- "match": "(?:\\w+)",
860
+ "match": "\\w+",
861
861
  "name": "entity.name.type.go"
862
862
  }
863
863
  ]
@@ -868,16 +868,16 @@
868
868
  "include": "#type-declarations"
869
869
  },
870
870
  {
871
- "match": "(?:\\w+)",
871
+ "match": "\\w+",
872
872
  "name": "entity.name.type.go"
873
873
  }
874
874
  ]
875
875
  }
876
876
  },
877
- "match": "(?:((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)(?:\\s+)((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:(?:(?:[\\w\\[\\]\\.\\*]+)?(?:(?:\\bfunc\\b\\((?:[^\\)]+)?\\))(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s*))+(?:(?:(?:[\\w\\*\\.]+)|(?:\\((?:[^\\)]+)?\\))))?)|(?:(?:(?:[\\w\\*\\.\\~]+)|(?:\\[(?:(?:[\\w\\.\\*]+)?(?:\\[(?:[^\\]]+)?\\])?(?:\\,\\s+)?)+\\]))(?:[\\w\\.\\*]+)?)+)))"
877
+ "match": "((?:\\b\\w+,\\s*)+{0,1}\\b\\w+)\\s+((?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}(?:[\\w\\[\\].*]+{0,1}(?:\\bfunc\\b\\([^)]+{0,1}\\)(?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\s*)+(?:[\\w*.]+|\\([^)]+{0,1}\\))?|(?:(?:[\\w*.~]+|\\[(?:[\\w.*]+{0,1}(?:\\[[^\\]]+{0,1}])?(?:,\\s+)?)+])[\\w.*]+{0,1})+))"
878
878
  },
879
879
  {
880
- "begin": "(?:([\\w\\.\\*]+)?(\\[))",
880
+ "begin": "([\\w.*]+)?(\\[)",
881
881
  "beginCaptures": {
882
882
  "1": {
883
883
  "patterns": [
@@ -885,7 +885,7 @@
885
885
  "include": "#type-declarations"
886
886
  },
887
887
  {
888
- "match": "(?:\\w+)",
888
+ "match": "\\w+",
889
889
  "name": "entity.name.type.go"
890
890
  }
891
891
  ]
@@ -894,7 +894,7 @@
894
894
  "name": "punctuation.definition.begin.bracket.square.go"
895
895
  }
896
896
  },
897
- "end": "\\]",
897
+ "end": "]",
898
898
  "endCaptures": {
899
899
  "0": {
900
900
  "name": "punctuation.definition.end.bracket.square.go"
@@ -933,13 +933,13 @@
933
933
  "include": "#type-declarations"
934
934
  },
935
935
  {
936
- "match": "(?:\\w+)",
936
+ "match": "\\w+",
937
937
  "name": "entity.name.type.go"
938
938
  }
939
939
  ]
940
940
  }
941
941
  },
942
- "match": "(?:\\b([\\w\\.]+))"
942
+ "match": "\\b([\\w.]+)"
943
943
  },
944
944
  {
945
945
  "include": "$self"
@@ -967,7 +967,7 @@
967
967
  ]
968
968
  }
969
969
  },
970
- "match": "(?:([\\w\\.\\*]+)(\\[(?:[^\\]]+)?\\]))"
970
+ "match": "([\\w.*]+)(\\[[^\\]]+{0,1}])"
971
971
  },
972
972
  "group-functions": {
973
973
  "patterns": [
@@ -1078,7 +1078,7 @@
1078
1078
  "include": "#delimiters"
1079
1079
  },
1080
1080
  {
1081
- "match": "(?:\\w+)",
1081
+ "match": "\\w+",
1082
1082
  "name": "variable.other.import.go"
1083
1083
  }
1084
1084
  ]
@@ -1096,7 +1096,7 @@
1096
1096
  "name": "punctuation.definition.string.end.go"
1097
1097
  }
1098
1098
  },
1099
- "match": "(\\s*[\\w\\.]+)?\\s*((\")([^\"]*)(\"))"
1099
+ "match": "(\\s*[\\w.]+)?\\s*((\")([^\"]*)(\"))"
1100
1100
  },
1101
1101
  {
1102
1102
  "begin": "\\(",
@@ -1135,7 +1135,7 @@
1135
1135
  "name": "punctuation.definition.begin.bracket.curly.go"
1136
1136
  }
1137
1137
  },
1138
- "end": "\\}",
1138
+ "end": "}",
1139
1139
  "endCaptures": {
1140
1140
  "0": {
1141
1141
  "name": "punctuation.definition.end.bracket.curly.go"
@@ -1159,7 +1159,7 @@
1159
1159
  "include": "#type-declarations-without-brackets"
1160
1160
  },
1161
1161
  {
1162
- "begin": "(?:([\\w\\.\\*]+)?(\\[))",
1162
+ "begin": "([\\w.*]+)?(\\[)",
1163
1163
  "beginCaptures": {
1164
1164
  "1": {
1165
1165
  "patterns": [
@@ -1167,7 +1167,7 @@
1167
1167
  "include": "#type-declarations"
1168
1168
  },
1169
1169
  {
1170
- "match": "(?:\\w+)",
1170
+ "match": "\\w+",
1171
1171
  "name": "entity.name.type.go"
1172
1172
  }
1173
1173
  ]
@@ -1176,7 +1176,7 @@
1176
1176
  "name": "punctuation.definition.begin.bracket.square.go"
1177
1177
  }
1178
1178
  },
1179
- "end": "\\]",
1179
+ "end": "]",
1180
1180
  "endCaptures": {
1181
1181
  "0": {
1182
1182
  "name": "punctuation.definition.end.bracket.square.go"
@@ -1221,7 +1221,7 @@
1221
1221
  ]
1222
1222
  }
1223
1223
  },
1224
- "match": "([\\w\\.]+)"
1224
+ "match": "([\\w.]+)"
1225
1225
  }
1226
1226
  ]
1227
1227
  },
@@ -1283,7 +1283,7 @@
1283
1283
  ]
1284
1284
  }
1285
1285
  },
1286
- "match": "((?:^\\s*\\w+:\\s*$)|(?:^\\s*(?:\\bbreak\\b|\\bgoto\\b|\\bcontinue\\b)\\s+\\w+(?:\\s*/(?:/|\\*)\\s*.*)?$))"
1286
+ "match": "(^(?:\\s*\\w+:\\s*$|\\s*\\b(?:break\\b|goto\\b|continue\\b)\\s+\\w+(?:\\s*/[/*]\\s*.*)?$))"
1287
1287
  },
1288
1288
  "language_constants": {
1289
1289
  "captures": {
@@ -1300,7 +1300,7 @@
1300
1300
  "match": "\\b(?:(true|false)|(nil)|(iota))\\b"
1301
1301
  },
1302
1302
  "map_types": {
1303
- "begin": "(?:(\\bmap\\b)(\\[))",
1303
+ "begin": "(\\bmap\\b)(\\[)",
1304
1304
  "beginCaptures": {
1305
1305
  "1": {
1306
1306
  "name": "keyword.map.go"
@@ -1309,7 +1309,7 @@
1309
1309
  "name": "punctuation.definition.begin.bracket.square.go"
1310
1310
  }
1311
1311
  },
1312
- "end": "(?:(\\])((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?!(?:[\\[\\]\\*]+)?\\b(?:func|struct|map)\\b)(?:[\\*\\[\\]]+)?(?:[\\w\\.]+)(?:\\[(?:(?:[\\w\\.\\*\\[\\]\\{\\}]+)(?:(?:\\,\\s*(?:[\\w\\.\\*\\[\\]\\{\\}]+))*))?\\])?)?)",
1312
+ "end": "(])((?:[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}(?![\\[\\]*]+{0,1}\\b(?:func|struct|map)\\b)[*\\[\\]]+{0,1}[\\w.]+(?:\\[(?:[\\w.*\\[\\]{}]+(?:,\\s*[\\w.*\\[\\]{}]+)*)?])?)?",
1313
1313
  "endCaptures": {
1314
1314
  "1": {
1315
1315
  "name": "punctuation.definition.end.bracket.square.go"
@@ -1324,7 +1324,7 @@
1324
1324
  "name": "punctuation.definition.begin.bracket.square.go"
1325
1325
  },
1326
1326
  {
1327
- "match": "\\]",
1327
+ "match": "]",
1328
1328
  "name": "punctuation.definition.end.bracket.square.go"
1329
1329
  },
1330
1330
  {
@@ -1349,7 +1349,7 @@
1349
1349
  "name": "punctuation.definition.begin.bracket.square.go"
1350
1350
  },
1351
1351
  {
1352
- "match": "\\]",
1352
+ "match": "]",
1353
1353
  "name": "punctuation.definition.end.bracket.square.go"
1354
1354
  },
1355
1355
  {
@@ -1357,7 +1357,7 @@
1357
1357
  "name": "punctuation.definition.begin.bracket.curly.go"
1358
1358
  },
1359
1359
  {
1360
- "match": "\\}",
1360
+ "match": "}",
1361
1361
  "name": "punctuation.definition.end.bracket.curly.go"
1362
1362
  },
1363
1363
  {
@@ -1404,7 +1404,7 @@
1404
1404
  "include": "#parameter-variable-types"
1405
1405
  },
1406
1406
  {
1407
- "match": "(?:\\w+)",
1407
+ "match": "\\w+",
1408
1408
  "name": "entity.name.type.go"
1409
1409
  }
1410
1410
  ]
@@ -1423,7 +1423,7 @@
1423
1423
  "name": "constant.numeric.decimal.go",
1424
1424
  "patterns": [
1425
1425
  {
1426
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1426
+ "match": "(?<=\\h)_(?=\\h)",
1427
1427
  "name": "punctuation.separator.constant.numeric.go"
1428
1428
  }
1429
1429
  ]
@@ -1435,7 +1435,7 @@
1435
1435
  "name": "constant.numeric.decimal.go",
1436
1436
  "patterns": [
1437
1437
  {
1438
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1438
+ "match": "(?<=\\h)_(?=\\h)",
1439
1439
  "name": "punctuation.separator.constant.numeric.go"
1440
1440
  }
1441
1441
  ]
@@ -1456,7 +1456,7 @@
1456
1456
  "name": "constant.numeric.exponent.decimal.go",
1457
1457
  "patterns": [
1458
1458
  {
1459
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1459
+ "match": "(?<=\\h)_(?=\\h)",
1460
1460
  "name": "punctuation.separator.constant.numeric.go"
1461
1461
  }
1462
1462
  ]
@@ -1471,7 +1471,7 @@
1471
1471
  "name": "constant.numeric.decimal.go",
1472
1472
  "patterns": [
1473
1473
  {
1474
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1474
+ "match": "(?<=\\h)_(?=\\h)",
1475
1475
  "name": "punctuation.separator.constant.numeric.go"
1476
1476
  }
1477
1477
  ]
@@ -1495,7 +1495,7 @@
1495
1495
  "name": "constant.numeric.exponent.decimal.go",
1496
1496
  "patterns": [
1497
1497
  {
1498
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1498
+ "match": "(?<=\\h)_(?=\\h)",
1499
1499
  "name": "punctuation.separator.constant.numeric.go"
1500
1500
  }
1501
1501
  ]
@@ -1510,7 +1510,7 @@
1510
1510
  "name": "constant.numeric.hexadecimal.go",
1511
1511
  "patterns": [
1512
1512
  {
1513
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1513
+ "match": "(?<=\\h)_(?=\\h)",
1514
1514
  "name": "punctuation.separator.constant.numeric.go"
1515
1515
  }
1516
1516
  ]
@@ -1528,7 +1528,7 @@
1528
1528
  "name": "constant.numeric.hexadecimal.go",
1529
1529
  "patterns": [
1530
1530
  {
1531
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1531
+ "match": "(?<=\\h)_(?=\\h)",
1532
1532
  "name": "punctuation.separator.constant.numeric.go"
1533
1533
  }
1534
1534
  ]
@@ -1549,7 +1549,7 @@
1549
1549
  "name": "constant.numeric.exponent.hexadecimal.go",
1550
1550
  "patterns": [
1551
1551
  {
1552
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1552
+ "match": "(?<=\\h)_(?=\\h)",
1553
1553
  "name": "punctuation.separator.constant.numeric.go"
1554
1554
  }
1555
1555
  ]
@@ -1564,7 +1564,7 @@
1564
1564
  "name": "constant.numeric.hexadecimal.go",
1565
1565
  "patterns": [
1566
1566
  {
1567
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1567
+ "match": "(?<=\\h)_(?=\\h)",
1568
1568
  "name": "punctuation.separator.constant.numeric.go"
1569
1569
  }
1570
1570
  ]
@@ -1576,7 +1576,7 @@
1576
1576
  "name": "constant.numeric.decimal.go",
1577
1577
  "patterns": [
1578
1578
  {
1579
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1579
+ "match": "(?<=\\h)_(?=\\h)",
1580
1580
  "name": "punctuation.separator.constant.numeric.go"
1581
1581
  }
1582
1582
  ]
@@ -1594,7 +1594,7 @@
1594
1594
  "name": "constant.numeric.exponent.hexadecimal.go",
1595
1595
  "patterns": [
1596
1596
  {
1597
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1597
+ "match": "(?<=\\h)_(?=\\h)",
1598
1598
  "name": "punctuation.separator.constant.numeric.go"
1599
1599
  }
1600
1600
  ]
@@ -1612,7 +1612,7 @@
1612
1612
  "name": "constant.numeric.hexadecimal.go",
1613
1613
  "patterns": [
1614
1614
  {
1615
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1615
+ "match": "(?<=\\h)_(?=\\h)",
1616
1616
  "name": "punctuation.separator.constant.numeric.go"
1617
1617
  }
1618
1618
  ]
@@ -1636,7 +1636,7 @@
1636
1636
  "name": "constant.numeric.exponent.hexadecimal.go",
1637
1637
  "patterns": [
1638
1638
  {
1639
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1639
+ "match": "(?<=\\h)_(?=\\h)",
1640
1640
  "name": "punctuation.separator.constant.numeric.go"
1641
1641
  }
1642
1642
  ]
@@ -1657,13 +1657,13 @@
1657
1657
  "name": "constant.numeric.exponent.decimal.go",
1658
1658
  "patterns": [
1659
1659
  {
1660
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1660
+ "match": "(?<=\\h)_(?=\\h)",
1661
1661
  "name": "punctuation.separator.constant.numeric.go"
1662
1662
  }
1663
1663
  ]
1664
1664
  }
1665
1665
  },
1666
- "match": "(?:(?:(?:(?:(?:\\G(?=[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(?!\\w))?(?:\\n|$)|\\G(?=[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(?!\\w))?(?:\\n|$))|\\G((?:(?<=[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(?!\\w))?(?:\\n|$))|(\\G0[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(?!\\w))?(?:\\n|$))|(\\G0[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(?!\\w))?(?:\\n|$))|(\\G0[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(?!\\w))?(?:\\n|$))"
1666
+ "match": "(?:(?:(?:\\G(?:(?:(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=\\h)_(?=\\h)))*)((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=\\h)_(?=\\h)))*)?(?:(?<!_)([eE])(\\+?)(-?)([0-9](?:[0-9]|(?<=\\h)_(?=\\h))*))?(i(?!\\w))?(?:\\n|$)|(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=\\h)_(?=\\h)))*)(?<!_)([eE])(\\+?)(-?)([0-9](?:[0-9]|(?<=\\h)_(?=\\h))*)(i(?!\\w))?(?:\\n|$))|((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=\\h)_(?=\\h)))*)(?:(?<!_)([eE])(\\+?)(-?)([0-9](?:[0-9]|(?<=\\h)_(?=\\h))*))?(i(?!\\w))?(?:\\n|$))|(\\G0[xX])_?(\\h(?:\\h|((?<=\\h)_(?=\\h)))*)((?:(?<=\\h)\\.|\\.(?=\\h)))(\\h(?:\\h|((?<=\\h)_(?=\\h)))*)?(?<!_)([pP])(\\+?)(-?)([0-9](?:[0-9]|(?<=\\h)_(?=\\h))*)(i(?!\\w))?(?:\\n|$))|(\\G0[xX])_?(\\h(?:\\h|((?<=\\h)_(?=\\h)))*)(?<!_)([pP])(\\+?)(-?)([0-9](?:[0-9]|(?<=\\h)_(?=\\h))*)(i(?!\\w))?(?:\\n|$))|(\\G0[xX])((?:(?<=\\h)\\.|\\.(?=\\h)))(\\h(?:\\h|((?<=\\h)_(?=\\h)))*)(?<!_)([pP])(\\+?)(-?)([0-9](?:[0-9]|(?<=\\h)_(?=\\h))*)(i(?!\\w))?(?:\\n|$))"
1667
1667
  },
1668
1668
  {
1669
1669
  "captures": {
@@ -1671,7 +1671,7 @@
1671
1671
  "name": "constant.numeric.decimal.go",
1672
1672
  "patterns": [
1673
1673
  {
1674
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1674
+ "match": "(?<=\\h)_(?=\\h)",
1675
1675
  "name": "punctuation.separator.constant.numeric.go"
1676
1676
  }
1677
1677
  ]
@@ -1689,7 +1689,7 @@
1689
1689
  "name": "constant.numeric.hexadecimal.go",
1690
1690
  "patterns": [
1691
1691
  {
1692
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1692
+ "match": "(?<=\\h)_(?=\\h)",
1693
1693
  "name": "punctuation.separator.constant.numeric.go"
1694
1694
  }
1695
1695
  ]
@@ -1713,7 +1713,7 @@
1713
1713
  "name": "constant.numeric.binary.go",
1714
1714
  "patterns": [
1715
1715
  {
1716
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1716
+ "match": "(?<=\\h)_(?=\\h)",
1717
1717
  "name": "punctuation.separator.constant.numeric.go"
1718
1718
  }
1719
1719
  ]
@@ -1731,16 +1731,16 @@
1731
1731
  "name": "constant.numeric.octal.go",
1732
1732
  "patterns": [
1733
1733
  {
1734
- "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
1734
+ "match": "(?<=\\h)_(?=\\h)",
1735
1735
  "name": "punctuation.separator.constant.numeric.go"
1736
1736
  }
1737
1737
  ]
1738
1738
  }
1739
1739
  },
1740
- "match": "(?:(?:(?:\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\w))?(?:\\n|$)|(\\G0[bB])_?([01](?:[01]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\w))?(?:\\n|$))|(\\G0[oO]?)_?((?:[0-7]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))+)(i(?!\\w))?(?:\\n|$))|(\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\w))?(?:\\n|$))"
1740
+ "match": "(?:(?:(?:\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=\\h)_(?=\\h)))*)(i(?!\\w))?(?:\\n|$)|(\\G0[bB])_?([01](?:[01]|((?<=\\h)_(?=\\h)))*)(i(?!\\w))?(?:\\n|$))|(\\G0[oO]?)_?((?:[0-7]|((?<=\\h)_(?=\\h)))+)(i(?!\\w))?(?:\\n|$))|(\\G0[xX])_?(\\h(?:\\h|((?<=\\h)_(?=\\h)))*)(i(?!\\w))?(?:\\n|$))"
1741
1741
  },
1742
1742
  {
1743
- "match": "(?:(?:[0-9a-zA-Z_\\.])|(?<=[eEpP])[+-])+",
1743
+ "match": "(?:[0-9a-zA-Z_.]|(?<=[eEpP])[+\\-])+",
1744
1744
  "name": "invalid.illegal.constant.numeric.go"
1745
1745
  }
1746
1746
  ]
@@ -1748,20 +1748,20 @@
1748
1748
  ]
1749
1749
  }
1750
1750
  },
1751
- "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.])|(?<=[eEpP])[+-])*"
1751
+ "match": "(?<!\\w)\\.?\\d(?:[0-9a-zA-Z_.]|(?<=[eEpP])[+\\-])*"
1752
1752
  },
1753
1753
  "operators": {
1754
1754
  "patterns": [
1755
1755
  {
1756
- "match": "((?:\\*|\\&)+)(?:(?!\\d)(?=(?:[\\w\\[\\]])|(?:\\<\\-)))",
1756
+ "match": "([*\\&]+)(?!\\d)(?=[\\w\\[\\]]|<-)",
1757
1757
  "name": "keyword.operator.address.go"
1758
1758
  },
1759
1759
  {
1760
- "match": "<\\-",
1760
+ "match": "<-",
1761
1761
  "name": "keyword.operator.channel.go"
1762
1762
  },
1763
1763
  {
1764
- "match": "\\-\\-",
1764
+ "match": "--",
1765
1765
  "name": "keyword.operator.decrement.go"
1766
1766
  },
1767
1767
  {
@@ -1777,15 +1777,15 @@
1777
1777
  "name": "keyword.operator.logical.go"
1778
1778
  },
1779
1779
  {
1780
- "match": "(=|\\+=|\\-=|\\|=|\\^=|\\*=|/=|:=|%=|<<=|>>=|&\\^=|&=)",
1780
+ "match": "(=|\\+=|-=|\\|=|\\^=|\\*=|/=|:=|%=|<<=|>>=|&\\^=|&=)",
1781
1781
  "name": "keyword.operator.assignment.go"
1782
1782
  },
1783
1783
  {
1784
- "match": "(\\+|\\-|\\*|/|%)",
1784
+ "match": "([+\\-*/%])",
1785
1785
  "name": "keyword.operator.arithmetic.go"
1786
1786
  },
1787
1787
  {
1788
- "match": "(&(?!\\^)|\\||\\^|&\\^|<<|>>|\\~)",
1788
+ "match": "(&(?!\\^)|[|\\^]|&\\^|<<|>>|~)",
1789
1789
  "name": "keyword.operator.arithmetic.bitwise.go"
1790
1790
  },
1791
1791
  {
@@ -1821,7 +1821,7 @@
1821
1821
  "name": "punctuation.definition.begin.bracket.square.go"
1822
1822
  }
1823
1823
  },
1824
- "end": "\\]",
1824
+ "end": "]",
1825
1825
  "endCaptures": {
1826
1826
  "0": {
1827
1827
  "name": "punctuation.definition.end.bracket.square.go"
@@ -1843,7 +1843,7 @@
1843
1843
  ]
1844
1844
  }
1845
1845
  },
1846
- "match": "(\\b[\\w\\.]+)(\\[(?:[^\\]]+)?\\])?(?=\\{)(?<!\\bstruct\\b|\\binterface\\b)"
1846
+ "match": "(\\b[\\w.]+)(\\[[^\\]]+{0,1}])?(?=\\{)(?<!\\b(?:struct\\b|interface\\b))"
1847
1847
  }
1848
1848
  ]
1849
1849
  },
@@ -1881,11 +1881,11 @@
1881
1881
  "name": "punctuation.definition.begin.bracket.curly.go"
1882
1882
  },
1883
1883
  {
1884
- "match": "\\}",
1884
+ "match": "}",
1885
1885
  "name": "punctuation.definition.end.bracket.curly.go"
1886
1886
  },
1887
1887
  {
1888
- "begin": "(?:([\\w\\.\\*]+)?(\\[))",
1888
+ "begin": "([\\w.*]+)?(\\[)",
1889
1889
  "beginCaptures": {
1890
1890
  "1": {
1891
1891
  "patterns": [
@@ -1893,7 +1893,7 @@
1893
1893
  "include": "#type-declarations"
1894
1894
  },
1895
1895
  {
1896
- "match": "(?:\\w+)",
1896
+ "match": "\\w+",
1897
1897
  "name": "entity.name.type.go"
1898
1898
  }
1899
1899
  ]
@@ -1902,7 +1902,7 @@
1902
1902
  "name": "punctuation.definition.begin.bracket.square.go"
1903
1903
  }
1904
1904
  },
1905
- "end": "\\]",
1905
+ "end": "]",
1906
1906
  "endCaptures": {
1907
1907
  "0": {
1908
1908
  "name": "punctuation.definition.end.bracket.square.go"
@@ -1949,7 +1949,7 @@
1949
1949
  ]
1950
1950
  }
1951
1951
  },
1952
- "match": "((?:\\b[\\w\\.]+)(?:\\:(?!\\=)))"
1952
+ "match": "(\\b[\\w.]+:(?!=))"
1953
1953
  },
1954
1954
  "raw_string_literals": {
1955
1955
  "begin": "`",
@@ -1989,7 +1989,7 @@
1989
1989
  "name": "string.quoted.rune.go",
1990
1990
  "patterns": [
1991
1991
  {
1992
- "match": "\\G(\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})|.)(?=')",
1992
+ "match": "\\G(\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x\\h{2}|u\\h{4}|U\\h{8})|.)(?=')",
1993
1993
  "name": "constant.other.rune.go"
1994
1994
  },
1995
1995
  {
@@ -2055,10 +2055,10 @@
2055
2055
  ]
2056
2056
  }
2057
2057
  },
2058
- "match": "(?:(?:^\\s*)(\\btype\\b)(?:\\s*)([\\w\\.\\*]+)(?:\\s+)(?!(?:\\=\\s*)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b)([\\s\\S]+))"
2058
+ "match": "^\\s*(\\btype\\b)\\s*([\\w.*]+)\\s+(?!(?:=\\s*)?[\\[\\]*]+{0,1}\\b(?:struct|interface)\\b)([\\s\\S]+)"
2059
2059
  },
2060
2060
  {
2061
- "begin": "(?:(?:^|\\s+)(\\btype\\b)(?:\\s*)([\\w\\.\\*]+)(?=\\[))",
2061
+ "begin": "(?:^|\\s+)(\\btype\\b)\\s*([\\w.*]+)(?=\\[)",
2062
2062
  "beginCaptures": {
2063
2063
  "1": {
2064
2064
  "name": "keyword.type.go"
@@ -2075,7 +2075,7 @@
2075
2075
  ]
2076
2076
  }
2077
2077
  },
2078
- "end": "(?:(?<=\\])((?:\\s+)(?:\\=\\s*)?(?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:(?!(?:[\\[\\]\\*]+)?(?:\\bstruct\\b|\\binterface\\b|\\bfunc\\b))[\\w\\.\\-\\*\\[\\]]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*))?)",
2078
+ "end": "(?<=])(\\s+(?:=\\s*)?(?:[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}(?![\\[\\]*]+{0,1}\\b(?:struct\\b|interface\\b|func\\b))[\\w.\\-*\\[\\]]+(?:,\\s*[\\w.\\[\\]*]+)*)?",
2079
2079
  "endCaptures": {
2080
2080
  "1": {
2081
2081
  "patterns": [
@@ -2087,7 +2087,7 @@
2087
2087
  "name": "punctuation.definition.begin.bracket.square.go"
2088
2088
  },
2089
2089
  {
2090
- "match": "\\]",
2090
+ "match": "]",
2091
2091
  "name": "punctuation.definition.end.bracket.square.go"
2092
2092
  },
2093
2093
  {
@@ -2112,7 +2112,7 @@
2112
2112
  "name": "punctuation.definition.begin.bracket.square.go"
2113
2113
  },
2114
2114
  {
2115
- "match": "\\]",
2115
+ "match": "]",
2116
2116
  "name": "punctuation.definition.end.bracket.square.go"
2117
2117
  },
2118
2118
  {
@@ -2120,7 +2120,7 @@
2120
2120
  "name": "punctuation.definition.begin.bracket.curly.go"
2121
2121
  },
2122
2122
  {
2123
- "match": "\\}",
2123
+ "match": "}",
2124
2124
  "name": "punctuation.definition.end.bracket.curly.go"
2125
2125
  },
2126
2126
  {
@@ -2153,7 +2153,7 @@
2153
2153
  ]
2154
2154
  }
2155
2155
  },
2156
- "match": "(?<=\\w\\[)((?:(?:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+\\:)|(?:\\:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+))(?:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+)?(?:\\:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+)?)(?=\\])"
2156
+ "match": "(?<=\\w\\[)((?:\\b[\\w.*+/\\-%<>|\\&]+:|:\\b[\\w.*+/\\-%<>|\\&]+)(?:\\b[\\w.*+/\\-%<>|\\&]+)?(?::\\b[\\w.*+/\\-%<>|\\&]+)?)(?=])"
2157
2157
  },
2158
2158
  "statements": {
2159
2159
  "patterns": [
@@ -2219,11 +2219,11 @@
2219
2219
  "string_escaped_char": {
2220
2220
  "patterns": [
2221
2221
  {
2222
- "match": "\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})",
2222
+ "match": "\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x\\h{2}|u\\h{4}|U\\h{8})",
2223
2223
  "name": "constant.character.escape.go"
2224
2224
  },
2225
2225
  {
2226
- "match": "\\\\[^0-7xuUabfnrtv\\'\"]",
2226
+ "match": "\\\\[^0-7xuUabfnrtv'\"]",
2227
2227
  "name": "invalid.illegal.unknown-escape.go"
2228
2228
  }
2229
2229
  ]
@@ -2258,7 +2258,7 @@
2258
2258
  "string_placeholder": {
2259
2259
  "patterns": [
2260
2260
  {
2261
- "match": "%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]",
2261
+ "match": "%(\\[\\d+])?([+#\\-0 ]{0,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+])\\*?)?(\\[\\d+])?)?))?[vT%tbcdoqxXUeEfFgGspw]",
2262
2262
  "name": "constant.other.placeholder.go"
2263
2263
  }
2264
2264
  ]
@@ -2280,12 +2280,12 @@
2280
2280
  ]
2281
2281
  }
2282
2282
  },
2283
- "match": "(?:(?:^\\s*)(\\btype\\b)(?:\\s*)([\\w\\.]+))"
2283
+ "match": "^\\s*(\\btype\\b)\\s*([\\w.]+)"
2284
2284
  },
2285
2285
  "struct_variable_types_fields_multi": {
2286
2286
  "patterns": [
2287
2287
  {
2288
- "begin": "(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\bstruct\\b)(?:\\s*)(\\{))",
2288
+ "begin": "(\\w+(?:,\\s*\\w+)*(?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\s+[\\[\\]*]+{0,1})(\\bstruct\\b)\\s*(\\{)",
2289
2289
  "beginCaptures": {
2290
2290
  "1": {
2291
2291
  "patterns": [
@@ -2305,7 +2305,7 @@
2305
2305
  "name": "punctuation.definition.begin.bracket.curly.go"
2306
2306
  }
2307
2307
  },
2308
- "end": "\\}",
2308
+ "end": "}",
2309
2309
  "endCaptures": {
2310
2310
  "0": {
2311
2311
  "name": "punctuation.definition.end.bracket.curly.go"
@@ -2321,7 +2321,7 @@
2321
2321
  ]
2322
2322
  },
2323
2323
  {
2324
- "begin": "(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\binterface\\b)(?:\\s*)(\\{))",
2324
+ "begin": "(\\w+(?:,\\s*\\w+)*(?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\s+[\\[\\]*]+{0,1})(\\binterface\\b)\\s*(\\{)",
2325
2325
  "beginCaptures": {
2326
2326
  "1": {
2327
2327
  "patterns": [
@@ -2341,7 +2341,7 @@
2341
2341
  "name": "punctuation.definition.begin.bracket.curly.go"
2342
2342
  }
2343
2343
  },
2344
- "end": "\\}",
2344
+ "end": "}",
2345
2345
  "endCaptures": {
2346
2346
  "0": {
2347
2347
  "name": "punctuation.definition.end.bracket.curly.go"
@@ -2357,7 +2357,7 @@
2357
2357
  ]
2358
2358
  },
2359
2359
  {
2360
- "begin": "(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\bfunc\\b)(?:\\s*)(\\())",
2360
+ "begin": "(\\w+(?:,\\s*\\w+)*(?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\s+[\\[\\]*]+{0,1})(\\bfunc\\b)\\s*(\\()",
2361
2361
  "beginCaptures": {
2362
2362
  "1": {
2363
2363
  "patterns": [
@@ -2407,7 +2407,7 @@
2407
2407
  "name": "punctuation.definition.begin.bracket.curly.go"
2408
2408
  }
2409
2409
  },
2410
- "end": "\\}",
2410
+ "end": "}",
2411
2411
  "endCaptures": {
2412
2412
  "0": {
2413
2413
  "name": "punctuation.definition.end.bracket.curly.go"
@@ -2435,13 +2435,13 @@
2435
2435
  "include": "#type-declarations"
2436
2436
  },
2437
2437
  {
2438
- "match": "(?:\\w+)",
2438
+ "match": "\\w+",
2439
2439
  "name": "entity.name.type.go"
2440
2440
  }
2441
2441
  ]
2442
2442
  }
2443
2443
  },
2444
- "match": "(?:(?<=\\{)\\s*((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\w\\.\\*\\[\\]]+))\\s*(?=\\}))"
2444
+ "match": "(?<=\\{)\\s*((?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[\\w.*\\[\\]]+)\\s*(?=})"
2445
2445
  },
2446
2446
  {
2447
2447
  "captures": {
@@ -2451,7 +2451,7 @@
2451
2451
  "include": "#type-declarations"
2452
2452
  },
2453
2453
  {
2454
- "match": "(?:\\w+)",
2454
+ "match": "\\w+",
2455
2455
  "name": "variable.other.property.go"
2456
2456
  }
2457
2457
  ]
@@ -2462,13 +2462,13 @@
2462
2462
  "include": "#type-declarations"
2463
2463
  },
2464
2464
  {
2465
- "match": "(?:\\w+)",
2465
+ "match": "\\w+",
2466
2466
  "name": "entity.name.type.go"
2467
2467
  }
2468
2468
  ]
2469
2469
  }
2470
2470
  },
2471
- "match": "(?:(?<=\\{)\\s*((?:(?:\\w+\\,\\s*)+)?(?:\\w+\\s+))((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\w\\.\\*\\[\\]]+))\\s*(?=\\}))"
2471
+ "match": "(?<=\\{)\\s*((?:\\w+,\\s*)+{0,1}\\w+\\s+)((?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[\\w.*\\[\\]]+)\\s*(?=})"
2472
2472
  },
2473
2473
  {
2474
2474
  "captures": {
@@ -2482,7 +2482,7 @@
2482
2482
  "include": "#type-declarations"
2483
2483
  },
2484
2484
  {
2485
- "match": "(?:\\w+)",
2485
+ "match": "\\w+",
2486
2486
  "name": "variable.other.property.go"
2487
2487
  }
2488
2488
  ]
@@ -2493,18 +2493,18 @@
2493
2493
  "include": "#type-declarations"
2494
2494
  },
2495
2495
  {
2496
- "match": "(?:\\w+)",
2496
+ "match": "\\w+",
2497
2497
  "name": "entity.name.type.go"
2498
2498
  }
2499
2499
  ]
2500
2500
  }
2501
2501
  },
2502
- "match": "(?:((?:(?:\\w+\\,\\s*)+)?(?:\\w+\\s+))?((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\S]+)(?:\\;)?))"
2502
+ "match": "((?:\\w+,\\s*)+{0,1}\\w+\\s+)?((?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\S+;?)"
2503
2503
  }
2504
2504
  ]
2505
2505
  }
2506
2506
  },
2507
- "match": "(?:(?<=\\{)((?:\\s*(?:(?:(?:\\w+\\,\\s*)+)?(?:\\w+\\s+))?(?:(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\S]+)(?:\\;)?))+)\\s*(?=\\}))"
2507
+ "match": "(?<=\\{)((?:\\s*(?:(?:\\w+,\\s*)+{0,1}\\w+\\s+)?(?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}\\S+;?)+)\\s*(?=})"
2508
2508
  },
2509
2509
  {
2510
2510
  "captures": {
@@ -2514,13 +2514,13 @@
2514
2514
  "include": "#type-declarations"
2515
2515
  },
2516
2516
  {
2517
- "match": "(?:\\w+)",
2517
+ "match": "\\w+",
2518
2518
  "name": "entity.name.type.go"
2519
2519
  }
2520
2520
  ]
2521
2521
  }
2522
2522
  },
2523
- "match": "(?:((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\w\\.\\*]+)\\s*)(?:(?=\\`|\\/|\")|$))"
2523
+ "match": "((?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[\\w.*]+\\s*)(?:(?=[`/\"])|$)"
2524
2524
  },
2525
2525
  {
2526
2526
  "captures": {
@@ -2530,7 +2530,7 @@
2530
2530
  "include": "#type-declarations"
2531
2531
  },
2532
2532
  {
2533
- "match": "(?:\\w+)",
2533
+ "match": "\\w+",
2534
2534
  "name": "variable.other.property.go"
2535
2535
  }
2536
2536
  ]
@@ -2544,13 +2544,13 @@
2544
2544
  "include": "#parameter-variable-types"
2545
2545
  },
2546
2546
  {
2547
- "match": "(?:\\w+)",
2547
+ "match": "\\w+",
2548
2548
  "name": "entity.name.type.go"
2549
2549
  }
2550
2550
  ]
2551
2551
  }
2552
2552
  },
2553
- "match": "(?:((?:(?:\\w+\\,\\s*)+)?(?:\\w+\\s+))([^\\`\"\\/]+))"
2553
+ "match": "((?:\\w+,\\s*)+{0,1}\\w+\\s+)([^`\"/]+)"
2554
2554
  }
2555
2555
  ]
2556
2556
  },
@@ -2584,7 +2584,7 @@
2584
2584
  "name": "punctuation.definition.begin.bracket.square.go"
2585
2585
  },
2586
2586
  {
2587
- "match": "\\]",
2587
+ "match": "]",
2588
2588
  "name": "punctuation.definition.end.bracket.square.go"
2589
2589
  },
2590
2590
  {
@@ -2592,7 +2592,7 @@
2592
2592
  "name": "punctuation.definition.begin.bracket.curly.go"
2593
2593
  },
2594
2594
  {
2595
- "match": "\\}",
2595
+ "match": "}",
2596
2596
  "name": "punctuation.definition.end.bracket.curly.go"
2597
2597
  },
2598
2598
  {
@@ -2602,7 +2602,7 @@
2602
2602
  ]
2603
2603
  }
2604
2604
  },
2605
- "match": "(?:(?:((?<=\\.)\\b\\w+)|(\\b\\w+))(\\[(?:(?:[\\w\\.\\*\\[\\]\\{\\}\"\\']+)(?:(?:\\,\\s*(?:[\\w\\.\\*\\[\\]\\{\\}]+))*))?\\])?(?=\\())"
2605
+ "match": "(?:((?<=\\.)\\b\\w+)|(\\b\\w+))(\\[(?:[\\w.*\\[\\]{}\"']+(?:,\\s*[\\w.*\\[\\]{}]+)*)?])?(?=\\()"
2606
2606
  },
2607
2607
  "switch_select_case_variables": {
2608
2608
  "captures": {
@@ -2627,10 +2627,10 @@
2627
2627
  ]
2628
2628
  }
2629
2629
  },
2630
- "match": "(?:(?:^\\s*(\\bcase\\b))(?:\\s+)([\\s\\S]+(?:\\:)\\s*(?:/(?:/|\\*).*)?)$)"
2630
+ "match": "^\\s*(\\bcase\\b)\\s+([\\s\\S]+:\\s*(?:/[/*].*)?)$"
2631
2631
  },
2632
2632
  "switch_types": {
2633
- "begin": "(?<=\\bswitch\\b)(?:\\s*)(?:(\\w+\\s*\\:\\=)?\\s*([\\w\\.\\*\\(\\)\\[\\]\\+/\\-\\%\\<\\>\\|\\&]+))(\\.\\(\\btype\\b\\)\\s*)(\\{)",
2633
+ "begin": "(?<=\\bswitch\\b)\\s*(\\w+\\s*:=)?\\s*([\\w.*()\\[\\]+/\\-%<>|\\&]+)(\\.\\(\\btype\\b\\)\\s*)(\\{)",
2634
2634
  "beginCaptures": {
2635
2635
  "1": {
2636
2636
  "patterns": [
@@ -2675,7 +2675,7 @@
2675
2675
  "name": "punctuation.definition.begin.bracket.curly.go"
2676
2676
  }
2677
2677
  },
2678
- "end": "(?:\\})",
2678
+ "end": "}",
2679
2679
  "endCaptures": {
2680
2680
  "0": {
2681
2681
  "name": "punctuation.definition.end.bracket.curly.go"
@@ -2709,7 +2709,7 @@
2709
2709
  ]
2710
2710
  }
2711
2711
  },
2712
- "match": "(?:^\\s*(\\bcase\\b))(?:\\s+)([\\w\\.\\,\\*\\=\\<\\>\\!\\s]+)(:)(\\s*/(?:/|\\*)\\s*.*)?$"
2712
+ "match": "^\\s*(\\bcase\\b)\\s+([\\w.,*=<>!\\s]+)(:)(\\s*/[/*]\\s*.*)?$"
2713
2713
  },
2714
2714
  {
2715
2715
  "begin": "\\bcase\\b",
@@ -2718,7 +2718,7 @@
2718
2718
  "name": "keyword.control.go"
2719
2719
  }
2720
2720
  },
2721
- "end": "\\:",
2721
+ "end": ":",
2722
2722
  "endCaptures": {
2723
2723
  "0": {
2724
2724
  "name": "punctuation.other.colon.go"
@@ -2747,7 +2747,7 @@
2747
2747
  "name": "invalid.illegal.slice.go"
2748
2748
  }
2749
2749
  },
2750
- "match": "\\[\\](\\s+)"
2750
+ "match": "\\[](\\s+)"
2751
2751
  },
2752
2752
  {
2753
2753
  "match": "\\b0[0-7]*[89]\\d*\\b",
@@ -2853,13 +2853,13 @@
2853
2853
  "include": "#type-declarations"
2854
2854
  },
2855
2855
  {
2856
- "match": "(?:\\w+)",
2856
+ "match": "\\w+",
2857
2857
  "name": "entity.name.type.go"
2858
2858
  }
2859
2859
  ]
2860
2860
  }
2861
2861
  },
2862
- "match": "(?:(?<=\\.\\()(?:(\\btype\\b)|((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?[\\w\\.\\[\\]\\*]+))(?=\\)))"
2862
+ "match": "(?<=\\.\\()(?:(\\btype\\b)|((?:\\s*[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+{0,1}[\\w.\\[\\]*]+))(?=\\))"
2863
2863
  },
2864
2864
  "var_assignment": {
2865
2865
  "patterns": [
@@ -2897,7 +2897,7 @@
2897
2897
  "name": "punctuation.definition.begin.bracket.square.go"
2898
2898
  },
2899
2899
  {
2900
- "match": "\\]",
2900
+ "match": "]",
2901
2901
  "name": "punctuation.definition.end.bracket.square.go"
2902
2902
  },
2903
2903
  {
@@ -2907,10 +2907,10 @@
2907
2907
  ]
2908
2908
  }
2909
2909
  },
2910
- "match": "(?:(?<=\\bvar\\b)(?:\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:\\=)?)?)"
2910
+ "match": "(?<=\\bvar\\b)\\s*(\\b[\\w.]+(?:,\\s*[\\w.]+)*)\\s*((?:(?:[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?![\\[\\]*]+{0,1}\\b(?:struct|func|map)\\b)(?:[\\w.\\[\\]*]+(?:,\\s*[\\w.\\[\\]*]+)*)?\\s*=?)?"
2911
2911
  },
2912
2912
  {
2913
- "begin": "(?:(?<=\\bvar\\b)(?:\\s*)(\\())",
2913
+ "begin": "(?<=\\bvar\\b)\\s*(\\()",
2914
2914
  "beginCaptures": {
2915
2915
  "1": {
2916
2916
  "name": "punctuation.definition.begin.bracket.round.go"
@@ -2957,7 +2957,7 @@
2957
2957
  "name": "punctuation.definition.begin.bracket.square.go"
2958
2958
  },
2959
2959
  {
2960
- "match": "\\]",
2960
+ "match": "]",
2961
2961
  "name": "punctuation.definition.end.bracket.square.go"
2962
2962
  },
2963
2963
  {
@@ -2967,7 +2967,7 @@
2967
2967
  ]
2968
2968
  }
2969
2969
  },
2970
- "match": "(?:(?:^\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:\\=)?)?)"
2970
+ "match": "^\\s*(\\b[\\w.]+(?:,\\s*[\\w.]+)*)\\s*((?:(?:[*\\[\\]]+{0,1}(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?![\\[\\]*]+{0,1}\\b(?:struct|func|map)\\b)(?:[\\w.\\[\\]*]+(?:,\\s*[\\w.\\[\\]*]+)*)?\\s*=?)?"
2971
2971
  },
2972
2972
  {
2973
2973
  "include": "$self"
@@ -2996,7 +2996,7 @@
2996
2996
  ]
2997
2997
  }
2998
2998
  },
2999
- "match": "\\b\\w+(?:\\,\\s*\\w+)*(?=\\s*:=)"
2999
+ "match": "\\b\\w+(?:,\\s*\\w+)*(?=\\s*:=)"
3000
3000
  },
3001
3001
  {
3002
3002
  "captures": {
@@ -3019,7 +3019,7 @@
3019
3019
  ]
3020
3020
  }
3021
3021
  },
3022
- "match": "\\b[\\w\\.\\*]+(?:\\,\\s*[\\w\\.\\*]+)*(?=\\s*=(?!=))"
3022
+ "match": "\\b[\\w.*]+(?:,\\s*[\\w.*]+)*(?=\\s*=(?!=))"
3023
3023
  }
3024
3024
  ]
3025
3025
  }