tm-grammars 1.22.3 → 1.22.5

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 (201) hide show
  1. package/NOTICE +1 -1
  2. package/README.md +165 -165
  3. package/grammars/abap.json +29 -29
  4. package/grammars/actionscript-3.json +10 -10
  5. package/grammars/ada.json +6 -6
  6. package/grammars/angular-expression.json +29 -29
  7. package/grammars/angular-let-declaration.json +1 -1
  8. package/grammars/angular-ts.json +257 -257
  9. package/grammars/apex.json +72 -72
  10. package/grammars/apl.json +1 -1
  11. package/grammars/applescript.json +5 -5
  12. package/grammars/ara.json +3 -3
  13. package/grammars/asciidoc.json +4 -4
  14. package/grammars/asm.json +23 -23
  15. package/grammars/astro.json +3 -3
  16. package/grammars/awk.json +2 -2
  17. package/grammars/ballerina.json +94 -94
  18. package/grammars/bat.json +2 -2
  19. package/grammars/beancount.json +13 -13
  20. package/grammars/berry.json +6 -6
  21. package/grammars/bibtex.json +2 -2
  22. package/grammars/bicep.json +6 -6
  23. package/grammars/blade.json +73 -73
  24. package/grammars/c.json +11 -11
  25. package/grammars/cadence.json +6 -6
  26. package/grammars/cairo.json +5 -5
  27. package/grammars/clarity.json +16 -16
  28. package/grammars/clojure.json +14 -14
  29. package/grammars/cobol.json +33 -33
  30. package/grammars/codeql.json +6 -6
  31. package/grammars/coffee.json +17 -17
  32. package/grammars/common-lisp.json +48 -48
  33. package/grammars/coq.json +1 -1
  34. package/grammars/cpp-macro.json +112 -112
  35. package/grammars/cpp.json +187 -187
  36. package/grammars/crystal.json +22 -22
  37. package/grammars/csharp.json +110 -110
  38. package/grammars/css.json +23 -23
  39. package/grammars/cue.json +33 -33
  40. package/grammars/cypher.json +1 -1
  41. package/grammars/d.json +4 -4
  42. package/grammars/dart.json +6 -6
  43. package/grammars/dax.json +2 -2
  44. package/grammars/diff.json +1 -1
  45. package/grammars/dotenv.json +2 -2
  46. package/grammars/dream-maker.json +3 -3
  47. package/grammars/edge.json +1 -1
  48. package/grammars/elixir.json +15 -15
  49. package/grammars/elm.json +30 -30
  50. package/grammars/emacs-lisp.json +3 -3
  51. package/grammars/erlang.json +2 -2
  52. package/grammars/es-tag-css.json +1 -1
  53. package/grammars/es-tag-glsl.json +1 -1
  54. package/grammars/es-tag-html.json +1 -1
  55. package/grammars/es-tag-sql.json +1 -1
  56. package/grammars/es-tag-xml.json +1 -1
  57. package/grammars/fennel.json +3 -3
  58. package/grammars/fish.json +1 -1
  59. package/grammars/fluent.json +1 -1
  60. package/grammars/fortran-free-form.json +57 -57
  61. package/grammars/fsharp.json +62 -62
  62. package/grammars/gdresource.json +6 -6
  63. package/grammars/gdscript.json +8 -8
  64. package/grammars/gdshader.json +1 -1
  65. package/grammars/genie.json +1 -1
  66. package/grammars/git-commit.json +1 -1
  67. package/grammars/gleam.json +9 -9
  68. package/grammars/glimmer-js.json +6 -6
  69. package/grammars/glimmer-ts.json +6 -6
  70. package/grammars/gnuplot.json +6 -6
  71. package/grammars/go.json +41 -41
  72. package/grammars/graphql.json +1 -1
  73. package/grammars/groovy.json +12 -12
  74. package/grammars/hack.json +19 -19
  75. package/grammars/haml.json +4 -4
  76. package/grammars/handlebars.json +2 -2
  77. package/grammars/haskell.json +17 -17
  78. package/grammars/haxe.json +17 -17
  79. package/grammars/hcl.json +24 -24
  80. package/grammars/hjson.json +7 -7
  81. package/grammars/hlsl.json +8 -8
  82. package/grammars/html.json +3 -3
  83. package/grammars/http.json +2 -2
  84. package/grammars/hy.json +8 -8
  85. package/grammars/imba.json +98 -98
  86. package/grammars/java.json +14 -14
  87. package/grammars/javascript.json +264 -264
  88. package/grammars/jinja.json +8 -8
  89. package/grammars/jison.json +7 -7
  90. package/grammars/json.json +1 -1
  91. package/grammars/json5.json +1 -1
  92. package/grammars/jsonc.json +1 -1
  93. package/grammars/jsonl.json +1 -1
  94. package/grammars/jsonnet.json +1 -1
  95. package/grammars/jssm.json +2 -2
  96. package/grammars/jsx.json +264 -264
  97. package/grammars/julia.json +22 -22
  98. package/grammars/kotlin.json +2 -2
  99. package/grammars/kusto.json +1 -1
  100. package/grammars/latex.json +9 -9
  101. package/grammars/lean.json +3 -3
  102. package/grammars/less.json +13 -13
  103. package/grammars/liquid.json +5 -5
  104. package/grammars/log.json +5 -5
  105. package/grammars/logo.json +1 -1
  106. package/grammars/lua.json +25 -25
  107. package/grammars/luau.json +19 -19
  108. package/grammars/make.json +1 -1
  109. package/grammars/markdown.json +8 -8
  110. package/grammars/marko.json +6 -6
  111. package/grammars/matlab.json +12 -12
  112. package/grammars/mdc.json +3 -3
  113. package/grammars/mdx.json +25 -25
  114. package/grammars/mermaid.json +31 -31
  115. package/grammars/mipsasm.json +3 -3
  116. package/grammars/mojo.json +46 -46
  117. package/grammars/move.json +5 -5
  118. package/grammars/nextflow.json +1 -1
  119. package/grammars/nginx.json +10 -10
  120. package/grammars/nim.json +8 -8
  121. package/grammars/nix.json +34 -34
  122. package/grammars/nushell.json +3 -3
  123. package/grammars/objective-c.json +8 -8
  124. package/grammars/objective-cpp.json +14 -14
  125. package/grammars/ocaml.json +94 -94
  126. package/grammars/perl.json +34 -34
  127. package/grammars/php.json +87 -87
  128. package/grammars/polar.json +6 -6
  129. package/grammars/postcss.json +3 -3
  130. package/grammars/powerquery.json +1 -1
  131. package/grammars/powershell.json +5 -5
  132. package/grammars/prisma.json +3 -3
  133. package/grammars/prolog.json +6 -6
  134. package/grammars/proto.json +3 -3
  135. package/grammars/pug.json +4 -4
  136. package/grammars/puppet.json +11 -11
  137. package/grammars/purescript.json +5 -5
  138. package/grammars/python.json +44 -44
  139. package/grammars/qml.json +4 -4
  140. package/grammars/r.json +10 -10
  141. package/grammars/racket.json +19 -19
  142. package/grammars/raku.json +2 -2
  143. package/grammars/razor.json +24 -24
  144. package/grammars/reg.json +2 -2
  145. package/grammars/regexp.json +3 -3
  146. package/grammars/rel.json +4 -4
  147. package/grammars/riscv.json +5 -5
  148. package/grammars/rst.json +1 -1
  149. package/grammars/ruby.json +3 -3
  150. package/grammars/rust.json +1 -1
  151. package/grammars/sas.json +2 -2
  152. package/grammars/sass.json +5 -5
  153. package/grammars/scala.json +43 -43
  154. package/grammars/scheme.json +8 -8
  155. package/grammars/scss.json +7 -7
  156. package/grammars/shaderlab.json +3 -3
  157. package/grammars/shellscript.json +24 -24
  158. package/grammars/smalltalk.json +6 -6
  159. package/grammars/solidity.json +5 -5
  160. package/grammars/soy.json +1 -1
  161. package/grammars/sparql.json +1 -1
  162. package/grammars/splunk.json +3 -3
  163. package/grammars/sql.json +2 -2
  164. package/grammars/ssh-config.json +2 -2
  165. package/grammars/stata.json +33 -33
  166. package/grammars/stylus.json +6 -6
  167. package/grammars/svelte.json +8 -8
  168. package/grammars/swift.json +27 -27
  169. package/grammars/system-verilog.json +11 -11
  170. package/grammars/systemd.json +5 -5
  171. package/grammars/talonscript.json +1 -1
  172. package/grammars/tcl.json +2 -2
  173. package/grammars/templ.json +31 -2
  174. package/grammars/terraform.json +23 -23
  175. package/grammars/tex.json +3 -3
  176. package/grammars/toml.json +5 -5
  177. package/grammars/tsx.json +264 -264
  178. package/grammars/turtle.json +1 -1
  179. package/grammars/twig.json +23 -23
  180. package/grammars/typescript.json +257 -257
  181. package/grammars/typespec.json +30 -30
  182. package/grammars/typst.json +13 -13
  183. package/grammars/v.json +16 -16
  184. package/grammars/vala.json +1 -1
  185. package/grammars/vb.json +2 -2
  186. package/grammars/verilog.json +5 -5
  187. package/grammars/vhdl.json +14 -14
  188. package/grammars/viml.json +11 -11
  189. package/grammars/vue-html.json +2 -2
  190. package/grammars/vue.json +1 -1
  191. package/grammars/vyper.json +44 -44
  192. package/grammars/wasm.json +2 -2
  193. package/grammars/wgsl.json +3 -3
  194. package/grammars/wikitext.json +9 -9
  195. package/grammars/wolfram.json +331 -331
  196. package/grammars/xml.json +1 -1
  197. package/grammars/yaml.json +3 -3
  198. package/grammars/zenscript.json +2 -2
  199. package/grammars/zig.json +3 -3
  200. package/index.js +200 -200
  201. package/package.json +1 -1
