tm-grammars 1.22.18 → 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 +287 -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 +1226 -506
  234. package/package.json +1 -1
@@ -59,7 +59,7 @@
59
59
  ],
60
60
  "repository": {
61
61
  "abstract_definition": {
62
- "begin": "\\b(static\\s+)?(abstract)\\s+(member)?(\\s+\\[\\<.*\\>\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(<)?",
62
+ "begin": "\\b(static\\s+)?(abstract)\\s+(member)?(\\s+\\[<.*>])?\\s*([_[:alpha:]0-9,.`\\s]+)(<)?",
63
63
  "beginCaptures": {
64
64
  "1": {
65
65
  "name": "keyword.fsharp"
@@ -106,7 +106,7 @@
106
106
  "name": "entity.name.type.fsharp"
107
107
  }
108
108
  },
109
- "match": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}"
109
+ "match": "(\\??)([[:alpha:]0-9'`\\^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`\\^._ ]+))?"
110
110
  },
111
111
  {
112
112
  "captures": {
@@ -115,7 +115,7 @@
115
115
  }
116
116
  },
117
117
  "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted",
118
- "match": "(?!with|get|set\\b)\\s*([\\w0-9'`^._]+)"
118
+ "match": "(?!with|get|set\\b)\\s*([\\w0-9'`\\^._]+)"
119
119
  },
120
120
  {
121
121
  "include": "#keywords"
@@ -175,7 +175,7 @@
175
175
  "name": "keyword.symbol.fsharp"
176
176
  }
177
177
  },
178
- "end": "(\\|\\})",
178
+ "end": "(\\|})",
179
179
  "endCaptures": {
180
180
  "1": {
181
181
  "name": "keyword.symbol.fsharp"
@@ -188,7 +188,7 @@
188
188
  "name": "keyword.symbol.fsharp"
189
189
  }
190
190
  },
191
- "match": "[[:alpha:]0-9'`^_ ]+(:)"
191
+ "match": "[[:alpha:]0-9'`\\^_ ]+(:)"
192
192
  },
193
193
  {
194
194
  "captures": {
@@ -196,7 +196,7 @@
196
196
  "name": "entity.name.type.fsharp"
197
197
  }
198
198
  },
199
- "match": "([[:alpha:]0-9'`^_ ]+)"
199
+ "match": "([[:alpha:]0-9'`\\^_ ]+)"
200
200
  },
201
201
  {
202
202
  "include": "#anonymous_record_declaration"
@@ -209,8 +209,8 @@
209
209
  "attributes": {
210
210
  "patterns": [
211
211
  {
212
- "begin": "\\[\\<",
213
- "end": "\\>\\]|\\]",
212
+ "begin": "\\[<",
213
+ "end": ">]|]",
214
214
  "name": "support.function.attribute.fsharp",
215
215
  "patterns": [
216
216
  {
@@ -317,17 +317,17 @@
317
317
  "name": "comment.block.markdown.fsharp.end"
318
318
  },
319
319
  {
320
- "begin": "(?<![!%&+-.<=>?@^|/])///(?!/)",
320
+ "begin": "(?<![!%\\&+-.<=>?@\\^|/])///(?!/)",
321
321
  "name": "comment.line.markdown.fsharp",
322
322
  "patterns": [
323
323
  {
324
324
  "include": "text.html.markdown"
325
325
  }
326
326
  ],
327
- "while": "(?<![!%&+-.<=>?@^|/])///(?!/)"
327
+ "while": "(?<![!%\\&+-.<=>?@\\^|/])///(?!/)"
328
328
  },
329
329
  {
330
- "match": "(?<![!%&+-.<=>?@^|/])//(.*$)",
330
+ "match": "(?<![!%\\&+-.<=>?@\\^|/])//(.*$)",
331
331
  "name": "comment.line.double-slash.fsharp"
332
332
  }
333
333
  ]
@@ -354,7 +354,7 @@
354
354
  }
355
355
  },
356
356
  "comments": "SRTP syntax support",
357
- "end": "(\\))\\s*((?=,)|(?=\\=))",
357
+ "end": "(\\))\\s*((?=,)|(?==))",
358
358
  "endCaptures": {
359
359
  "1": {
360
360
  "name": "keyword.symbol.fsharp"
@@ -387,7 +387,7 @@
387
387
  "name": "keyword.symbol.fsharp"
388
388
  }
389
389
  },
390
- "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))",
390
+ "end": "(\\)\\s*(([?[:alpha:]0-9'`\\^._ ]*)))",
391
391
  "endCaptures": {
392
392
  "1": {
393
393
  "name": "keyword.symbol.fsharp"
@@ -432,10 +432,10 @@
432
432
  "name": "entity.name.type.fsharp"
433
433
  }
434
434
  },
435
- "match": "([[:alpha:]0-9'^._]+)"
435
+ "match": "([[:alpha:]0-9'\\^._]+)"
436
436
  },
437
437
  {
438
- "match": "(\\(|\\))",
438
+ "match": "([()])",
439
439
  "name": "keyword.symbol.fsharp"
440
440
  }
441
441
  ]
