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
@@ -41,8 +41,8 @@
41
41
  "name": "keyword.operator.assignment.python"
42
42
  },
43
43
  "backticks": {
44
- "begin": "\\`",
45
- "end": "(?:\\`|(?<!\\\\)(\\n))",
44
+ "begin": "`",
45
+ "end": "(?:`|(?<!\\\\)(\\n))",
46
46
  "name": "string.quoted.single.python"
47
47
  },
48
48
  "builtin-callables": {
@@ -115,7 +115,7 @@
115
115
  "class-declaration": {
116
116
  "patterns": [
117
117
  {
118
- "begin": "\\s*(class|struct|trait)\\s+(?=[[:alpha:]_]\\w*\\s*(:|\\())",
118
+ "begin": "\\s*(class|struct|trait)\\s+(?=[[:alpha:]_]\\w*\\s*([:(]))",
119
119
  "beginCaptures": {
120
120
  "1": {
121
121
  "name": "storage.type.class.python"
@@ -155,7 +155,7 @@
155
155
  "name": "meta.class.inheritance.python",
156
156
  "patterns": [
157
157
  {
158
- "match": "(\\*\\*|\\*)",
158
+ "match": "(\\*(?:\\*|))",
159
159
  "name": "keyword.operator.unpacking.arguments.python"
160
160
  },
161
161
  {
@@ -221,12 +221,12 @@
221
221
  "name": "keyword.codetag.notation.python"
222
222
  }
223
223
  },
224
- "match": "(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)"
224
+ "match": "\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b"
225
225
  },
226
226
  "comments": {
227
227
  "patterns": [
228
228
  {
229
- "begin": "(?:\\#\\s*(type:)\\s*+(?!$|\\#))",
229
+ "begin": "#\\s*(type:)\\s*+(?!$|#)",
230
230
  "beginCaptures": {
231
231
  "0": {
232
232
  "name": "meta.typehint.comment.python"
@@ -236,11 +236,11 @@
236
236
  }
237
237
  },
238
238
  "contentName": "meta.typehint.comment.python",
239
- "end": "(?:$|(?=\\#))",
239
+ "end": "(?:$|(?=#))",
240
240
  "name": "comment.line.number-sign.python",
241
241
  "patterns": [
242
242
  {
243
- "match": "\\Gignore(?=\\s*(?:$|\\#))",
243
+ "match": "\\Gignore(?=\\s*(?:$|#))",
244
244
  "name": "comment.typehint.ignore.notation.python"
245
245
  },
246
246
  {
@@ -248,7 +248,7 @@
248
248
  "name": "comment.typehint.type.notation.python"
249
249
  },
250
250
  {
251
- "match": "([\\[\\]\\(\\),\\.\\=\\*]|(->))",
251
+ "match": "([\\[\\](),.=*]|(->))",
252
252
  "name": "comment.typehint.punctuation.notation.python"
253
253
  },
254
254
  {
@@ -263,7 +263,7 @@
263
263
  ]
264
264
  },
265
265
  "comments-base": {
266
- "begin": "(\\#)",
266
+ "begin": "(#)",
267
267
  "beginCaptures": {
268
268
  "1": {
269
269
  "name": "punctuation.definition.comment.python"
@@ -278,7 +278,7 @@
278
278
  ]
279
279
  },
280
280
  "comments-string-double-three": {
281
- "begin": "(\\#)",
281
+ "begin": "(#)",
282
282
  "beginCaptures": {
283
283
  "1": {
284
284
  "name": "punctuation.definition.comment.python"
@@ -293,7 +293,7 @@
293
293
  ]
294
294
  },
295
295
  "comments-string-single-three": {
296
- "begin": "(\\#)",
296
+ "begin": "(#)",
297
297
  "beginCaptures": {
298
298
  "1": {
299
299
  "name": "punctuation.definition.comment.python"
@@ -314,7 +314,7 @@
314
314
  "name": "punctuation.definition.dict.begin.python"
315
315
  }
316
316
  },
317
- "end": "\\}",
317
+ "end": "}",
318
318
  "endCaptures": {
319
319
  "0": {
320
320
  "name": "punctuation.definition.dict.end.python"
@@ -340,7 +340,7 @@
340
340
  "name": "punctuation.definition.decorator.python"
341
341
  }
342
342
  },
343
- "end": "(\\))(?:(.*?)(?=\\s*(?:\\#|$)))|(?=\\n|\\#)",
343
+ "end": "(\\))(.*?)(?=\\s*(?:#|$))|(?=[\\n#])",
344
344
  "endCaptures": {
345
345
  "1": {
346
346
  "name": "punctuation.definition.arguments.end.python"
@@ -385,7 +385,7 @@
385
385
  "name": "invalid.illegal.decorator.python"
386
386
  }
387
387
  },
388
- "match": "\\s*([^([:alpha:]\\s_\\.#\\\\].*?)(?=\\#|$)",
388
+ "match": "\\s*([^([:alpha:]\\s_.#\\\\].*?)(?=#|$)",
389
389
  "name": "invalid.illegal.decorator.python"
390
390
  }
391
391
  ]
@@ -393,10 +393,10 @@
393
393
  "double-one-regexp-character-set": {
394
394
  "patterns": [
395
395
  {
396
- "match": "\\[\\^?\\](?!.*?\\])"
396
+ "match": "\\[\\^?](?!.*?])"
397
397
  },
398
398
  {
399
- "begin": "(\\[)(\\^)?(\\])?",
399
+ "begin": "(\\[)(\\^)?(])?",
400
400
  "beginCaptures": {
401
401
  "1": {
402
402
  "name": "punctuation.character.set.begin.regexp constant.other.set.regexp"
@@ -408,7 +408,7 @@
408
408
  "name": "constant.character.set.regexp"
409
409
  }
410
410
  },
411
- "end": "(\\]|(?=\"))|((?=(?<!\\\\)\\n))",
411
+ "end": "(]|(?=\"))|((?=(?<!\\\\)\\n))",
412
412
  "endCaptures": {
413
413
  "1": {
414
414
  "name": "punctuation.character.set.end.regexp constant.other.set.regexp"
@@ -423,7 +423,7 @@
423
423
  "include": "#regexp-charecter-set-escapes"
424
424
  },
425
425
  {
426
- "match": "[^\\n]",
426
+ "match": "\\N",
427
427
  "name": "constant.character.set.regexp"
428
428
  }
429
429
  ]
@@ -454,7 +454,7 @@
454
454
  ]
455
455
  },
456
456
  "double-one-regexp-conditional": {
457
- "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",
457
+ "begin": "(\\()\\?\\((\\w+(?:\\s+\\p{alnum}+)?|\\d+)\\)",
458
458
  "beginCaptures": {
459
459
  "0": {
460
460
  "name": "keyword.operator.conditional.regexp"
@@ -622,7 +622,7 @@
622
622
  ]
623
623
  },
624
624
  "double-one-regexp-named-group": {
625
- "begin": "(\\()(\\?P<\\w+(?:\\s+[[:alnum:]]+)?>)",
625
+ "begin": "(\\()(\\?P<\\w+(?:\\s+\\p{alnum}+)?>)",
626
626
  "beginCaptures": {
627
627
  "1": {
628
628
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"
@@ -694,10 +694,10 @@
694
694
  "double-three-regexp-character-set": {
695
695
  "patterns": [
696
696
  {
697
- "match": "\\[\\^?\\](?!.*?\\])"
697
+ "match": "\\[\\^?](?!.*?])"
698
698
  },
699
699
  {
700
- "begin": "(\\[)(\\^)?(\\])?",
700
+ "begin": "(\\[)(\\^)?(])?",
701
701
  "beginCaptures": {
702
702
  "1": {
703
703
  "name": "punctuation.character.set.begin.regexp constant.other.set.regexp"
@@ -709,7 +709,7 @@
709
709
  "name": "constant.character.set.regexp"
710
710
  }
711
711
  },
712
- "end": "(\\]|(?=\"\"\"))",
712
+ "end": "(]|(?=\"\"\"))",
713
713
  "endCaptures": {
714
714
  "1": {
715
715
  "name": "punctuation.character.set.end.regexp constant.other.set.regexp"
@@ -724,7 +724,7 @@
724
724
  "include": "#regexp-charecter-set-escapes"
725
725
  },
726
726
  {
727
- "match": "[^\\n]",
727
+ "match": "\\N",
728
728
  "name": "constant.character.set.regexp"
729
729
  }
730
730
  ]
@@ -755,7 +755,7 @@
755
755
  ]
756
756
  },
757
757
  "double-three-regexp-conditional": {
758
- "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",
758
+ "begin": "(\\()\\?\\((\\w+(?:\\s+\\p{alnum}+)?|\\d+)\\)",
759
759
  "beginCaptures": {
760
760
  "0": {
761
761
  "name": "keyword.operator.conditional.regexp"
@@ -941,7 +941,7 @@
941
941
  ]
942
942
  },
943
943
  "double-three-regexp-named-group": {
944
- "begin": "(\\()(\\?P<\\w+(?:\\s+[[:alnum:]]+)?>)",
944
+ "begin": "(\\()(\\?P<\\w+(?:\\s+\\p{alnum}+)?>)",
945
945
  "beginCaptures": {
946
946
  "1": {
947
947
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"
@@ -1024,13 +1024,13 @@
1024
1024
  "name": "constant.other.ellipsis.python"
1025
1025
  },
1026
1026
  "escape-sequence": {
1027
- "match": "\\\\(x[0-9A-Fa-f]{2}|[0-7]{1,3}|[\\\\\"'abfnrtv])",
1027
+ "match": "\\\\(x\\h{2}|[0-7]{1,3}|[\\\\\"'abfnrtv])",
1028
1028
  "name": "constant.character.escape.python"
1029
1029
  },
1030
1030
  "escape-sequence-unicode": {
1031
1031
  "patterns": [
1032
1032
  {
1033
- "match": "\\\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\\{[\\w\\s]+?\\})",
1033
+ "match": "\\\\(u\\h{4}|U\\h{8}|N\\{[\\w\\s]+?})",
1034
1034
  "name": "constant.character.escape.python"
1035
1035
  }
1036
1036
  ]
@@ -1159,7 +1159,7 @@
1159
1159
  "include": "#fstring-formatting-braces"
1160
1160
  },
1161
1161
  {
1162
- "match": "\\{.*?\\}"
1162
+ "match": "\\{.*?}"
1163
1163
  },
1164
1164
  {
1165
1165
  "include": "#regexp-base-common"
@@ -1167,7 +1167,7 @@
1167
1167
  ]
1168
1168
  },
1169
1169
  "fregexp-quantifier": {
1170
- "match": "\\{\\{(\\d+|\\d+,(\\d+)?|,\\d+)\\}\\}",
1170
+ "match": "\\{\\{(\\d+|\\d+,(\\d+)?|,\\d+)}}",
1171
1171
  "name": "keyword.operator.quantifier.regexp"
1172
1172
  },
1173
1173
  "fstring-fnorm-quoted-multi-line": {
@@ -1270,10 +1270,10 @@
1270
1270
  "name": "constant.character.format.placeholder.other.python"
1271
1271
  }
1272
1272
  },
1273
- "match": "({)(\\s*?)(})"
1273
+ "match": "(\\{)(\\s*?)(})"
1274
1274
  },
1275
1275
  {
1276
- "match": "({{|}})",
1276
+ "match": "(\\{\\{|}})",
1277
1277
  "name": "constant.character.escape.python"
1278
1278
  }
1279
1279
  ]
@@ -1312,7 +1312,7 @@
1312
1312
  "name": "constant.character.format.placeholder.other.python"
1313
1313
  }
1314
1314
  },
1315
- "end": "(\\})|(?=\\n)",
1315
+ "end": "(})|(?=\\n)",
1316
1316
  "endCaptures": {
1317
1317
  "1": {
1318
1318
  "name": "constant.character.format.placeholder.other.python"
@@ -1334,7 +1334,7 @@
1334
1334
  "name": "constant.character.format.placeholder.other.python"
1335
1335
  }
1336
1336
  },
1337
- "end": "(\\})",
1337
+ "end": "(})",
1338
1338
  "endCaptures": {
1339
1339
  "1": {
1340
1340
  "name": "constant.character.format.placeholder.other.python"
@@ -1350,7 +1350,7 @@
1350
1350
  ]
1351
1351
  },
1352
1352
  "fstring-multi-core": {
1353
- "match": "(.+?)(($\\n?)|(?=[\\\\\\}\\{]|'''|\"\"\"))|\\n",
1353
+ "match": "(.+?)(($\\n?)|(?=[\\\\}{]|'''|\"\"\"))|\\n",
1354
1354
  "name": "string.interpolated.python string.quoted.multi.python"
1355
1355
  },
1356
1356
  "fstring-normf-quoted-multi-line": {
@@ -1440,7 +1440,7 @@
1440
1440
  ]
1441
1441
  },
1442
1442
  "fstring-raw-multi-core": {
1443
- "match": "(.+?)(($\\n?)|(?=[\\\\\\}\\{]|'''|\"\"\"))|\\n",
1443
+ "match": "(.+?)(($\\n?)|(?=[\\\\}{]|'''|\"\"\"))|\\n",
1444
1444
  "name": "string.interpolated.python string.quoted.raw.multi.python"
1445
1445
  },
1446
1446
  "fstring-raw-quoted-multi-line": {
@@ -1514,7 +1514,7 @@
1514
1514
  ]
1515
1515
  },
1516
1516
  "fstring-raw-single-core": {
1517
- "match": "(.+?)(($\\n?)|(?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n)))|\\n",
1517
+ "match": "(.+?)(($\\n?)|(?=[\\\\}{]|(['\"])|((?<!\\\\)\\n)))|\\n",
1518
1518
  "name": "string.interpolated.python string.quoted.raw.single.python"
1519
1519
  },
1520
1520
  "fstring-single-brace": {
@@ -1524,7 +1524,7 @@
1524
1524
  "name": "constant.character.format.placeholder.other.python"
1525
1525
  }
1526
1526
  },
1527
- "end": "(\\})|(?=\\n)",
1527
+ "end": "(})|(?=\\n)",
1528
1528
  "endCaptures": {
1529
1529
  "1": {
1530
1530
  "name": "constant.character.format.placeholder.other.python"
@@ -1540,7 +1540,7 @@
1540
1540
  ]
1541
1541
  },
1542
1542
  "fstring-single-core": {
1543
- "match": "(.+?)(($\\n?)|(?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n)))|\\n",
1543
+ "match": "(.+?)(($\\n?)|(?=[\\\\}{]|(['\"])|((?<!\\\\)\\n)))|\\n",
1544
1544
  "name": "string.interpolated.python string.quoted.single.python"
1545
1545
  },
1546
1546
  "fstring-terminator-multi": {
@@ -1562,7 +1562,7 @@
1562
1562
  "name": "storage.type.format.python"
1563
1563
  }
1564
1564
  },
1565
- "match": "((?:=?)(?:![rsa])?)(:\\w?[<>=^]?[-+ ]?\\#?\\d*,?(\\.\\d+)?[bcdeEfFgGnosxX%]?)(?=})"
1565
+ "match": "(=?(?:![rsa])?)(:\\w?[<>=\\^]?[\\-+ ]?#?\\d*,?(\\.\\d+)?[bcdeEfFgGnosxX%]?)(?=})"
1566
1566
  },
1567
1567
  {
1568
1568
  "include": "#fstring-terminator-multi-tail"
@@ -1570,7 +1570,7 @@
1570
1570
  ]
1571
1571
  },
1572
1572
  "fstring-terminator-multi-tail": {
1573
- "begin": "((?:=?)(?:![rsa])?)(:)(?=.*?{)",
1573
+ "begin": "(=?(?:![rsa])?)(:)(?=.*?\\{)",
1574
1574
  "beginCaptures": {
1575
1575
  "1": {
1576
1576
  "name": "storage.type.format.python"
@@ -1604,15 +1604,15 @@
1604
1604
  "name": "storage.type.format.python"
1605
1605
  },
1606
1606
  {
1607
- "match": "(\\#)",
1607
+ "match": "(#)",
1608
1608
  "name": "storage.type.format.python"
1609
1609
  },
1610
1610
  {
1611
- "match": "([-+ ])",
1611
+ "match": "([\\-+ ])",
1612
1612
  "name": "storage.type.format.python"
1613
1613
  },
1614
1614
  {
1615
- "match": "([<>=^])",
1615
+ "match": "([<>=\\^])",
1616
1616
  "name": "storage.type.format.python"
1617
1617
  },
1618
1618
  {
@@ -1640,7 +1640,7 @@
1640
1640
  "name": "storage.type.format.python"
1641
1641
  }
1642
1642
  },
1643
- "match": "((?:=?)(?:![rsa])?)(:\\w?[<>=^]?[-+ ]?\\#?\\d*,?(\\.\\d+)?[bcdeEfFgGnosxX%]?)(?=})"
1643
+ "match": "(=?(?:![rsa])?)(:\\w?[<>=\\^]?[\\-+ ]?#?\\d*,?(\\.\\d+)?[bcdeEfFgGnosxX%]?)(?=})"
1644
1644
  },
1645
1645
  {
1646
1646
  "include": "#fstring-terminator-single-tail"
@@ -1648,7 +1648,7 @@
1648
1648
  ]
1649
1649
  },
1650
1650
  "fstring-terminator-single-tail": {
1651
- "begin": "((?:=?)(?:![rsa])?)(:)(?=.*?{)",
1651
+ "begin": "(=?(?:![rsa])?)(:)(?=.*?\\{)",
1652
1652
  "beginCaptures": {
1653
1653
  "1": {
1654
1654
  "name": "storage.type.format.python"
@@ -1682,15 +1682,15 @@
1682
1682
  "name": "storage.type.format.python"
1683
1683
  },
1684
1684
  {
1685
- "match": "(\\#)",
1685
+ "match": "(#)",
1686
1686
  "name": "storage.type.format.python"
1687
1687
  },
1688
1688
  {
1689
- "match": "([-+ ])",
1689
+ "match": "([\\-+ ])",
1690
1690
  "name": "storage.type.format.python"
1691
1691
  },
1692
1692
  {
1693
- "match": "([<>=^])",
1693
+ "match": "([<>=\\^])",
1694
1694
  "name": "storage.type.format.python"
1695
1695
  },
1696
1696
  {
@@ -1780,7 +1780,7 @@
1780
1780
  ]
1781
1781
  },
1782
1782
  "function-declaration": {
1783
- "begin": "\\s*(?:\\b(async)\\s+)?\\b(def|fn)\\s+(?=[[:alpha:]_][[:word:]]*\\s*[\\(\\[])",
1783
+ "begin": "\\s*(?:\\b(async)\\s+)?\\b(def|fn)\\s+(?=[[:alpha:]_]\\p{word}*\\s*[(\\[])",
1784
1784
  "beginCaptures": {
1785
1785
  "1": {
1786
1786
  "name": "storage.type.function.async.python"
@@ -1877,7 +1877,7 @@
1877
1877
  "name": "keyword.control.import.python"
1878
1878
  }
1879
1879
  },
1880
- "match": "\\b(?:(and|assert|async|await|break|class|struct|trait|continue|del|elif|else|except|finally|for|from|global|if|in|is|(?<=\\.)lambda|lambda(?=\\s*[\\.=])|nonlocal|not|or|pass|raise|return|try|while|with|yield)|(def|fn|capturing|raises)|(as|import))\\b"
1880
+ "match": "\\b(?:(and|assert|async|await|break|class|struct|trait|continue|del|elif|else|except|finally|for|from|global|if|in|is|(?<=\\.)lambda|lambda(?=\\s*[.=])|nonlocal|not|or|pass|raise|return|try|while|with|yield)|(def|fn|capturing|raises)|(as|import))\\b"
1881
1881
  },
1882
1882
  "illegal-object-name": {
1883
1883
  "match": "\\b(True|False|None)\\b",
@@ -1967,7 +1967,7 @@
1967
1967
  "patterns": [
1968
1968
  {
1969
1969
  "begin": "\\b(?=[[:alpha:]_]\\w*\\s*\\[)",
1970
- "end": "(\\])",
1970
+ "end": "(])",
1971
1971
  "endCaptures": {
1972
1972
  "1": {
1973
1973
  "name": "punctuation.definition.arguments.end.python"
@@ -1996,7 +1996,7 @@
1996
1996
  }
1997
1997
  },
1998
1998
  "contentName": "meta.item-access.arguments.python",
1999
- "end": "(?=\\])",
1999
+ "end": "(?=])",
2000
2000
  "patterns": [
2001
2001
  {
2002
2002
  "match": ":",
@@ -2032,7 +2032,7 @@
2032
2032
  "name": "keyword.control.flow.python"
2033
2033
  }
2034
2034
  },
2035
- "match": "((?<=\\.)lambda|lambda(?=\\s*[\\.=]))"
2035
+ "match": "((?<=\\.)lambda|lambda(?=\\s*[.=]))"
2036
2036
  },
2037
2037
  {
2038
2038
  "captures": {
@@ -2067,7 +2067,7 @@
2067
2067
  "name": "keyword.operator.positional.parameter.python"
2068
2068
  },
2069
2069
  {
2070
- "match": "(\\*\\*|\\*)",
2070
+ "match": "(\\*(?:\\*|))",
2071
2071
  "name": "keyword.operator.unpacking.parameter.python"
2072
2072
  },
2073
2073
  {
@@ -2156,7 +2156,7 @@
2156
2156
  "name": "punctuation.separator.continuation.line.python"
2157
2157
  }
2158
2158
  },
2159
- "end": "(?=^\\s*$)|(?!(\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))|(\\G$))",
2159
+ "end": "(?=^\\s*$)|(?!(\\s*[rR]?('''|\"\"\"|['\"]))|(\\G$))",
2160
2160
  "patterns": [
2161
2161
  {
2162
2162
  "include": "#regexp"
@@ -2175,7 +2175,7 @@
2175
2175
  "name": "punctuation.definition.list.begin.python"
2176
2176
  }
2177
2177
  },
2178
- "end": "\\]",
2178
+ "end": "]",
2179
2179
  "endCaptures": {
2180
2180
  "0": {
2181
2181
  "name": "punctuation.definition.list.end.python"
@@ -2318,7 +2318,7 @@
2318
2318
  "name": "punctuation.definition.parameters.begin.python"
2319
2319
  }
2320
2320
  },
2321
- "end": "(\\])",
2321
+ "end": "(])",
2322
2322
  "endCaptures": {
2323
2323
  "1": {
2324
2324
  "name": "punctuation.definition.parameters.end.python"
@@ -2336,7 +2336,7 @@
2336
2336
  "name": "punctuation.separator.annotation.python"
2337
2337
  }
2338
2338
  },
2339
- "end": "(,)|(?=\\])",
2339
+ "end": "(,)|(?=])",
2340
2340
  "endCaptures": {
2341
2341
  "1": {
2342
2342
  "name": "punctuation.separator.parameters.python"
@@ -2386,7 +2386,7 @@
2386
2386
  "name": "storage.type.number.python"
2387
2387
  }
2388
2388
  },
2389
- "match": "(?<![\\w\\.])(0[bB])(_?[01])+\\b",
2389
+ "match": "(?<![\\w.])(0[bB])(_?[01])+\\b",
2390
2390
  "name": "constant.numeric.bin.python"
2391
2391
  },
2392
2392
  "number-dec": {
@@ -2398,7 +2398,7 @@
2398
2398
  "name": "invalid.illegal.dec.python"
2399
2399
  }
2400
2400
  },
2401
- "match": "(?<![\\w\\.])(?:[1-9](?:_?[0-9])*|0+|[0-9](?:_?[0-9])*([jJ])|0([0-9]+)(?![eE\\.]))\\b",
2401
+ "match": "(?<![\\w.])(?:[1-9](?:_?[0-9])*|0+|[0-9](?:_?[0-9])*([jJ])|0([0-9]+)(?![eE.]))\\b",
2402
2402
  "name": "constant.numeric.dec.python"
2403
2403
  },
2404
2404
  "number-float": {
@@ -2407,7 +2407,7 @@
2407
2407
  "name": "storage.type.imaginary.number.python"
2408
2408
  }
2409
2409
  },
2410
- "match": "(?<!\\w)(?:(?:\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\.)(?:[eE][+-]?[0-9](?:_?[0-9])*)?|[0-9](?:_?[0-9])*(?:[eE][+-]?[0-9](?:_?[0-9])*))([jJ])?\\b",
2410
+ "match": "(?<!\\w)(?:(?:\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\.)(?:[eE][+\\-]?[0-9](?:_?[0-9])*)?|[0-9](?:_?[0-9])*[eE][+\\-]?[0-9](?:_?[0-9])*)([jJ])?\\b",
2411
2411
  "name": "constant.numeric.float.python"
2412
2412
  },
2413
2413
  "number-hex": {
@@ -2416,7 +2416,7 @@
2416
2416
  "name": "storage.type.number.python"
2417
2417
  }
2418
2418
  },
2419
- "match": "(?<![\\w\\.])(0[xX])(_?[0-9a-fA-F])+\\b",
2419
+ "match": "(?<![\\w.])(0[xX])(_?\\h)+\\b",
2420
2420
  "name": "constant.numeric.hex.python"
2421
2421
  },
2422
2422
  "number-long": {
@@ -2425,7 +2425,7 @@
2425
2425
  "name": "storage.type.number.python"
2426
2426
  }
2427
2427
  },