@@ -54,25 +54,25 @@
54
54
  "include": "#boolean"
55
55
  },
56
56
  {
57
- "match": "[A-Z][0-9A-Za-z]*",
57
+ "match": "[[:upper:]][[:alnum:]]*",
58
58
  "name": "entity.name.type.gleam"
59
59
  }
60
60
  ]
61
61
  },
62
62
  "decimal_number": {
63
- "match": "\\b(0*[1-9][0-9_]*|0)(\\.(0*[1-9][0-9_]*|0)?(e-?0*[1-9]\\d*)?)?\\b",
63
+ "match": "\\b(0*[1-9][0-9_]*|0)(\\.(0*[1-9][0-9_]*|0)?(e-?0*[1-9][0-9]*)?)?\\b",
64
64
  "name": "constant.numeric.decimal.gleam",
65
65
  "patterns": [
66
66
  ]
67
67
  },
68
68
  "discards": {
69
- "match": "\\b_(?:[\\w]+)?\\b",
69
+ "match": "\\b_(?:[[:word:]]+)?\\b",
70
70
  "name": "comment.unused.gleam"
71
71
  },
72
72
  "entity": {
73
73
  "patterns": [
74
74
  {
75
- "begin": "\\b([a-z][\\w]*)\\b[\\s]*\\(",
75
+ "begin": "\\b([[:lower:]][[:word:]]*)\\b[[:space:]]*\\(",
76
76
  "captures": {
77
77
  "1": {
78
78
  "name": "entity.name.function.gleam"
@@ -86,11 +86,11 @@
86
86
  ]
87
87
  },
88
88
  {
89
- "match": "\\b([a-z][\\w]*):\\s",
89
+ "match": "\\b([[:lower:]][[:word:]]*):\\s",
90
90
  "name": "variable.parameter.gleam"
91
91
  },
92
92
  {
93
- "match": "\\b([a-z][\\w]*):",
93
+ "match": "\\b([[:lower:]][[:word:]]*):",
94
94
  "name": "entity.name.namespace.gleam"
95
95
  }
96
96
  ]
@@ -108,7 +108,7 @@
108
108
  "name": "keyword.control.gleam"
109
109
  },
110
110
  {
111
- "match": "(<-|->)",
111
+ "match": "(<\\-|\\->)",
112
112
  "name": "keyword.operator.arrow.gleam"
113
113
  },
114
114
  {
@@ -144,11 +144,11 @@
144
144
  "name": "keyword.operator.other.gleam"
145
145
  },
146
146
  {
147
- "match": "(\\+\\.|-\\.|/\\.|\\*\\.)",
147
+ "match": "(\\+\\.|\\-\\.|/\\.|\\*\\.)",
148
148
  "name": "keyword.operator.arithmetic.float.gleam"
149
149
  },
150
150
  {
151
- "match": "(\\+|-|/|\\*|%)",
151
+ "match": "(\\+|\\-|/|\\*|%)",
152
152
  "name": "keyword.operator.arithmetic.int.gleam"
153
153
  },
154
154
  {
@@ -68,7 +68,7 @@
68
68
  ]
69
69
  },