@@ -449,7 +449,7 @@
449
449
  "name": "entity.name.type.fsharp"
450
450
  }
451
451
  },
452
- "match": "(:)\\s*([?[:alpha:]0-9'`^._ ]+)"
452
+ "match": "(:)\\s*([?[:alpha:]0-9'`\\^._ ]+)"
453
453
  },
454
454
  {
455
455
  "captures": {
@@ -463,7 +463,7 @@
463
463
  "name": "entity.name.type.fsharp"
464
464
  }
465
465
  },
466
- "match": "(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*"
466
+ "match": "(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`\\^._ ]+)*"
467
467
  },
468
468
  {
469
469
  "begin": "(\\*)\\s*(\\()",
@@ -475,7 +475,7 @@
475
475
  "name": "keyword.symbol.fsharp"
476
476
  }
477
477
  },
478
- "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))*)",
478
+ "end": "(\\)\\s*(([?[:alpha:]0-9'`\\^._ ]+))*)",
479
479
  "endCaptures": {
480
480
  "1": {
481
481
  "name": "keyword.symbol.fsharp"
@@ -491,7 +491,7 @@
491
491
  ]
492
492
  },
493
493
  {
494
- "begin": "(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*",
494
+ "begin": "(\\*)(\\s*([?[:alpha:]0-9'`\\^._ ]+))*",
495
495
  "beginCaptures": {
496
496
  "1": {
497
497
  "name": "keyword.symbol.fsharp"
@@ -513,7 +513,7 @@
513
513
  ]
514
514
  },
515
515
  {
516
- "begin": "(<+(?![[:space:]]*\\)))",
516
+ "begin": "(<+(?!\\s*\\)))",
517
517
  "beginCaptures": {
518
518
  "1": {
519
519
  "name": "keyword.symbol.fsharp"
@@ -537,7 +537,7 @@
537
537
  "include": "#anonymous_record_declaration"
538
538
  },
539
539
  {
540
- "begin": "({)",
540
+ "begin": "(\\{)",
541
541
  "beginCaptures": {
542
542
  "1": {
543
543
  "name": "keyword.symbol.fsharp"
@@ -569,7 +569,7 @@
569
569
  "common_declaration": {
570
570
  "patterns": [
571
571
  {
572
- "begin": "\\s*(->)\\s*([[:alpha:]0-9'`^._ ]+)(<)",
572
+ "begin": "\\s*(->)\\s*([[:alpha:]0-9'`\\^._ ]+)(<)",
573
573
  "beginCaptures": {
574
574
  "1": {
575
575
  "name": "keyword.symbol.arrow.fsharp"
@@ -594,7 +594,7 @@
594
594
  "name": "entity.name.type.fsharp"
595
595
  }
596
596
  },
597
- "match": "([[:alpha:]0-9'`^._ ]+)"
597
+ "match": "([[:alpha:]0-9'`\\^._ ]+)"
598
598
  },
599
599
  {
600
600
  "include": "#keywords"
@@ -610,13 +610,13 @@
610
610
  "name": "entity.name.type.fsharp"
611
611
  }
612
612
  },
613
- "match": "\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)"
613
+ "match": "\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`\\^._]+)"
614
614
  },
615
615
  {
616
616
  "include": "#anonymous_record_declaration"
617
617
  },
618
618
  {
619
- "begin": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))",
619
+ "begin": "(\\??)([[:alpha:]0-9'`\\^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`\\^._ ]+)(<))",
620
620
  "beginCaptures": {
621
621
  "1": {
622
622
  "name": "keyword.symbol.fsharp"
@@ -647,7 +647,7 @@
647
647
  "name": "entity.name.type.fsharp"
648
648
  }
649
649
  },
650
- "match": "([[:alpha:]0-9'`^._ ]+)"
650
+ "match": "([[:alpha:]0-9'`\\^._ ]+)"
651
651
  },
652
652
  {
653
653
  "include": "#keywords"
@@ -661,7 +661,7 @@
661
661
  {
662
662
  "captures": {
663
663
  },
664
- "match": "\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)",
664
+ "match": "\\s?(#(?:if|elif|elseif|else|endif|light|nowarn))",
665
665
  "name": "keyword.control.directive.fsharp"
666
666
  }
667
667
  ]
@@ -673,11 +673,11 @@
673
673
  "name": "keyword.symbol.fsharp"
674
674
  },
675
675
  {
676
- "match": "\\b-?[0-9][0-9_]*((\\.(?!\\.)([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))",
676
+ "match": "\\b-?[0-9][0-9_]*((\\.(?!\\.)([0-9][0-9_]*([eE][+\\-]??[0-9][0-9_]*)?)?)|([eE][+\\-]??[0-9][0-9_]*))",
677
677
  "name": "constant.numeric.float.fsharp"
678
678
  },
679
679
  {
680
- "match": "\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))",
680
+ "match": "\\b(-?((0([xX])\\h[_\\h]*)|(0([oO])[0-7][0-7_]*)|(0([bB])[01][01_]*)|([0-9][0-9_]*)))",
681
681
  "name": "constant.numeric.integer.nativeint.fsharp"
682
682
  },
683
683
  {
@@ -693,7 +693,7 @@
693
693
  "definition": {
694
694
  "patterns": [
695
695
  {
696
- "begin": "\\b(let mutable|static let mutable|static let|let inline|let|and|member val|member inline|static member inline|static member val|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",
696
+ "begin": "\\b(let mutable|static let mutable|static let|let inline|let|and|member val|member inline|static member inline|static member val|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[<.*>])?\\s*(private|internal|public)?\\s+(\\[[^\\-=]*]|[_[:alpha:]]([_[:alpha:]0-9.]+)*|``[_[:alpha:]]([_[:alpha:]0-9.`\\s]+|(?<=,)\\s)*)?",
697
697
  "beginCaptures": {
698
698
  "1": {
699
699
  "name": "keyword.fsharp"
@@ -711,7 +711,7 @@
711
711
  "name": "variable.fsharp"
712
712
  }
713
713
  },
714
- "end": "\\s*((with\\b)|(=|\\n+=|(?<=\\=)))",
714
+ "end": "\\s*((with\\b)|(=|\\n+=|(?<==)))",
715
715
  "endCaptures": {
716
716
  "2": {
717
717
  "name": "keyword.fsharp"
@@ -728,7 +728,7 @@
728
728
  ]
729
729
  },
730
730
  {
731
- "begin": "\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",
731
+ "begin": "\\b(use|use!|and|and!)\\s+(\\[[^\\-=]*]|[_[:alpha:]]([_[:alpha:]0-9.]+)*|``[_[:alpha:]]([_[:alpha:]0-9.`\\s]+|(?<=,)\\s)*)?",
732
732
  "beginCaptures": {
733
733
  "1": {
734
734
  "name": "keyword.fsharp"
@@ -748,13 +748,13 @@
748
748
  ]
749
749
  },
750
750
  {
751
- "begin": "(?<=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",
751
+ "begin": "(?<=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^\\-=]*]|[_[:alpha:]]([_[:alpha:]0-9.]+)*|``[_[:alpha:]]([_[:alpha:]0-9.`\\s]+|(?<=,)\\s)*)?",
752
752
  "beginCaptures": {
753
753
  "4": {
754
754
  "name": "variable.fsharp"
755
755
  }
756
756
  },
757
- "end": "\\s*(=|\\n+=|(?<=\\=))",
757
+ "end": "\\s*(=|\\n+=|(?<==))",
758
758
  "endCaptures": {
759
759
  "1": {
760
760
  "name": "keyword.symbol.fsharp"
@@ -768,7 +768,7 @@
768
768
  ]
769
769
  },
770
770
  {
771
- "begin": "\\b(static val mutable|val mutable|val inline|val)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?",
771
+ "begin": "\\b(static val mutable|val mutable|val inline|val)(\\s+rec|mutable)?(\\s+\\[<.*>])?\\s*(private|internal|public)?\\s+(\\[[^\\-=]*]|[_[:alpha:]]([_[:alpha:]0-9,.]+)*|``[_[:alpha:]]([_[:alpha:]0-9,.`\\s]+|(?<=,)\\s)*)?",
772
772
  "beginCaptures": {
773
773
  "1": {
774
774
  "name": "keyword.fsharp"
@@ -870,7 +870,7 @@
870
870
  "name": "entity.name.type.fsharp"
871
871
  }
872
872
  },
873
- "match": "([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)"
873
+ "match": "([[:alpha:]0-9'`<>\\^._]+|``[[:alpha:]0-9' <>\\^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`<>\\^._]+|``[[:alpha:]0-9' <>\\^._]+``)"
874
874
  },
875
875
  {
876
876
  "captures": {
@@ -878,7 +878,7 @@
878
878
  "name": "entity.name.type.fsharp"
879
879
  }
880
880
  },
881
- "match": "(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)"
881
+ "match": "(``([[:alpha:]0-9'\\^._ ]+)``|[[:alpha:]0-9'`\\^._]+)"
882
882
  },
883
883
  {
884
884
  "include": "#anonymous_record_declaration"
@@ -938,7 +938,7 @@
938
938
  "name": "entity.name.type.fsharp"
939
939
  }
940
940
  },
941
- "match": "(('|\\^)[[:alpha:]0-9'._]+)"
941
+ "match": "((['\\^])[[:alpha:]0-9'._]+)"
942
942
  },
943
943
  {
944
944
  "include": "#variables"
@@ -949,7 +949,7 @@
949
949
  ]
950
950
  },
951
951
  {
952
- "match": "\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b",
952
+ "match": "\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let!|return!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b",
953
953
  "name": "keyword.fsharp"
954
954
  },
955
955
  {
@@ -965,7 +965,7 @@
965
965
  "name": "entity.name.type.fsharp"
966
966
  }
967
967
  },
968
- "match": "(('|\\^)[[:alpha:]0-9'._]+)"
968
+ "match": "((['\\^])[[:alpha:]0-9'._]+)"
969
969
  },
970
970
  {
971
971
  "begin": "(<)",
@@ -987,7 +987,7 @@
987
987
  "name": "entity.name.type.fsharp"
988
988
  }
989
989
  },
990
- "match": "(('|\\^)[[:alpha:]0-9'._]+)"
990
+ "match": "((['\\^])[[:alpha:]0-9'._]+)"
991
991
  },
992
992
  {
993
993
  "include": "#tuple_signature"
@@ -1017,7 +1017,7 @@
1017
1017
  "name": "entity.name.type.fsharp"
1018
1018
  }
1019
1019
  },