2428
- "match": "(?<![\\w\\.])([1-9][0-9]*|0)([lL])\\b",
2428
+ "match": "(?<![\\w.])([1-9][0-9]*|0)([lL])\\b",
2429
2429
  "name": "constant.numeric.bin.python"
2430
2430
  },
2431
2431
  "number-oct": {
@@ -2434,11 +2434,11 @@
2434
2434
  "name": "storage.type.number.python"
2435
2435
  }
2436
2436
  },
2437
- "match": "(?<![\\w\\.])(0[oO])(_?[0-7])+\\b",
2437
+ "match": "(?<![\\w.])(0[oO])(_?[0-7])+\\b",
2438
2438
  "name": "constant.numeric.oct.python"
2439
2439
  },
2440
2440
  "odd-function-call": {
2441
- "begin": "(?<=\\]|\\))\\s*(?=\\()",
2441
+ "begin": "(?<=[\\])])\\s*(?=\\()",
2442
2442
  "end": "(\\))",
2443
2443
  "endCaptures": {
2444
2444
  "1": {
@@ -2472,7 +2472,7 @@
2472
2472
  "name": "keyword.operator.assignment.python"
2473
2473
  }
2474
2474
  },
2475
- "match": "\\b(?<!\\.)(?:(and|or|not|in|is)|(for|if|else|await|(?:yield(?:\\s+from)?)))(?!\\s*:)\\b|(<<|>>|&|\\||\\^|~)|(\\*\\*|\\*|\\+|-|%|//|/|@)|(!=|==|>=|<=|<|>)|(:=)"
2475
+ "match": "\\b(?<!\\.)(?:(and|or|not|in|is)|(for|if|else|await|yield(?:\\s+from)?))(?!\\s*:)\\b|(<<|>>|[\\&|\\^~])|(\\*\\*|[*+\\-%]|//|[/@])|(!=|==|>=|<=|[<>])|(:=)"
2476
2476
  },