70
70
  "component-tag": {
71
- "begin": "(<\\/?)(@|this.)?([a-zA-Z0-9-_$:\\.]+)\\b",
71
+ "begin": "(<\\/?)(@|this.)?([a-zA-Z0-9-_\\$:\\.]+)\\b",
72
72
  "beginCaptures": {
73
73
  "1": {
74
74
  "name": "punctuation.definition.tag"
@@ -142,7 +142,7 @@
142
142
  "name": "punctuation.definition.entity.html.ember-handlebars"
143
143
  }
144
144
  },
145
- "match": "(&)([a-zA-Z0-9]+|#\\d+|#x[0-9a-fA-F]+)(;)",
145
+ "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",
146
146
  "name": "constant.character.entity.html.ember-handlebars"
147
147
  },
148
148
  {
@@ -179,7 +179,7 @@
179
179
  ]
180
180
  },
181
181
  "glimmer-block": {
182
- "begin": "({{~?)(#|/)(([@$a-zA-Z0-9_/.-]+))",
182
+ "begin": "({{~?)(#|/)(([@\\$a-zA-Z0-9_/.-]+))",
183
183
  "captures": {
184
184
  "1": {
185
185
  "name": "punctuation.definition.tag"
@@ -709,8 +709,8 @@
709
709
  "name": "meta.js.embeddedTemplateWithArgs",
710
710
  "patterns": [
711
711
  {
712
- "begin": "(?<=<template)",
713
- "end": "(?=>)",
712
+ "begin": "(?<=\\<template)",
713
+ "end": "(?=\\>)",
714
714
  "patterns": [
715
715
  {
716
716
  "include": "#tag-like-content"
@@ -1191,7 +1191,7 @@
1191
1191
  ]
1192
1192
  },
1193
1193
  {
1194
- "begin": "(?i:(?=type\\s*=\\s*('|\"|)text/(x-handlebars|(x-(handlebars-)?|ng-)?template|html)[\\s\"'>]))",
1194
+ "begin": "(?ix:\n\t\t\t\t\t\t\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype\\s*=\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t\t('|\"|)\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext/\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tx-handlebars\n\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-(handlebars-)?|ng-)?template\n\t\t\t\t\t\t\t\t\t\t\t\t\t | html\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\\s\"'>]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)",
1195
1195
  "end": "((<))(?=/(?i:script))",
1196
1196
  "endCaptures": {
1197
1197
  "0": {
@@ -68,7 +68,7 @@
68
68
  ]
69
69
  },
70
70
  "component-tag": {
71
- "begin": "(<\\/?)(@|this.)?([a-zA-Z0-9-_$:\\.]+)\\b",
71
+ "begin": "(<\\/?)(@|this.)?([a-zA-Z0-9-_\\$:\\.]+)\\b",
72
72
  "beginCaptures": {
73
73
  "1": {
74
74
  "name": "punctuation.definition.tag"
@@ -142,7 +142,7 @@
142
142
  "name": "punctuation.definition.entity.html.ember-handlebars"
143
143
  }
144
144
  },
145
- "match": "(&)([a-zA-Z0-9]+|#\\d+|#x[0-9a-fA-F]+)(;)",
145
+ "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",
146
146
  "name": "constant.character.entity.html.ember-handlebars"
147
147
  },
148
148
  {
@@ -179,7 +179,7 @@
179
179
  ]
180
180
  },
181
181
  "glimmer-block": {
182
- "begin": "({{~?)(#|/)(([@$a-zA-Z0-9_/.-]+))",
182
+ "begin": "({{~?)(#|/)(([@\\$a-zA-Z0-9_/.-]+))",
183
183
  "captures": {
184
184
  "1": {
185
185
  "name": "punctuation.definition.tag"
@@ -709,8 +709,8 @@
709
709
  "name": "meta.js.embeddedTemplateWithArgs",
710
710
  "patterns": [
711
711
  {
712
- "begin": "(?<=<template)",
713
- "end": "(?=>)",
712
+ "begin": "(?<=\\<template)",
713
+ "end": "(?=\\>)",
714
714
  "patterns": [
715
715
  {
716
716
  "include": "#tag-like-content"
@@ -1191,7 +1191,7 @@
1191
1191
  ]
1192
1192
  },
1193
1193
  {
1194
- "begin": "(?i:(?=type\\s*=\\s*('|\"|)text/(x-handlebars|(x-(handlebars-)?|ng-)?template|html)[\\s\"'>]))",
1194
+ "begin": "(?ix:\n\t\t\t\t\t\t\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype\\s*=\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t\t('|\"|)\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext/\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tx-handlebars\n\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-(handlebars-)?|ng-)?template\n\t\t\t\t\t\t\t\t\t\t\t\t\t | html\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\\s\"'>]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)",
1195
1195
  "end": "((<))(?=/(?i:script))",
1196
1196
  "endCaptures": {
1197
1197
  "0": {
@@ -142,7 +142,7 @@
142
142
  ]
143
143
  },
144
144
  "ColumnIndexLiteral": {
145
- "match": "([$]\\d+)\\b",
145
+ "match": "([$][0-9]+)\\b",
146
146
  "name": "support.constant.columnindex.gnuplot"
147
147
  },
148
148
  "Command": {
@@ -610,7 +610,7 @@
610
610
  "name": "invalid.illegal.variable.gnuplot"
611
611
  },
612
612
  "InvalidWord": {
613
- "match": "([^;#\\\\\\s]+)",
613
+ "match": "([^;#\\\\[:space:]]+)",
614
614
  "name": "invalid.illegal.gnuplot"
615
615
  },
616
616
  "LineComment": {
@@ -668,11 +668,11 @@
668
668
  "NumberLiteral": {
669
669
  "patterns": [
670
670
  {
671
- "match": "(?:(((\\b\\d+)|(?<!\\d)))([.]\\d+)([Ee][+-]?\\d+)?)(cm|in)?\\b",
671
+ "match": "(?:(((\\b[0-9]+)|(?<!\\d)))([.][0-9]+)([Ee][+-]?[0-9]+)?)(cm|in)?\\b",
672
672
  "name": "constant.numeric.float.gnuplot"
673
673
  },
674
674
  {
675
- "match": "(?:(\\b\\d+)((([Ee][+-]?\\d+\\b))|([.]([Ee][+-]?\\d+\\b)?)))(cm\\b|in\\b)?",
675
+ "match": "(?:(\\b[0-9]+)((([Ee][+-]?[0-9]+\\b))|([.]([Ee][+-]?[0-9]+\\b)?)))(cm\\b|in\\b)?",
676
676
  "name": "constant.numeric.float.gnuplot"
677
677
  },
678
678
  {
@@ -688,11 +688,11 @@
688
688
  "name": "constant.numeric.oct.gnuplot"
689
689
  },
690
690
  {
691
- "match": "\\b(0\\d+)(cm|in)?\\b",
691
+ "match": "\\b(0[0-9]+)(cm|in)?\\b",
692
692
  "name": "invalid.illegal.oct.gnuplot"
693
693
  },
694
694
  {
695
- "match": "\\b(\\d+)(cm|in)?\\b",
695
+ "match": "\\b([0-9]+)(cm|in)?\\b",
696
696
  "name": "constant.numeric.dec.gnuplot"
697
697
  }
698
698
  ]
package/grammars/go.json CHANGED
@@ -30,7 +30,7 @@
30
30
  }
31
31
  },
32
32
  "comment": "After control variables, to not highlight as a struct/interface (before formatting with gofmt)",
33
- "match": "(?:(?<=\\brange\\b|\\bswitch\\b|\\;|\\bif\\b|\\bfor\\b|<|>|<=|>=|==|!=|\\w(?:\\+|/|-|\\*|\\%)|\\w(?:\\+|/|-|\\*|\\%)=|\\|\\||\\&\\&)(?:\\s*)((?![\\[\\]]+)[0-9A-Za-z\\-_!\\.\\[\\]<>=\\*/+\\%:]+)(?:\\s*)(?=\\{))"
33
+ "match": "(?:(?<=\\brange\\b|\\bswitch\\b|\\;|\\bif\\b|\\bfor\\b|\\<|\\>|\\<\\=|\\>\\=|\\=\\=|\\!\\=|\\w(?:\\+|/|\\-|\\*|\\%)|\\w(?:\\+|/|\\-|\\*|\\%)\\=|\\|\\||\\&\\&)(?:\\s*)((?![\\[\\]]+)[[:alnum:]\\-\\_\\!\\.\\[\\]\\<\\>\\=\\*/\\+\\%\\:]+)(?:\\s*)(?=\\{))"
34
34
  },
35
35
  "brackets": {
36
36
  "patterns": [
@@ -140,7 +140,7 @@
140
140
  ]
141
141
  },
142
142
  {
143
- "begin": "(?:(\\bmake\\b)(?:(\\()((?:(?:(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?:[\\[\\]\\*]+)?(?:(?!\\bmap\\b)(?:[\\w\\.]+))?(\\[(?:(?:[\\S]+)(?:(?:\\,\\s*(?:[\\S]+))*))?\\])?(?:\\,)?)?))",
143
+ "begin": "(?:(\\bmake\\b)(?:(\\()((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?:[\\[\\]\\*]+)?(?:(?!\\bmap\\b)(?:[\\w\\.]+))?(\\[(?:(?:[\\S]+)(?:(?:\\,\\s*(?:[\\S]+))*))?\\])?(?:\\,)?)?))",
144
144
  "beginCaptures": {
145
145
  "1": {
146
146
  "name": "entity.name.function.support.builtin.go"
@@ -255,7 +255,7 @@
255
255
  }
256
256
  },
257
257
  "comment": "single assignment",
258
- "match": "(?:(?<=\\bconst\\b)(?:\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:=)?)?)"
258
+ "match": "(?:(?<=\\bconst\\b)(?:\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:\\=)?)?)"
259
259
  },
260
260
  {
261
261
  "begin": "(?:(?<=\\bconst\\b)(?:\\s*)(\\())",
@@ -316,7 +316,7 @@
316
316
  ]
317
317
  }
318
318
  },
319
- "match": "(?:(?:^\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:=)?)?)"
319
+ "match": "(?:(?:^\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:\\=)?)?)"
320
320
  },
321
321
  {
322
322
  "include": "$self"
@@ -410,7 +410,7 @@
410
410
  "match": "(?:(?<=^\\bfield\\b)\\s+([\\w\\*\\.]+)\\s+([\\s\\S]+))"
411
411
  },
412
412
  "function_declaration": {
413
- "begin": "(?:^(\\bfunc\\b)(?:\\s*(\\([^)]+\\)\\s*)?(?:(\\w+)(?=\\(|\\[))?))",
413
+ "begin": "(?:^(\\bfunc\\b)(?:\\s*(\\([^\\)]+\\)\\s*)?(?:(\\w+)(?=\\(|\\[))?))",
414
414
  "beginCaptures": {
415
415
  "1": {
416
416
  "name": "keyword.function.go"
@@ -474,7 +474,7 @@
474
474
  }
475
475
  },
476
476
  "comment": "Function declarations",
477
- "end": "(?:(?<=\\))\\s*((?:(?:(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?!(?:[\\[\\]\\*]+)?(?:\\bstruct\\b|\\binterface\\b))[\\w\\.\\-\\*\\[\\]]+)?\\s*(?=\\{))",
477
+ "end": "(?:(?<=\\))\\s*((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?!(?:[\\[\\]\\*]+)?(?:\\bstruct\\b|\\binterface\\b))[\\w\\.\\-\\*\\[\\]]+)?\\s*(?=\\{))",
478
478
  "endCaptures": {
479
479
  "1": {
480
480
  "patterns": [
@@ -559,7 +559,7 @@
559
559
  }
560
560
  },
561
561
  "comment": "single function as a type returned type(s) declaration",
562
- "match": "(?:(?<=\\))(?:\\s*)((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?[\\w\\*\\.\\[\\]<>\\-]+(?:\\s*)(?:\\/(?:\\/|\\*).*)?)$)"
562
+ "match": "(?:(?<=\\))(?:\\s*)((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?[\\w\\*\\.\\[\\]\\<\\>\\-]+(?:\\s*)(?:\\/(?:\\/|\\*).*)?)$)"
563
563
  },
564
564
  {
565
565
  "include": "$self"
@@ -593,7 +593,7 @@
593
593
  }
594
594
  },
595
595
  "comment": "struct/interface type declaration",
596
- "match": "((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)\\s+(?=(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b\\s*\\{)"
596
+ "match": "((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)\\s+(?=(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b\\s*\\{)"
597
597
  },
598
598
  {
599
599
  "captures": {
@@ -641,7 +641,7 @@
641
641
  }
642
642
  },
643
643
  "comment": "multiple params and types | multiple params one type | one param one type",
644
- "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\\.\\*]+)?)+)))"
644
+ "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\\.\\*]+)?)+)))"
645
645
  },
646
646
  {
647
647
  "begin": "(?:([\\w\\.\\*]+)?(\\[))",
@@ -722,7 +722,7 @@
722
722
  }
723
723
  },
724
724
  "comment": "Functions",
725
- "end": "(?:(?<=\\))(\\s*(?:(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?((?:(?:\\s*(?:(?:[\\[\\]\\*]+)?[\\w\\.\\*]+)?(?:(?:\\[(?:(?:[\\w\\.\\*]+)?(?:\\[(?:[^\\]]+)?\\])?(?:\\,\\s+)?)+\\])|(?:\\((?:[^)]+)?\\)))?(?:[\\w\\.\\*]+)?)(?:\\s*)(?=\\{))|(?:\\s*(?:(?:(?:[\\[\\]\\*]+)?(?!\\bfunc\\b)(?:[\\w\\.\\*]+)(?:\\[(?:(?:[\\w\\.\\*]+)?(?:\\[(?:[^\\]]+)?\\])?(?:\\,\\s+)?)+\\])?(?:[\\w\\.\\*]+)?)|(?:\\((?:[^)]+)?\\)))))?)",
725
+ "end": "(?:(?<=\\))(\\s*(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?((?:(?:\\s*(?:(?:[\\[\\]\\*]+)?[\\w\\.\\*]+)?(?:(?:\\[(?:(?:[\\w\\.\\*]+)?(?:\\[(?:[^\\]]+)?\\])?(?:\\,\\s+)?)+\\])|(?:\\((?:[^\\)]+)?\\)))?(?:[\\w\\.\\*]+)?)(?:\\s*)(?=\\{))|(?:\\s*(?:(?:(?:[\\[\\]\\*]+)?(?!\\bfunc\\b)(?:[\\w\\.\\*]+)(?:\\[(?:(?:[\\w\\.\\*]+)?(?:\\[(?:[^\\]]+)?\\])?(?:\\,\\s+)?)+\\])?(?:[\\w\\.\\*]+)?)|(?:\\((?:[^\\)]+)?\\)))))?)",
726
726
  "endCaptures": {
727
727
  "1": {
728
728
  "patterns": [
@@ -837,7 +837,7 @@
837
837
  }
838
838
  },
839
839
  "comment": "struct/interface type declaration",
840
- "match": "((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)\\s+(?=(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b\\s*\\{)"
840
+ "match": "((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)\\s+(?=(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b\\s*\\{)"
841
841
  },
842
842
  {
843
843
  "captures": {
@@ -896,7 +896,7 @@
896
896
  }
897
897
  },
898
898
  "comment": "multiple params and types | multiple types one param",
899
- "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\\.\\*]+)?)+)))"
899
+ "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\\.\\*]+)?)+)))"
900
900
  },
901
901
  {
902
902
  "begin": "(?:([\\w\\.\\*]+)?(\\[))",
@@ -1346,7 +1346,7 @@
1346
1346
  }
1347
1347
  },
1348
1348
  "comment": "map types",
1349
- "end": "(?:(\\])((?:(?:(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?!(?:[\\[\\]\\*]+)?\\b(?:func|struct|map)\\b)(?:[\\*\\[\\]]+)?(?:[\\w\\.]+)(?:\\[(?:(?:[\\w\\.\\*\\[\\]{}]+)(?:(?:\\,\\s*(?:[\\w\\.\\*\\[\\]{}]+))*))?\\])?)?)",
1349
+ "end": "(?:(\\])((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?!(?:[\\[\\]\\*]+)?\\b(?:func|struct|map)\\b)(?:[\\*\\[\\]]+)?(?:[\\w\\.]+)(?:\\[(?:(?:[\\w\\.\\*\\[\\]\\{\\}]+)(?:(?:\\,\\s*(?:[\\w\\.\\*\\[\\]\\{\\}]+))*))?\\])?)?)",
1350
1350
  "endCaptures": {
1351
1351
  "1": {
1352
1352
  "name": "punctuation.definition.end.bracket.square.go"
@@ -1701,7 +1701,7 @@
1701
1701
  ]
1702
1702
  }
1703
1703
  },
1704
- "match": "(?:(?:(?:(?:(?:\\G(?=[0-9.])(?!0[xXbBoO])(\\d(?:\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=\\d)\\.|\\.(?=\\d)))(\\d(?:\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?<!_)([eE])(\\+?)(-?)((?:\\d(?:\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\w))?(?:\\n|$)|\\G(?=[0-9.])(?!0[xXbBoO])(\\d(?:\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([eE])(\\+?)(-?)((?:\\d(?:\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))|\\G((?:(?<=\\d)\\.|\\.(?=\\d)))(\\d(?:\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?:(?<!_)([eE])(\\+?)(-?)((?:\\d(?:\\d|(?:(?<=[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])(\\+?)(-?)((?:\\d(?:\\d|(?:(?<=[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])(\\+?)(-?)((?:\\d(?:\\d|(?:(?<=[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])(\\+?)(-?)((?:\\d(?:\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))"
1704
+ "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|$))"
1705
1705
  },