1020
- "match": "(([?[:alpha:]0-9'`^._ ]+))+"
1020
+ "match": "(([?[:alpha:]0-9'`\\^._ ]+))+"
1021
1021
  },
1022
1022
  {
1023
1023
  "include": "#tuple_signature"
@@ -1031,7 +1031,7 @@
1031
1031
  }
1032
1032
  },
1033
1033
  "comments": "Here we need the \\w modifier in order to check that the words are allowed",
1034
- "match": "(?!when|and|or\\b)\\b([\\w0-9'`^._]+)"
1034
+ "match": "(?!when|and|or\\b)\\b([\\w0-9'`\\^._]+)"
1035
1035
  },
1036
1036
  {
1037
1037
  "captures": {
@@ -1054,7 +1054,7 @@
1054
1054
  "name": "storage.modifier"
1055
1055
  },
1056
1056
  {
1057
- "match": "\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b",
1057
+ "match": "\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b",
1058
1058
  "name": "keyword.fsharp"
1059
1059
  },
1060
1060
  {
@@ -1062,11 +1062,11 @@
1062
1062
  "name": "keyword.control"
1063
1063
  },
1064
1064
  {
1065
- "match": "(\\->|\\<\\-)",
1065
+ "match": "(->|<-)",
1066
1066
  "name": "keyword.symbol.arrow.fsharp"
1067
1067
  },
1068
1068
  {
1069
- "match": "[.?]*(&&&|\\|\\|\\||\\^\\^\\^|~~~|~\\+|~\\-|<<<|>>>|\\|>|:>|:\\?>|:|\\[|\\]|\\;|<>|=|@|\\|\\||&&|&|%|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\>|\\>\\=|\\>\\>|\\<|\\<\\=|\\(|\\)|\\<\\<)[.?]*",
1069
+ "match": "[.?]*(&&&|\\|\\|\\||\\^\\^\\^|~~~|~\\+|~-|<<<|>>>|\\|>|:>|:\\?>|[:\\[\\];]|<>|[=@]|\\|\\||&&|[\\&%{}|_]|\\.\\.|[,+\\-*/\\^!>]|>=|>>|<|<=|[()]|<<)[.?]*",
1070
1070
  "name": "keyword.symbol.fsharp"
1071
1071
  }
1072
1072
  ]