2477
2477
  "parameter-special": {
2478
2478
  "captures": {
@@ -2515,7 +2515,7 @@
2515
2515
  "name": "keyword.operator.positional.parameter.python"
2516
2516
  },
2517
2517
  {
2518
- "match": "(\\*\\*|\\*)",
2518
+ "match": "(\\*(?:\\*|))",
2519
2519
  "name": "keyword.operator.unpacking.parameter.python"
2520
2520
  },
2521
2521
  {
@@ -2592,7 +2592,7 @@
2592
2592
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"
2593
2593
  }
2594
2594
  },
2595
- "match": "(\\()(\\?P=\\w+(?:\\s+[[:alnum:]]+)?)(\\))",
2595
+ "match": "(\\()(\\?P=\\w+(?:\\s+\\p{alnum}+)?)(\\))",
2596
2596
  "name": "meta.backreference.named.regexp"
2597
2597
  },
2598
2598
  "regexp-backreference-number": {
@@ -2734,7 +2734,7 @@
2734
2734
  "name": "constant.character.escape.regexp"
2735
2735
  },
2736
2736
  "regexp-escape-character": {
2737
- "match": "\\\\(x[0-9A-Fa-f]{2}|0[0-7]{1,2}|[0-7]{3})",
2737
+ "match": "\\\\(x\\h{2}|0[0-7]{1,2}|[0-7]{3})",
2738
2738
  "name": "constant.character.escape.regexp"
2739
2739
  },