1706
1706
  {
1707
1707
  "captures": {
@@ -1775,7 +1775,7 @@
1775
1775
  ]
1776
1776
  }
1777
1777
  },
1778
- "match": "(?:(?:(?:\\G(?=[0-9.])(?!0[xXbBoO])(\\d(?:\\d|((?<=[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|$))"
1778
+ "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|$))"
1779
1779
  },
1780
1780
  {
1781
1781
  "match": "(?:(?:[0-9a-zA-Z_\\.])|(?<=[eEpP])[+-])+",
@@ -1792,15 +1792,15 @@
1792
1792
  "comment": "Note that the order here is very important!",
1793
1793
  "patterns": [
1794
1794
  {
1795
- "match": "((?:\\*|\\&)+)(?:(?!\\d)(?=(?:[\\w\\[\\]])|(?:<-)))",
1795
+ "match": "((?:\\*|\\&)+)(?:(?!\\d)(?=(?:[\\w\\[\\]])|(?:\\<\\-)))",
1796
1796
  "name": "keyword.operator.address.go"
1797
1797
  },
1798
1798
  {
1799
- "match": "<-",
1799
+ "match": "<\\-",
1800
1800
  "name": "keyword.operator.channel.go"
1801
1801
  },
1802
1802
  {
1803
- "match": "--",
1803
+ "match": "\\-\\-",
1804
1804
  "name": "keyword.operator.decrement.go"
1805
1805
  },
1806
1806
  {
@@ -1816,11 +1816,11 @@
1816
1816
  "name": "keyword.operator.logical.go"
1817
1817
  },
1818
1818
  {
1819
- "match": "(=|\\+=|-=|\\|=|\\^=|\\*=|/=|:=|%=|<<=|>>=|&\\^=|&=)",
1819
+ "match": "(=|\\+=|\\-=|\\|=|\\^=|\\*=|/=|:=|%=|<<=|>>=|&\\^=|&=)",
1820
1820
  "name": "keyword.operator.assignment.go"
1821
1821
  },
1822
1822
  {
1823
- "match": "(\\+|-|\\*|/|%)",
1823
+ "match": "(\\+|\\-|\\*|/|%)",
1824
1824
  "name": "keyword.operator.arithmetic.go"
1825
1825
  },
1826
1826
  {
@@ -1994,7 +1994,7 @@
1994
1994
  }
1995
1995
  },
1996
1996
  "comment": "Property variables in struct",
1997
- "match": "((?:\\b[\\w\\.]+)(?::(?!=)))"
1997
+ "match": "((?:\\b[\\w\\.]+)(?:\\:(?!\\=)))"
1998
1998
  },