@@ -1093,7 +1093,7 @@
1093
1093
  }
1094
1094
  },
1095
1095
  "comments": "SRTP syntax support",
1096
- "end": "(\\))\\s*((?=,)|(?=\\=))",
1096
+ "end": "(\\))\\s*((?=,)|(?==))",
1097
1097
  "endCaptures": {
1098
1098
  "1": {
1099
1099
  "name": "keyword.symbol.fsharp"
@@ -1148,7 +1148,7 @@
1148
1148
  "name": "keyword.fsharp"
1149
1149
  },
1150
1150
  {
1151
- "match": "(\\(|\\))",
1151
+ "match": "([()])",
1152
1152
  "name": "keyword.symbol.fsharp"
1153
1153
  },
1154
1154
  {
@@ -1166,7 +1166,7 @@
1166
1166
  "name": "entity.name.type.fsharp"
1167
1167
  }
1168
1168
  },
1169
- "match": "(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>._ ]+)){0,1}"
1169
+ "match": "(\\??)([[:alpha:]0-9'`\\^._]+|``[[:alpha:]0-9'`\\^:,._ ]+``)\\s*(:?)(\\s*([?[:alpha:]0-9'`<>._ ]+))?"
1170
1170
  },
1171
1171
  {
1172
1172
  "include": "#keywords"
@@ -1176,7 +1176,7 @@
1176
1176
  "modules": {
1177
1177
  "patterns": [
1178
1178
  {
1179
- "begin": "\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]|``][[:alpha:]0-9'_. ]*)",
1179
+ "begin": "\\b(?:(namespace global)|(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]|`][[:alpha:]0-9'_. ]*))",
1180
1180
  "beginCaptures": {
1181
1181
  "1": {
1182
1182
  "name": "keyword.fsharp"
@@ -1214,7 +1214,7 @@
1214
1214
  ]
1215
1215
  },
1216
1216
  {
1217
- "begin": "\\b(open type|open)\\s+([[:alpha:]|``][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)",
1217
+ "begin": "\\b(open(?: type|))\\s+([[:alpha:]|`][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)",
1218
1218
  "beginCaptures": {
1219
1219
  "1": {
1220
1220
  "name": "keyword.fsharp"
@@ -1235,7 +1235,7 @@
1235
1235
  "name": "entity.name.section.fsharp"
1236
1236
  }
1237
1237
  },
1238
- "match": "(\\.)([[:alpha:]][[:alpha:]0-9'_]*)",
1238
+ "match": "(\\.)(\\p{alpha}[[:alpha:]0-9'_]*)",
1239
1239
  "name": "entity.name.section.fsharp"
1240
1240
  },
1241
1241
  {
@@ -1287,13 +1287,13 @@
1287
1287
  "name": "keyword.symbol.fsharp"
1288
1288
  }
1289
1289
  },
1290
- "end": "(?<=\\})",
1290
+ "end": "(?<=})",
1291
1291
  "patterns": [
1292
1292
  {
1293
1293
  "include": "#comments"
1294
1294
  },
1295
1295
  {
1296
- "begin": "(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`<>^._]*)\\s*((?<!:):(?!:))\\s*",
1296
+ "begin": "(((mutable)\\s\\p{alpha}+)|[[:alpha:]0-9'`<>\\^._]*)\\s*((?<!:):(?!:))\\s*",
1297
1297
  "beginCaptures": {
1298
1298
  "3": {
1299
1299
  "name": "keyword.fsharp"
@@ -1302,7 +1302,7 @@
1302
1302
  "name": "keyword.symbol.fsharp"
1303
1303
  }
1304
1304
  },
1305
- "end": "$|(;|\\})",
1305
+ "end": "$|([;}])",
1306
1306
  "endCaptures": {
1307
1307
  "1": {
1308
1308
  "name": "keyword.symbol.fsharp"
@@ -1318,7 +1318,7 @@
1318
1318
  "name": "entity.name.type.fsharp"
1319
1319
  }
1320
1320
  },
1321
- "match": "([[:alpha:]0-9'`^_ ]+)"
1321
+ "match": "([[:alpha:]0-9'`\\^_ ]+)"
1322
1322
  },
1323
1323
  {
1324
1324
  "include": "#keywords"
@@ -1373,10 +1373,10 @@
1373
1373
  "name": "variable.parameter.fsharp"
1374
1374
  }
1375
1375
  },
1376
- "match": "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)"
1376
+ "match": "[[:alpha:]0-9'`\\^_ ]+(=)([[:alpha:]0-9'`\\^_ ]+)"
1377
1377
  },
1378
1378
  {
1379
- "begin": "({)",
1379
+ "begin": "(\\{)",
1380
1380
  "beginCaptures": {
1381
1381
  "1": {
1382
1382
  "name": "keyword.symbol.fsharp"
@@ -1398,7 +1398,7 @@
1398
1398
  "name": "variable.parameter.fsharp"
1399
1399
  }
1400
1400
  },
1401
- "match": "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)"
1401
+ "match": "[[:alpha:]0-9'`\\^_ ]+(=)([[:alpha:]0-9'`\\^_ ]+)"
1402
1402
  },
1403
1403
  {
1404
1404
  "include": "#record_signature"
@@ -1413,7 +1413,7 @@
1413
1413
  "records": {
1414
1414
  "patterns": [
1415
1415
  {
1416
- "begin": "\\b(type)[\\s]+(private|internal|public)?\\s*",
1416
+ "begin": "\\b(type)\\s+(private|internal|public)?\\s*",
1417
1417
  "beginCaptures": {
1418
1418
  "1": {
1419
1419
  "name": "keyword.fsharp"
@@ -1457,7 +1457,7 @@
1457
1457
  "name": "entity.name.type.fsharp"
1458
1458
  }
1459
1459
  },
1460
- "match": "([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)"
1460
+ "match": "([[:alpha:]0-9'\\^._]+|``[[:alpha:]0-9'`\\^:,._ ]+``)"
1461
1461
  },
1462
1462
  {
1463
1463
  "begin": "(<)",
@@ -1479,7 +1479,7 @@
1479
1479
  "name": "entity.name.type.fsharp"
1480
1480
  }
1481
1481
  },
1482
- "match": "(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)"
1482
+ "match": "((['\\^])``[[:alpha:]0-9`\\^:,._ ]+``|(['\\^])[[:alpha:]0-9`\\^:._]+)"
1483
1483
  },
1484
1484
  {
1485
1485
  "match": "\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b",
@@ -1519,7 +1519,7 @@
1519
1519
  }
1520
1520
  },
1521
1521
  "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted",
1522
- "match": "([\\w0-9'`^._]+)"
1522
+ "match": "([\\w0-9'`\\^._]+)"
1523
1523
  },
1524
1524
  {
1525
1525
  "include": "#keywords"
@@ -1568,7 +1568,7 @@
1568
1568
  "name": "keyword.format.specifier.fsharp"
1569
1569
  }
1570
1570
  },