2740
2740
  "regexp-escape-sequence": {
@@ -2761,7 +2761,7 @@
2761
2761
  "name": "support.other.escape.special.regexp"
2762
2762
  },
2763
2763
  "regexp-escape-unicode": {
2764
- "match": "\\\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
2764
+ "match": "\\\\(u\\h{4}|U\\h{8})",
2765
2765
  "name": "constant.character.unicode.regexp"
2766
2766
  },
2767
2767
  "regexp-flags": {
@@ -2769,11 +2769,11 @@
2769
2769
  "name": "storage.modifier.flag.regexp"
2770
2770
  },
2771
2771
  "regexp-quantifier": {
2772
- "match": "\\{(\\d+|\\d+,(\\d+)?|,\\d+)\\}",
2772
+ "match": "\\{(\\d+|\\d+,(\\d+)?|,\\d+)}",
2773
2773
  "name": "keyword.operator.quantifier.regexp"
2774
2774
  },
2775
2775
  "regexp-single-one-line": {
2776
- "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')",
2776
+ "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(')",
2777
2777
  "beginCaptures": {
2778
2778
  "2": {
2779
2779
  "name": "invalid.deprecated.prefix.python"
@@ -2788,7 +2788,7 @@
2788
2788
  "name": "punctuation.definition.string.begin.python"
2789
2789
  }
2790
2790
  },
2791
- "end": "(\\')|(?<!\\\\)(\\n)",
2791
+ "end": "(')|(?<!\\\\)(\\n)",
2792
2792
  "endCaptures": {
2793
2793
  "1": {
2794
2794
  "name": "punctuation.definition.string.end.python"
@@ -2805,7 +2805,7 @@
2805
2805
  ]
2806
2806
  },
2807
2807
  "regexp-single-three-line": {
2808
- "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')",
2808
+ "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(''')",
2809
2809
  "beginCaptures": {
2810
2810
  "2": {
2811
2811
  "name": "invalid.deprecated.prefix.python"
@@ -2820,7 +2820,7 @@
2820
2820
  "name": "punctuation.definition.string.begin.python"
2821
2821
  }
2822
2822
  },
2823
- "end": "(\\'\\'\\')",
2823
+ "end": "(''')",
2824
2824
  "endCaptures": {
2825
2825
  "1": {
2826
2826
  "name": "punctuation.definition.string.end.python"
@@ -2872,7 +2872,7 @@
2872
2872
  "semicolon": {
2873
2873
  "patterns": [
2874
2874
  {
2875
- "match": "\\;$",
2875
+ "match": ";$",
2876
2876
  "name": "invalid.deprecated.semicolon.python"
2877
2877
  }
2878
2878
  ]
@@ -2880,10 +2880,10 @@
2880
2880
  "single-one-regexp-character-set": {
2881
2881
  "patterns": [
2882
2882
  {
2883
- "match": "\\[\\^?\\](?!.*?\\])"
2883
+ "match": "\\[\\^?](?!.*?])"
2884
2884
  },
2885
2885
  {
2886
- "begin": "(\\[)(\\^)?(\\])?",
2886
+ "begin": "(\\[)(\\^)?(])?",
2887
2887
  "beginCaptures": {
2888
2888
  "1": {
2889
2889
  "name": "punctuation.character.set.begin.regexp constant.other.set.regexp"
@@ -2895,7 +2895,7 @@
2895
2895
  "name": "constant.character.set.regexp"
2896
2896
  }
2897
2897
  },
2898
- "end": "(\\]|(?=\\'))|((?=(?<!\\\\)\\n))",
2898
+ "end": "(]|(?='))|((?=(?<!\\\\)\\n))",
2899
2899
  "endCaptures": {
2900
2900
  "1": {
2901
2901
  "name": "punctuation.character.set.end.regexp constant.other.set.regexp"
@@ -2910,7 +2910,7 @@
2910
2910
  "include": "#regexp-charecter-set-escapes"
2911
2911
  },
2912
2912
  {
2913
- "match": "[^\\n]",
2913
+ "match": "\\N",
2914
2914
  "name": "constant.character.set.regexp"
2915
2915
  }
2916
2916
  ]
@@ -2924,7 +2924,7 @@
2924
2924
  "name": "punctuation.comment.begin.regexp"
2925
2925
  }
2926
2926
  },
2927
- "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",
2927
+ "end": "(\\)|(?='))|((?=(?<!\\\\)\\n))",
2928
2928
  "endCaptures": {
2929
2929
  "1": {
2930
2930
  "name": "punctuation.comment.end.regexp"
@@ -2941,7 +2941,7 @@
2941
2941
  ]
2942
2942
  },
2943
2943
  "single-one-regexp-conditional": {
2944
- "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",
2944
+ "begin": "(\\()\\?\\((\\w+(?:\\s+\\p{alnum}+)?|\\d+)\\)",
2945
2945
  "beginCaptures": {
2946
2946
  "0": {
2947
2947
  "name": "keyword.operator.conditional.regexp"
@@ -2950,7 +2950,7 @@
2950
2950
  "name": "punctuation.parenthesis.conditional.begin.regexp"
2951
2951
  }
2952
2952
  },
2953
- "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",
2953
+ "end": "(\\)|(?='))|((?=(?<!\\\\)\\n))",
2954
2954
  "endCaptures": {
2955
2955
  "1": {
2956
2956
  "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"
@@ -3018,7 +3018,7 @@
3018
3018
  "name": "punctuation.parenthesis.lookahead.begin.regexp"
3019
3019
  }
3020
3020
  },
3021
- "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",
3021
+ "end": "(\\)|(?='))|((?=(?<!\\\\)\\n))",
3022
3022
  "endCaptures": {
3023
3023
  "1": {
3024
3024
  "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"
@@ -3043,7 +3043,7 @@
3043
3043
  "name": "punctuation.parenthesis.lookahead.begin.regexp"
3044
3044
  }
3045
3045
  },
3046
- "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",
3046
+ "end": "(\\)|(?='))|((?=(?<!\\\\)\\n))",
3047
3047
  "endCaptures": {
3048
3048
  "1": {
3049
3049
  "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"
@@ -3068,7 +3068,7 @@
3068
3068
  "name": "punctuation.parenthesis.lookbehind.begin.regexp"
3069
3069
  }
3070
3070
  },
3071
- "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",
3071
+ "end": "(\\)|(?='))|((?=(?<!\\\\)\\n))",
3072
3072
  "endCaptures": {
3073
3073
  "1": {
3074
3074
  "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"
@@ -3093,7 +3093,7 @@
3093
3093
  "name": "punctuation.parenthesis.lookbehind.begin.regexp"
3094
3094
  }
3095
3095
  },
3096
- "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",
3096
+ "end": "(\\)|(?='))|((?=(?<!\\\\)\\n))",
3097
3097
  "endCaptures": {
3098
3098
  "1": {
3099
3099
  "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"
@@ -3109,7 +3109,7 @@
3109
3109
  ]
3110
3110
  },
3111
3111
  "single-one-regexp-named-group": {
3112
- "begin": "(\\()(\\?P<\\w+(?:\\s+[[:alnum:]]+)?>)",
3112
+ "begin": "(\\()(\\?P<\\w+(?:\\s+\\p{alnum}+)?>)",
3113
3113
  "beginCaptures": {
3114
3114
  "1": {
3115
3115
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"
@@ -3118,7 +3118,7 @@
3118
3118
  "name": "entity.name.tag.named.group.regexp"
3119
3119
  }
3120
3120
  },
3121
- "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",
3121
+ "end": "(\\)|(?='))|((?=(?<!\\\\)\\n))",
3122
3122
  "endCaptures": {
3123
3123
  "1": {
3124
3124
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"
@@ -3141,7 +3141,7 @@
3141
3141
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"
3142
3142
  }
3143
3143
  },
3144
- "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",
3144
+ "end": "(\\)|(?='))|((?=(?<!\\\\)\\n))",
3145
3145
  "endCaptures": {
3146
3146
  "1": {
3147
3147
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"
@@ -3163,7 +3163,7 @@
3163
3163
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"
3164
3164
  }
3165
3165
  },
3166
- "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",
3166
+ "end": "(\\)|(?='))|((?=(?<!\\\\)\\n))",
3167
3167
  "endCaptures": {
3168
3168
  "1": {
3169
3169
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"
@@ -3181,10 +3181,10 @@
3181
3181
  "single-three-regexp-character-set": {
3182
3182
  "patterns": [
3183
3183
  {
3184
- "match": "\\[\\^?\\](?!.*?\\])"
3184
+ "match": "\\[\\^?](?!.*?])"
3185
3185
  },
3186
3186
  {
3187
- "begin": "(\\[)(\\^)?(\\])?",
3187
+ "begin": "(\\[)(\\^)?(])?",
3188
3188
  "beginCaptures": {
3189
3189
  "1": {
3190
3190
  "name": "punctuation.character.set.begin.regexp constant.other.set.regexp"
@@ -3196,7 +3196,7 @@
3196
3196
  "name": "constant.character.set.regexp"
3197
3197
  }
3198
3198
  },
3199
- "end": "(\\]|(?=\\'\\'\\'))",
3199
+ "end": "(]|(?='''))",
3200
3200
  "endCaptures": {
3201
3201
  "1": {
3202
3202
  "name": "punctuation.character.set.end.regexp constant.other.set.regexp"
@@ -3211,7 +3211,7 @@
3211
3211
  "include": "#regexp-charecter-set-escapes"
3212
3212
  },
3213
3213
  {
3214
- "match": "[^\\n]",
3214
+ "match": "\\N",
3215
3215
  "name": "constant.character.set.regexp"
3216
3216
  }
3217
3217
  ]
@@ -3225,7 +3225,7 @@
3225
3225
  "name": "punctuation.comment.begin.regexp"
3226
3226
  }
3227
3227
  },
3228
- "end": "(\\)|(?=\\'\\'\\'))",
3228
+ "end": "(\\)|(?='''))",
3229
3229
  "endCaptures": {
3230
3230
  "1": {
3231
3231
  "name": "punctuation.comment.end.regexp"
@@ -3242,7 +3242,7 @@
3242
3242
  ]
3243
3243
  },
3244
3244
  "single-three-regexp-conditional": {
3245
- "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",
3245
+ "begin": "(\\()\\?\\((\\w+(?:\\s+\\p{alnum}+)?|\\d+)\\)",
3246
3246
  "beginCaptures": {
3247
3247
  "0": {
3248
3248
  "name": "keyword.operator.conditional.regexp"
@@ -3251,7 +3251,7 @@
3251
3251
  "name": "punctuation.parenthesis.conditional.begin.regexp"
3252
3252
  }
3253
3253
  },
3254
- "end": "(\\)|(?=\\'\\'\\'))",
3254
+ "end": "(\\)|(?='''))",
3255
3255
  "endCaptures": {
3256
3256
  "1": {
3257
3257
  "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"
@@ -3325,7 +3325,7 @@
3325
3325
  "name": "punctuation.parenthesis.lookahead.begin.regexp"
3326
3326
  }
3327
3327
  },
3328
- "end": "(\\)|(?=\\'\\'\\'))",
3328
+ "end": "(\\)|(?='''))",
3329
3329
  "endCaptures": {
3330
3330
  "1": {
3331
3331
  "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"
@@ -3353,7 +3353,7 @@
3353
3353
  "name": "punctuation.parenthesis.lookahead.begin.regexp"
3354
3354
  }
3355
3355
  },
3356
- "end": "(\\)|(?=\\'\\'\\'))",
3356
+ "end": "(\\)|(?='''))",
3357
3357
  "endCaptures": {
3358
3358
  "1": {
3359
3359
  "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"
@@ -3381,7 +3381,7 @@
3381
3381
  "name": "punctuation.parenthesis.lookbehind.begin.regexp"
3382
3382
  }
3383
3383
  },
3384
- "end": "(\\)|(?=\\'\\'\\'))",
3384
+ "end": "(\\)|(?='''))",
3385
3385
  "endCaptures": {
3386
3386
  "1": {
3387
3387
  "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"
@@ -3409,7 +3409,7 @@
3409
3409
  "name": "punctuation.parenthesis.lookbehind.begin.regexp"
3410
3410
  }
3411
3411
  },
3412
- "end": "(\\)|(?=\\'\\'\\'))",
3412
+ "end": "(\\)|(?='''))",
3413
3413
  "endCaptures": {
3414
3414
  "1": {
3415
3415
  "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"
@@ -3428,7 +3428,7 @@
3428
3428
  ]
3429
3429
  },
3430
3430
  "single-three-regexp-named-group": {
3431
- "begin": "(\\()(\\?P<\\w+(?:\\s+[[:alnum:]]+)?>)",
3431
+ "begin": "(\\()(\\?P<\\w+(?:\\s+\\p{alnum}+)?>)",
3432
3432
  "beginCaptures": {
3433
3433
  "1": {
3434
3434
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"
@@ -3437,7 +3437,7 @@
3437
3437
  "name": "entity.name.tag.named.group.regexp"
3438
3438
  }
3439
3439
  },
3440
- "end": "(\\)|(?=\\'\\'\\'))",
3440
+ "end": "(\\)|(?='''))",
3441
3441
  "endCaptures": {
3442
3442
  "1": {
3443
3443
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"
@@ -3463,7 +3463,7 @@
3463
3463
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"
3464
3464
  }
3465
3465
  },
3466
- "end": "(\\)|(?=\\'\\'\\'))",
3466
+ "end": "(\\)|(?='''))",
3467
3467
  "endCaptures": {
3468
3468
  "1": {
3469
3469
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"
@@ -3488,7 +3488,7 @@
3488
3488
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"
3489
3489
  }
3490
3490
  },
3491
- "end": "(\\)|(?=\\'\\'\\'))",
3491
+ "end": "(\\)|(?='''))",
3492
3492
  "endCaptures": {
3493
3493
  "1": {
3494
3494
  "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"
@@ -3507,7 +3507,7 @@
3507
3507
  ]
3508
3508
  },
3509
3509
  "special-names": {
3510
- "match": "\\b(_*[[:upper:]][_\\d]*[[:upper:]])[[:upper:]\\d]*(_\\w*)?\\b",
3510
+ "match": "\\b(_*\\p{upper}[_\\d]*\\p{upper})[[:upper:]\\d]*(_\\w*)?\\b",
3511
3511
  "name": "constant.other.caps.python"
3512
3512
  },
3513
3513
  "special-variables": {
@@ -3581,7 +3581,7 @@
3581
3581
  "name": "keyword.control.flow.python"
3582
3582
  }
3583
3583
  },
3584
- "match": "^\\s*(case|match)(?=\\s*([-+\\w\\d(\\[{'\":#]|$))\\b"
3584
+ "match": "^\\s*(case|match)(?=\\s*([\\-+\\w\\d(\\[{'\":#]|$))\\b"
3585
3585
  },
3586
3586
  {
3587
3587
  "captures": {
@@ -3708,7 +3708,7 @@
3708
3708
  "name": "storage.type.format.python"
3709
3709
  }
3710
3710
  },
3711
- "match": "({{|}}|(?:{\\w*(\\.[[:alpha:]_]\\w*|\\[[^\\]'\"]+\\])*(![rsa])?(:\\w?[<>=^]?[-+ ]?\\#?\\d*,?(\\.\\d+)?[bcdeEfFgGnosxX%]?)?}))",
3711
+ "match": "(\\{\\{|}}|\\{\\w*(\\.[[:alpha:]_]\\w*|\\[[^\\]'\"]+])*(![rsa])?(:\\w?[<>=\\^]?[\\-+ ]?#?\\d*,?(\\.\\d+)?[bcdeEfFgGnosxX%]?)?})",
3712
3712
  "name": "meta.format.brace.python"
3713
3713
  },
3714
3714
  {
@@ -3723,7 +3723,7 @@
3723
3723
  "name": "storage.type.format.python"
3724
3724
  }
3725
3725
  },
3726
- "match": "({\\w*(\\.[[:alpha:]_]\\w*|\\[[^\\]'\"]+\\])*(![rsa])?(:)[^'\"{}\\n]*(?:\\{[^'\"}\\n]*?\\}[^'\"{}\\n]*)*})",
3726
+ "match": "(\\{\\w*(\\.[[:alpha:]_]\\w*|\\[[^\\]'\"]+])*(![rsa])?(:)[^'\"{}\\n]*(?:\\{[^'\"}\\n]*?}[^'\"{}\\n]*)*})",
3727
3727
  "name": "meta.format.brace.python"
3728
3728
  }
3729
3729
  ]
@@ -3750,7 +3750,7 @@
3750
3750
  "name": "constant.character.format.placeholder.other.python"
3751
3751
  }
3752
3752
  },
3753
- "match": "(%(\\([\\w\\s]*\\))?[-+#0 ]*(\\d+|\\*)?(\\.(\\d+|\\*))?([hlL])?[diouxXeEfFgGcrsab%])",
3753
+ "match": "(%(\\([\\w\\s]*\\))?[\\-+#0 ]*(\\d+|\\*)?(\\.(\\d+|\\*))?([hlL])?[diouxXeEfFgGcrsab%])",
3754
3754
  "name": "meta.format.percent.python"
3755
3755
  },
3756
3756
  "string-line-continuation": {
@@ -3758,7 +3758,7 @@
3758
3758
  "name": "constant.language.python"
3759
3759
  },
3760
3760
  "string-mojo-code-block": {
3761
- "begin": "^(\\s*\\`{3,})(mojo)$",
3761
+ "begin": "^(\\s*`{3,})(mojo)$",
3762
3762
  "beginCaptures": {
3763
3763
  "1": {
3764
3764
  "name": "string.quoted.single.python"
@@ -3782,7 +3782,7 @@
3782
3782
  ]
3783
3783
  },
3784
3784
  "string-multi-bad-brace1-formatting-raw": {
3785
- "begin": "(?=\\{%(.*?(?!'''|\"\"\"))%\\})",
3785
+ "begin": "(?=\\{%(.*?(?!'''|\"\"\"))%})",
3786
3786
  "end": "(?='''|\"\"\")",
3787
3787
  "patterns": [
3788
3788
  {
@@ -3791,7 +3791,7 @@
3791
3791
  ]
3792
3792
  },
3793
3793
  "string-multi-bad-brace1-formatting-unicode": {
3794
- "begin": "(?=\\{%(.*?(?!'''|\"\"\"))%\\})",
3794
+ "begin": "(?=\\{%(.*?(?!'''|\"\"\"))%})",
3795
3795
  "end": "(?='''|\"\"\")",
3796
3796
  "patterns": [
3797
3797
  {
@@ -3806,7 +3806,7 @@
3806
3806
  ]
3807
3807
  },
3808
3808
  "string-multi-bad-brace2-formatting-raw": {
3809
- "begin": "(?!\\{\\{)(?=\\{(\\w*?(?!'''|\"\"\")[^!:\\.\\[}\\w]).*?(?!'''|\"\"\")\\})",
3809
+ "begin": "(?!\\{\\{)(?=\\{(\\w*?(?!'''|\"\"\")[^!:.\\[}\\w]).*?(?!'''|\"\"\")})",
3810
3810
  "end": "(?='''|\"\"\")",
3811
3811
  "patterns": [
3812
3812
  {
@@ -3818,7 +3818,7 @@
3818
3818
  ]
3819
3819
  },
3820
3820
  "string-multi-bad-brace2-formatting-unicode": {
3821
- "begin": "(?!\\{\\{)(?=\\{(\\w*?(?!'''|\"\"\")[^!:\\.\\[}\\w]).*?(?!'''|\"\"\")\\})",
3821
+ "begin": "(?!\\{\\{)(?=\\{(\\w*?(?!'''|\"\"\")[^!:.\\[}\\w]).*?(?!'''|\"\"\")})",
3822
3822
  "end": "(?='''|\"\"\")",
3823
3823
  "patterns": [
3824
3824
  {
@@ -4045,7 +4045,7 @@
4045
4045
  ]
4046
4046
  },
4047
4047
  "string-single-bad-brace1-formatting-raw": {
4048
- "begin": "(?=\\{%(.*?(?!(['\"])|((?<!\\\\)\\n)))%\\})",
4048
+ "begin": "(?=\\{%(.*?(?!(['\"])|((?<!\\\\)\\n)))%})",
4049
4049
  "end": "(?=(['\"])|((?<!\\\\)\\n))",
4050
4050
  "patterns": [
4051
4051
  {
@@ -4054,7 +4054,7 @@
4054
4054
  ]
4055
4055
  },
4056
4056
  "string-single-bad-brace1-formatting-unicode": {
4057
- "begin": "(?=\\{%(.*?(?!(['\"])|((?<!\\\\)\\n)))%\\})",
4057
+ "begin": "(?=\\{%(.*?(?!(['\"])|((?<!\\\\)\\n)))%})",
4058
4058
  "end": "(?=(['\"])|((?<!\\\\)\\n))",
4059
4059
  "patterns": [
4060
4060
  {
@@ -4069,7 +4069,7 @@
4069
4069
  ]
4070
4070
  },
4071
4071
  "string-single-bad-brace2-formatting-raw": {
4072
- "begin": "(?!\\{\\{)(?=\\{(\\w*?(?!(['\"])|((?<!\\\\)\\n))[^!:\\.\\[}\\w]).*?(?!(['\"])|((?<!\\\\)\\n))\\})",
4072
+ "begin": "(?!\\{\\{)(?=\\{(\\w*?(?!(['\"])|((?<!\\\\)\\n))[^!:.\\[}\\w]).*?(?!(['\"])|((?<!\\\\)\\n))})",
4073
4073
  "end": "(?=(['\"])|((?<!\\\\)\\n))",
4074
4074
  "patterns": [
4075
4075
  {
@@ -4081,7 +4081,7 @@
4081
4081
  ]
4082
4082
  },
4083
4083
  "string-single-bad-brace2-formatting-unicode": {
4084
- "begin": "(?!\\{\\{)(?=\\{(\\w*?(?!(['\"])|((?<!\\\\)\\n))[^!:\\.\\[}\\w]).*?(?!(['\"])|((?<!\\\\)\\n))\\})",
4084
+ "begin": "(?!\\{\\{)(?=\\{(\\w*?(?!(['\"])|((?<!\\\\)\\n))[^!:.\\[}\\w]).*?(?!(['\"])|((?<!\\\\)\\n))})",
4085
4085
  "end": "(?=(['\"])|((?<!\\\\)\\n))",
4086
4086
  "patterns": [
4087
4087
  {