1999
1999
  "raw_string_literals": {
2000
2000
  "begin": "`",
@@ -2102,7 +2102,7 @@
2102
2102
  }
2103
2103
  },
2104
2104
  "comment": "single type declaration",
2105
- "match": "(?:(?:^\\s*)(\\btype\\b)(?:\\s*)([\\w\\.\\*]+)(?:\\s+)(?!(?:=\\s*)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b)([\\s\\S]+))"
2105
+ "match": "(?:(?:^\\s*)(\\btype\\b)(?:\\s*)([\\w\\.\\*]+)(?:\\s+)(?!(?:\\=\\s*)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b)([\\s\\S]+))"
2106
2106
  },
2107
2107
  {
2108
2108
  "begin": "(?:(?:^|\\s+)(\\btype\\b)(?:\\s*)([\\w\\.\\*]+)(?=\\[))",
@@ -2123,7 +2123,7 @@
2123
2123
  }
2124
2124
  },
2125
2125
  "comment": "single type declaration with generics",
2126
- "end": "(?:(?<=\\])((?:\\s+)(?:=\\s*)?(?:(?:(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:(?!(?:[\\[\\]\\*]+)?(?:\\bstruct\\b|\\binterface\\b|\\bfunc\\b))[\\w\\.\\-\\*\\[\\]]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*))?)",
2126
+ "end": "(?:(?<=\\])((?:\\s+)(?:\\=\\s*)?(?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:(?!(?:[\\[\\]\\*]+)?(?:\\bstruct\\b|\\binterface\\b|\\bfunc\\b))[\\w\\.\\-\\*\\[\\]]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*))?)",
2127
2127
  "endCaptures": {
2128
2128
  "1": {
2129
2129
  "patterns": [
@@ -2202,7 +2202,7 @@
2202
2202
  }
2203
2203
  },
2204
2204
  "comment": "slice index and capacity variables, to not scope them as property variables",
2205
- "match": "(?<=\\w\\[)((?:(?:\\b[\\w\\.\\*+/\\-\\%<>\\|\\&]+:)|(?::\\b[\\w\\.\\*+/\\-\\%<>\\|\\&]+))(?:\\b[\\w\\.\\*+/\\-\\%<>\\|\\&]+)?(?::\\b[\\w\\.\\*+/\\-\\%<>\\|\\&]+)?)(?=\\])"
2205
+ "match": "(?<=\\w\\[)((?:(?:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+\\:)|(?:\\:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+))(?:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+)?(?:\\:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+)?)(?=\\])"
2206
2206
  },