1571
- "match": "(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))",
1571
+ "match": "(%0?-?(\\d+)?(([at])|(\\.\\d+)?([fFeEgGM])|([bcsdixXou])|([sbO])|(\\+?A)))",
1572
1572
  "name": "entity.name.type.format.specifier.fsharp"
1573
1573
  }
1574
1574
  ]
@@ -1636,11 +1636,11 @@
1636
1636
  "name": "punctuation.separator.string.ignore-eol.fsharp"
1637
1637
  },
1638
1638
  {
1639
- "match": "\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))",
1639
+ "match": "\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x\\h{2})|(u\\h{4})|(U00(0\\h|10)\\h{4}))",
1640
1640
  "name": "constant.character.string.escape.fsharp"
1641
1641
  },
1642
1642
  {
1643
- "match": "\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])",
1643
+ "match": "\\\\(([0-9]{1,3})|(x\\S{0,2})|(u\\S{0,4})|(U\\S{0,8})|\\S)",
1644
1644
  "name": "invalid.illegal.character.string.fsharp"
1645
1645
  },
1646
1646
  {
@@ -1724,7 +1724,7 @@
1724
1724
  "name": "keyword.symbol.fsharp"
1725
1725
  }
1726
1726
  },
1727
- "match": "(static member|member)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)"
1727
+ "match": "(static member|member)\\s*([[:alpha:]0-9'`<>\\^._]+|``[[:alpha:]0-9' <>\\^._]+``)\\s*(:)"
1728
1728
  },