2207
2207
  "statements": {
2208
2208
  "patterns": [
@@ -2308,7 +2308,7 @@
2308
2308
  "string_placeholder": {
2309
2309
  "patterns": [
2310
2310
  {
2311
- "match": "%(\\[\\d+\\])?([+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]",
2311
+ "match": "%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]",
2312
2312
  "name": "constant.other.placeholder.go"
2313
2313
  }
2314
2314
  ]
@@ -2337,7 +2337,7 @@
2337
2337
  "comment": "struct variable and type fields with multi lines",
2338
2338
  "patterns": [
2339
2339
  {
2340
- "begin": "(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\bstruct\\b)(?:\\s*)(\\{))",
2340
+ "begin": "(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\bstruct\\b)(?:\\s*)(\\{))",
2341
2341
  "beginCaptures": {
2342
2342
  "1": {
2343
2343
  "patterns": [
@@ -2374,7 +2374,7 @@
2374
2374
  ]
2375
2375
  },
2376
2376
  {
2377
- "begin": "(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\binterface\\b)(?:\\s*)(\\{))",
2377
+ "begin": "(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\binterface\\b)(?:\\s*)(\\{))",
2378
2378
  "beginCaptures": {
2379
2379
  "1": {
2380
2380
  "patterns": [
@@ -2411,7 +2411,7 @@
2411
2411
  ]
2412
2412
  },
2413
2413
  {
2414
- "begin": "(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\bfunc\\b)(?:\\s*)(\\())",
2414
+ "begin": "(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\bfunc\\b)(?:\\s*)(\\())",
2415
2415
  "beginCaptures": {
2416
2416
  "1": {
2417
2417
  "patterns": [
@@ -2499,7 +2499,7 @@
2499
2499
  }
2500
2500
  },
2501
2501
  "comment": "one line - single type",
2502
- "match": "(?:(?<=\\{)\\s*((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:[\\w\\.\\*\\[\\]]+))\\s*(?=\\}))"
2502
+ "match": "(?:(?<=\\{)\\s*((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\w\\.\\*\\[\\]]+))\\s*(?=\\}))"
2503
2503
  },
2504
2504
  {
2505
2505
  "captures": {
@@ -2527,7 +2527,7 @@
2527
2527
  }
2528
2528
  },
2529
2529
  "comment": "one line - property variables and types",
2530
- "match": "(?:(?<=\\{)\\s*((?:(?:\\w+\\,\\s*)+)?(?:\\w+\\s+))((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:[\\w\\.\\*\\[\\]]+))\\s*(?=\\}))"
2530
+ "match": "(?:(?<=\\{)\\s*((?:(?:\\w+\\,\\s*)+)?(?:\\w+\\s+))((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\w\\.\\*\\[\\]]+))\\s*(?=\\}))"
2531
2531
  },
2532
2532
  {
2533
2533
  "captures": {
@@ -2558,13 +2558,13 @@
2558
2558
  ]
2559
2559
  }
2560
2560
  },
2561
- "match": "(?:((?:(?:\\w+\\,\\s*)+)?(?:\\w+\\s+))?((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:[\\S]+)(?:\\;)?))"
2561
+ "match": "(?:((?:(?:\\w+\\,\\s*)+)?(?:\\w+\\s+))?((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\S]+)(?:\\;)?))"
2562
2562
  }
2563
2563
  ]
2564
2564
  }
2565
2565
  },
2566
2566
  "comment": "one line with semicolon(;) without formatting gofmt - single type | property variables and types",
2567
- "match": "(?:(?<=\\{)((?:\\s*(?:(?:(?:\\w+\\,\\s*)+)?(?:\\w+\\s+))?(?:(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:[\\S]+)(?:\\;)?))+)\\s*(?=\\}))"
2567
+ "match": "(?:(?<=\\{)((?:\\s*(?:(?:(?:\\w+\\,\\s*)+)?(?:\\w+\\s+))?(?:(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\S]+)(?:\\;)?))+)\\s*(?=\\}))"
2568
2568
  },
2569
2569
  {
2570
2570
  "captures": {
@@ -2581,7 +2581,7 @@
2581
2581
  }
2582
2582
  },
2583
2583
  "comment": "one type only",
2584
- "match": "(?:((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?(?:[\\w\\.\\*]+)\\s*)(?:(?=\\`|\\/|\")|$))"
2584
+ "match": "(?:((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\w\\.\\*]+)\\s*)(?:(?=\\`|\\/|\")|$))"
2585
2585
  },
2586
2586
  {
2587
2587
  "captures": {
@@ -2665,7 +2665,7 @@
2665
2665
  }
2666
2666
  },
2667
2667
  "comment": "Support Functions",
2668
- "match": "(?:(?:((?<=\\.)\\b\\w+)|(\\b\\w+))(\\[(?:(?:[\\w\\.\\*\\[\\]{}\"\\']+)(?:(?:\\,\\s*(?:[\\w\\.\\*\\[\\]{}]+))*))?\\])?(?=\\())"
2668
+ "match": "(?:(?:((?<=\\.)\\b\\w+)|(\\b\\w+))(\\[(?:(?:[\\w\\.\\*\\[\\]\\{\\}\"\\']+)(?:(?:\\,\\s*(?:[\\w\\.\\*\\[\\]\\{\\}]+))*))?\\])?(?=\\())"
2669
2669
  },