1729
1729
  {
1730
1730
  "include": "#compiler_directives"
@@ -1780,7 +1780,7 @@
1780
1780
  "name": "entity.name.type.fsharp"
1781
1781
  }
1782
1782
  },
1783
- "match": "(([?[:alpha:]0-9'`^._ ]+))+"
1783
+ "match": "(([?[:alpha:]0-9'`\\^._ ]+))+"
1784
1784
  },
1785
1785
  {
1786
1786
  "begin": "(\\()",
@@ -1802,7 +1802,7 @@
1802
1802
  "name": "entity.name.type.fsharp"
1803
1803
  }
1804
1804
  },
1805
- "match": "(([?[:alpha:]0-9'`^._ ]+))+"
1805
+ "match": "(([?[:alpha:]0-9'`\\^._ ]+))+"
1806
1806
  },
1807
1807
  {
1808
1808
  "include": "#tuple_signature"
@@ -1829,7 +1829,7 @@
1829
1829
  "name": "variable.parameter.fsharp"
1830
1830
  }
1831
1831
  },
1832
- "match": "(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private|struct\\b)\\b[\\w[:alpha:]0-9'`<>^._ ]+)"
1832
+ "match": "(\\??)(``[[:alpha:]0-9'`\\^:,._ ]+``|(?!private|struct\\b)\\b[\\w[:alpha:]0-9'`<>\\^._ ]+)"
1833
1833
  }
1834
1834
  ]
1835
1835
  }