2670
2670
  "switch_select_case_variables": {
2671
2671
  "captures": {
@@ -2691,10 +2691,10 @@
2691
2691
  }
2692
2692
  },
2693
2693
  "comment": "variables after case control keyword in switch/select expression, to not scope them as property variables",
2694
- "match": "(?:(?:^\\s*(\\bcase\\b))(?:\\s+)([\\s\\S]+(?::)\\s*(?:/(?:/|\\*).*)?)$)"
2694
+ "match": "(?:(?:^\\s*(\\bcase\\b))(?:\\s+)([\\s\\S]+(?:\\:)\\s*(?:/(?:/|\\*).*)?)$)"
2695
2695
  },
2696
2696
  "switch_types": {
2697
- "begin": "(?<=\\bswitch\\b)(?:\\s*)(?:(\\w+\\s*:=)?\\s*([\\w\\.\\*()\\[\\]+/\\-\\%<>\\|\\&]+))(\\.\\(\\btype\\b\\)\\s*)(\\{)",
2697
+ "begin": "(?<=\\bswitch\\b)(?:\\s*)(?:(\\w+\\s*\\:\\=)?\\s*([\\w\\.\\*\\(\\)\\[\\]\\+/\\-\\%\\<\\>\\|\\&]+))(\\.\\(\\btype\\b\\)\\s*)(\\{)",
2698
2698
  "beginCaptures": {
2699
2699
  "1": {
2700
2700
  "patterns": [
@@ -2775,7 +2775,7 @@
2775
2775
  }
2776
2776
  },
2777
2777
  "comment": "types after case keyword with single line",
2778
- "match": "(?:^\\s*(\\bcase\\b))(?:\\s+)([\\w\\.\\,\\*=<>!\\s]+)(:)(\\s*/(?:/|\\*)\\s*.*)?$"
2778
+ "match": "(?:^\\s*(\\bcase\\b))(?:\\s+)([\\w\\.\\,\\*\\=\\<\\>\\!\\s]+)(:)(\\s*/(?:/|\\*)\\s*.*)?$"
2779
2779
  },
2780
2780
  {
2781
2781
  "begin": "\\bcase\\b",
@@ -2785,7 +2785,7 @@
2785
2785
  }
2786
2786
  },
2787
2787
  "comment": "types after case keyword with multi lines",
2788
- "end": ":",
2788
+ "end": "\\:",
2789
2789
  "endCaptures": {
2790
2790
  "0": {
2791
2791
  "name": "punctuation.other.colon.go"
@@ -2932,7 +2932,7 @@
2932
2932
  }
2933
2933
  },
2934
2934
  "comment": "struct/interface types in-line (type assertion) | switch type keyword",
2935
- "match": "(?:(?<=\\.\\()(?:(\\btype\\b)|((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+)?[\\w\\.\\[\\]\\*]+))(?=\\)))"
2935
+ "match": "(?:(?<=\\.\\()(?:(\\btype\\b)|((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?[\\w\\.\\[\\]\\*]+))(?=\\)))"
2936
2936
  },
2937
2937
  "var_assignment": {
2938
2938
  "comment": "variable assignment with var keyword",
@@ -2982,7 +2982,7 @@
2982
2982
  }
2983
2983
  },
2984
2984
  "comment": "single assignment",
2985
- "match": "(?:(?<=\\bvar\\b)(?:\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:=)?)?)"
2985
+ "match": "(?:(?<=\\bvar\\b)(?:\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:\\=)?)?)"
2986
2986
  },
2987
2987
  {
2988
2988
  "begin": "(?:(?<=\\bvar\\b)(?:\\s*)(\\())",
@@ -3043,7 +3043,7 @@
3043
3043
  ]
3044
3044
  }
3045
3045
  },
3046
- "match": "(?:(?:^\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:<-\\s*)?\\bchan\\b(?:\\s*<-)?\\s*)+(?:\\([^)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:=)?)?)"
3046
+ "match": "(?:(?:^\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:\\=)?)?)"
3047
3047
  },
3048
3048
  {
3049
3049
  "include": "$self"
@@ -402,7 +402,7 @@
402
402
  "name": "constant.numeric.float.graphql"
403
403
  }
404
404
  },
405
- "match": "\\s*(-?(0|[1-9]\\d*)(\\.\\d+)?((e|E)(\\+|-)?\\d+)?)"
405
+ "match": "\\s*(-?(0|[1-9][0-9]*)(\\.[0-9]+)?((e|E)(\\+|-)?[0-9]+)?)"
406
406
  },
407
407
  "graphql-fragment-definition": {
408
408
  "begin": "\\s*(?:(\\bfragment\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)?\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)))",