vite-plugin-vue-devtools 7.2.0 → 7.3.0-beta.1

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 (47) hide show
  1. package/client/assets/index-DhLLQ7AJ.css +1 -0
  2. package/client/assets/{index-CDBAuZCi.js → index-I7cYn7yD.js} +112 -113
  3. package/client/assets/{unocss-runtime-C2aH1Jer.js → unocss-runtime-DET60yni.js} +2 -2
  4. package/client/assets/{vue-yccoFuXf-q8nGVquG.js → vue-CCacahFR-CRnm5w84.js} +2 -2
  5. package/client/assets/{vue-CMvPPucx.js → vue-CpF6k_42.js} +2 -2
  6. package/client/assets/{vue-html-PWeNQaIl-ChlIBMe8.js → vue-html-Cae35ipv-514FnJ3-.js} +1 -1
  7. package/client/assets/{vue-html-DxgvOoVJ.js → vue-html-aHkQr8H2.js} +1 -1
  8. package/client/css-CAzixsid-CEpuX1HY.js +511 -0
  9. package/client/css-CAzixsid.js +511 -0
  10. package/client/devtools-panel.css +1 -0
  11. package/client/devtools-panel.js +92963 -0
  12. package/client/diff-Bo5iyMQ2-Bo5iyMQ2.js +7 -0
  13. package/client/diff-Bo5iyMQ2.js +7 -0
  14. package/client/html-BZB5lEhh-B74zAnWx.js +84 -0
  15. package/client/html-BZB5lEhh.js +84 -0
  16. package/client/index.html +2 -2
  17. package/client/javascript-DqVBMyXe-DqVBMyXe.js +705 -0
  18. package/client/javascript-DqVBMyXe.js +705 -0
  19. package/client/json-B12k4-6m-B12k4-6m.js +31 -0
  20. package/client/json-B12k4-6m.js +31 -0
  21. package/client/shellscript-C_gmBC5P-C_gmBC5P.js +7 -0
  22. package/client/shellscript-C_gmBC5P.js +7 -0
  23. package/client/typescript-AEg-ehu7-AEg-ehu7.js +672 -0
  24. package/client/typescript-AEg-ehu7.js +672 -0
  25. package/client/unocss-runtime-CysDdJDT.js +2041 -0
  26. package/client/vitesse-dark-CkUHDarG-CkUHDarG.js +685 -0
  27. package/client/vitesse-dark-CkUHDarG.js +685 -0
  28. package/client/vitesse-light-K81-viQS-K81-viQS.js +683 -0
  29. package/client/vitesse-light-K81-viQS.js +683 -0
  30. package/client/vue-CCacahFR-DGkPCBY5.js +2125 -0
  31. package/client/vue-CCacahFR.js +2125 -0
  32. package/client/vue-apis-Ba6Wxigc.js +1152 -0
  33. package/client/vue-html-Cae35ipv-C0hVhFzJ.js +11 -0
  34. package/client/vue-html-Cae35ipv.js +11 -0
  35. package/client/yaml-PGla5xPP-HJurM_FJ.js +206 -0
  36. package/client/yaml-PGla5xPP.js +206 -0
  37. package/dist/vite.cjs +140 -114
  38. package/dist/vite.d.cts +3 -17
  39. package/dist/vite.d.mts +3 -17
  40. package/dist/vite.d.ts +3 -17
  41. package/dist/vite.mjs +141 -115
  42. package/package.json +6 -6
  43. package/src/overlay/devtools-overlay.css +1 -1
  44. package/src/overlay/devtools-overlay.js +2 -2
  45. package/src/overlay/devtools-overlay.mjs +8 -0
  46. package/src/overlay.js +10 -4
  47. package/client/assets/index-Cka_f-Nd.css +0 -1
@@ -0,0 +1,2125 @@
1
+ import n from "./html-BZB5lEhh.js";
2
+ import e from "./javascript-DqVBMyXe.js";
3
+ import t from "./css-CAzixsid.js";
4
+ import a from "./typescript-AEg-ehu7.js";
5
+ import u from "./json-B12k4-6m.js";
6
+ import m from "./yaml-PGla5xPP.js";
7
+ const p = Object.freeze({ displayName: "Markdown", name: "markdown", patterns: [{ include: "#frontMatter" }, { include: "#block" }], repository: { ampersand: { comment: "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.", match: "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)", name: "meta.other.valid-ampersand.markdown" }, block: { patterns: [{ include: "#separator" }, { include: "#heading" }, { include: "#blockquote" }, { include: "#lists" }, { include: "#fenced_code_block" }, { include: "#raw_block" }, { include: "#link-def" }, { include: "#html" }, { include: "#table" }, { include: "#paragraph" }] }, blockquote: { begin: "(^|\\G)[ ]{0,3}(>) ?", captures: { 2: { name: "punctuation.definition.quote.begin.markdown" } }, name: "markup.quote.markdown", patterns: [{ include: "#block" }], while: "(^|\\G)\\s*(>) ?" }, bold: { begin: `(?x) (?<open>(\\*\\*(?=\\w)|(?<!\\w)\\*\\*|(?<!\\w)\\b__))(?=\\S) (?=
8
+ (
9
+ <[^>]*+>
10
+ | (?<raw>\`+)([^\`]|(?!(?<!\`)\\k<raw>(?!\`))\`)*+\\k<raw>
11
+
12
+ | \\\\[\\\\\`*_{}\\[\\]()#.!+\\->]?+
13
+ | \\[
14
+ (
15
+ (?<square>
16
+ [^\\[\\]\\\\]
17
+ | \\\\.
18
+ | \\[ \\g<square>*+ \\]
19
+ )*+
20
+ \\]
21
+ (
22
+ (
23
+ [ ]?
24
+ \\[[^\\]]*+\\]
25
+ )
26
+ | (
27
+ \\(
28
+ [ \\t]*+
29
+ <?(.*?)>?
30
+ [ \\t]*+
31
+ (
32
+ (?<title>['"])
33
+ (.*?)
34
+ \\k<title>
35
+ )?
36
+ \\)
37
+ )
38
+ )
39
+ )
40
+ | (?!(?<=\\S)\\k<open>).
41
+
42
+ )++
43
+ (?<=\\S)(?=__\\b|\\*\\*)\\k<open>
44
+ )
45
+ `, captures: { 1: { name: "punctuation.definition.bold.markdown" } }, end: "(?<=\\S)(\\1)", name: "markup.bold.markdown", patterns: [{ applyEndPatternLast: 1, begin: "(?=<[^>]*?>)", end: "(?<=>)", patterns: [{ include: "text.html.derivative" }] }, { include: "#escape" }, { include: "#ampersand" }, { include: "#bracket" }, { include: "#raw" }, { include: "#bold" }, { include: "#italic" }, { include: "#image-inline" }, { include: "#link-inline" }, { include: "#link-inet" }, { include: "#link-email" }, { include: "#image-ref" }, { include: "#link-ref-literal" }, { include: "#link-ref" }, { include: "#link-ref-shortcut" }, { include: "#strikethrough" }] }, bracket: { comment: "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.", match: "<(?![a-zA-Z/?\\$!])", name: "meta.other.valid-bracket.markdown" }, escape: { match: "\\\\[-`*_#+.!(){}\\[\\]\\\\>]", name: "constant.character.escape.markdown" }, fenced_code_block: { patterns: [{ include: "#fenced_code_block_css" }, { include: "#fenced_code_block_basic" }, { include: "#fenced_code_block_ini" }, { include: "#fenced_code_block_java" }, { include: "#fenced_code_block_lua" }, { include: "#fenced_code_block_makefile" }, { include: "#fenced_code_block_perl" }, { include: "#fenced_code_block_r" }, { include: "#fenced_code_block_ruby" }, { include: "#fenced_code_block_php" }, { include: "#fenced_code_block_sql" }, { include: "#fenced_code_block_vs_net" }, { include: "#fenced_code_block_xml" }, { include: "#fenced_code_block_xsl" }, { include: "#fenced_code_block_yaml" }, { include: "#fenced_code_block_dosbatch" }, { include: "#fenced_code_block_clojure" }, { include: "#fenced_code_block_coffee" }, { include: "#fenced_code_block_c" }, { include: "#fenced_code_block_cpp" }, { include: "#fenced_code_block_diff" }, { include: "#fenced_code_block_dockerfile" }, { include: "#fenced_code_block_git_commit" }, { include: "#fenced_code_block_git_rebase" }, { include: "#fenced_code_block_go" }, { include: "#fenced_code_block_groovy" }, { include: "#fenced_code_block_pug" }, { include: "#fenced_code_block_js" }, { include: "#fenced_code_block_js_regexp" }, { include: "#fenced_code_block_json" }, { include: "#fenced_code_block_jsonc" }, { include: "#fenced_code_block_less" }, { include: "#fenced_code_block_objc" }, { include: "#fenced_code_block_swift" }, { include: "#fenced_code_block_scss" }, { include: "#fenced_code_block_perl6" }, { include: "#fenced_code_block_powershell" }, { include: "#fenced_code_block_python" }, { include: "#fenced_code_block_julia" }, { include: "#fenced_code_block_regexp_python" }, { include: "#fenced_code_block_rust" }, { include: "#fenced_code_block_scala" }, { include: "#fenced_code_block_shell" }, { include: "#fenced_code_block_ts" }, { include: "#fenced_code_block_tsx" }, { include: "#fenced_code_block_csharp" }, { include: "#fenced_code_block_fsharp" }, { include: "#fenced_code_block_dart" }, { include: "#fenced_code_block_handlebars" }, { include: "#fenced_code_block_markdown" }, { include: "#fenced_code_block_log" }, { include: "#fenced_code_block_erlang" }, { include: "#fenced_code_block_elixir" }, { include: "#fenced_code_block_latex" }, { include: "#fenced_code_block_bibtex" }, { include: "#fenced_code_block_twig" }, { include: "#fenced_code_block_unknown" }] }, fenced_code_block_basic: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.html", patterns: [{ include: "text.html.basic" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_bibtex: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.bibtex", patterns: [{ include: "text.bibtex" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_c: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.c", patterns: [{ include: "source.c" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_clojure: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.clojure", patterns: [{ include: "source.clojure" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_coffee: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.coffee", patterns: [{ include: "source.coffee" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_cpp: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.cpp source.cpp", patterns: [{ include: "source.cpp" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_csharp: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.csharp", patterns: [{ include: "source.cs" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_css: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.css", patterns: [{ include: "source.css" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_dart: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.dart", patterns: [{ include: "source.dart" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_diff: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.diff", patterns: [{ include: "source.diff" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_dockerfile: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.dockerfile", patterns: [{ include: "source.dockerfile" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_dosbatch: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.dosbatch", patterns: [{ include: "source.batchfile" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_elixir: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.elixir", patterns: [{ include: "source.elixir" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_erlang: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.erlang", patterns: [{ include: "source.erlang" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_fsharp: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.fsharp", patterns: [{ include: "source.fsharp" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_git_commit: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.git_commit", patterns: [{ include: "text.git-commit" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_git_rebase: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.git_rebase", patterns: [{ include: "text.git-rebase" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_go: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.go", patterns: [{ include: "source.go" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_groovy: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.groovy", patterns: [{ include: "source.groovy" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_handlebars: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.handlebars", patterns: [{ include: "text.html.handlebars" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_ini: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.ini", patterns: [{ include: "source.ini" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_java: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.java", patterns: [{ include: "source.java" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_js: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.javascript", patterns: [{ include: "source.js" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_js_regexp: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.js_regexp", patterns: [{ include: "source.js.regexp" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_json: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.json", patterns: [{ include: "source.json" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_jsonc: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.jsonc", patterns: [{ include: "source.json.comments" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_julia: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.julia", patterns: [{ include: "source.julia" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_latex: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.latex", patterns: [{ include: "text.tex.latex" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_less: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.less", patterns: [{ include: "source.css.less" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_log: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.log", patterns: [{ include: "text.log" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_lua: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.lua", patterns: [{ include: "source.lua" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_makefile: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.makefile", patterns: [{ include: "source.makefile" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_markdown: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.markdown", patterns: [{ include: "text.html.markdown" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_objc: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.objc", patterns: [{ include: "source.objc" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_perl: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.perl", patterns: [{ include: "source.perl" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_perl6: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.perl6", patterns: [{ include: "source.perl.6" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_php: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.php", patterns: [{ include: "text.html.basic" }, { include: "source.php" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_powershell: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1|pwsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.powershell", patterns: [{ include: "source.powershell" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_pug: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.pug", patterns: [{ include: "text.pug" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_python: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.python", patterns: [{ include: "source.python" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_r: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.r", patterns: [{ include: "source.r" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_regexp_python: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.regexp_python", patterns: [{ include: "source.regexp.python" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_ruby: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.ruby", patterns: [{ include: "source.ruby" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_rust: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.rust", patterns: [{ include: "source.rust" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_scala: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.scala", patterns: [{ include: "source.scala" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_scss: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.scss", patterns: [{ include: "source.css.scss" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_shell: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.shellscript", patterns: [{ include: "source.shell" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_sql: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.sql", patterns: [{ include: "source.sql" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_swift: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.swift", patterns: [{ include: "source.swift" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_ts: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.typescript", patterns: [{ include: "source.ts" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_tsx: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.typescriptreact", patterns: [{ include: "source.tsx" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_twig: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(twig)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.twig", patterns: [{ include: "source.twig" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_unknown: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown" }, fenced_code_block_vs_net: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.vs_net", patterns: [{ include: "source.asp.vb.net" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_xml: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.xml", patterns: [{ include: "text.xml" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_xsl: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.xsl", patterns: [{ include: "text.xml.xsl" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, fenced_code_block_yaml: { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ begin: "(^|\\G)(\\s*)(.*)", contentName: "meta.embedded.block.yaml", patterns: [{ include: "source.yaml" }], while: "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" }] }, frontMatter: { begin: "\\A-{3}\\s*$", contentName: "meta.embedded.block.frontmatter", end: "(^|\\G)-{3}|\\.{3}\\s*$", patterns: [{ include: "source.yaml" }] }, heading: { captures: { 1: { patterns: [{ captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.6.markdown" }, { captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.5.markdown" }, { captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.4.markdown" }, { captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.3.markdown" }, { captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.2.markdown" }, { captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.1.markdown" }] } }, match: "(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$", name: "markup.heading.markdown" }, "heading-setext": { patterns: [{ match: "^(={3,})(?=[ \\t]*$\\n?)", name: "markup.heading.setext.1.markdown" }, { match: "^(-{3,})(?=[ \\t]*$\\n?)", name: "markup.heading.setext.2.markdown" }] }, html: { patterns: [{ begin: "(^|\\G)\\s*(<!--)", captures: { 1: { name: "punctuation.definition.comment.html" }, 2: { name: "punctuation.definition.comment.html" } }, end: "(-->)", name: "comment.block.html" }, { begin: "(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?</(script|style|pre)>))", end: "(?i)(.*)((</)(script|style|pre)(>))", endCaptures: { 1: { patterns: [{ include: "text.html.derivative" }] }, 2: { name: "meta.tag.structure.$4.end.html" }, 3: { name: "punctuation.definition.tag.begin.html" }, 4: { name: "entity.name.tag.html" }, 5: { name: "punctuation.definition.tag.end.html" } }, patterns: [{ begin: "(\\s*|$)", patterns: [{ include: "text.html.derivative" }], while: "(?i)^(?!.*</(script|style|pre)>)" }] }, { begin: "(?i)(^|\\G)\\s*(?=</?[a-zA-Z]+[^\\s/&gt;]*(\\s|$|/?>))", patterns: [{ include: "text.html.derivative" }], while: "^(?!\\s*$)" }, { begin: "(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|</[a-zA-Z0-9\\-]>)\\s*$)", patterns: [{ include: "text.html.derivative" }], while: "^(?!\\s*$)" }] }, "image-inline": { captures: { 1: { name: "punctuation.definition.link.description.begin.markdown" }, 2: { name: "string.other.link.description.markdown" }, 4: { name: "punctuation.definition.link.description.end.markdown" }, 5: { name: "punctuation.definition.metadata.markdown" }, 7: { name: "punctuation.definition.link.markdown" }, 8: { name: "markup.underline.link.image.markdown" }, 9: { name: "punctuation.definition.link.markdown" }, 10: { name: "markup.underline.link.image.markdown" }, 12: { name: "string.other.link.description.title.markdown" }, 13: { name: "punctuation.definition.string.begin.markdown" }, 14: { name: "punctuation.definition.string.end.markdown" }, 15: { name: "string.other.link.description.title.markdown" }, 16: { name: "punctuation.definition.string.begin.markdown" }, 17: { name: "punctuation.definition.string.end.markdown" }, 18: { name: "string.other.link.description.title.markdown" }, 19: { name: "punctuation.definition.string.begin.markdown" }, 20: { name: "punctuation.definition.string.end.markdown" }, 21: { name: "punctuation.definition.metadata.markdown" } }, match: `(?x)
46
+ (\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])
47
+
48
+ (\\()
49
+
50
+ [ \\t]*
51
+ (
52
+ (<)((?:\\\\[<>]|[^<>\\n])*)(>)
53
+ | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)
54
+ )
55
+ [ \\t]*
56
+ (?:
57
+ ((\\().+?(\\)))
58
+ | ((").+?("))
59
+ | ((').+?('))
60
+ )?
61
+ \\s*
62
+ (\\))
63
+ `, name: "meta.image.inline.markdown" }, "image-ref": { captures: { 1: { name: "punctuation.definition.link.description.begin.markdown" }, 2: { name: "string.other.link.description.markdown" }, 4: { name: "punctuation.definition.link.description.end.markdown" }, 5: { name: "punctuation.definition.constant.markdown" }, 6: { name: "constant.other.reference.link.markdown" }, 7: { name: "punctuation.definition.constant.markdown" } }, match: "(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])", name: "meta.image.reference.markdown" }, inline: { patterns: [{ include: "#ampersand" }, { include: "#bracket" }, { include: "#bold" }, { include: "#italic" }, { include: "#raw" }, { include: "#strikethrough" }, { include: "#escape" }, { include: "#image-inline" }, { include: "#image-ref" }, { include: "#link-email" }, { include: "#link-inet" }, { include: "#link-inline" }, { include: "#link-ref" }, { include: "#link-ref-literal" }, { include: "#link-ref-shortcut" }] }, italic: { begin: `(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S)
64
+ (?=
65
+ (
66
+ <[^>]*+>
67
+ | (?<raw>\`+)([^\`]|(?!(?<!\`)\\k<raw>(?!\`))\`)*+\\k<raw>
68
+
69
+ | \\\\[\\\\\`*_{}\\[\\]()#.!+\\->]?+
70
+ | \\[
71
+ (
72
+ (?<square>
73
+ [^\\[\\]\\\\]
74
+ | \\\\.
75
+ | \\[ \\g<square>*+ \\]
76
+ )*+
77
+ \\]
78
+ (
79
+ (
80
+ [ ]?
81
+ \\[[^\\]]*+\\]
82
+ )
83
+ | (
84
+ \\(
85
+ [ \\t]*+
86
+ <?(.*?)>?
87
+ [ \\t]*+
88
+ (
89
+ (?<title>['"])
90
+ (.*?)
91
+ \\k<title>
92
+ )?
93
+ \\)
94
+ )
95
+ )
96
+ )
97
+ | \\k<open>\\k<open>
98
+ | (?!(?<=\\S)\\k<open>).
99
+
100
+ )++
101
+ (?<=\\S)(?=_\\b|\\*)\\k<open>
102
+ )
103
+ `, captures: { 1: { name: "punctuation.definition.italic.markdown" } }, end: "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))", name: "markup.italic.markdown", patterns: [{ applyEndPatternLast: 1, begin: "(?=<[^>]*?>)", end: "(?<=>)", patterns: [{ include: "text.html.derivative" }] }, { include: "#escape" }, { include: "#ampersand" }, { include: "#bracket" }, { include: "#raw" }, { include: "#bold" }, { include: "#image-inline" }, { include: "#link-inline" }, { include: "#link-inet" }, { include: "#link-email" }, { include: "#image-ref" }, { include: "#link-ref-literal" }, { include: "#link-ref" }, { include: "#link-ref-shortcut" }, { include: "#strikethrough" }] }, "link-def": { captures: { 1: { name: "punctuation.definition.constant.markdown" }, 2: { name: "constant.other.reference.link.markdown" }, 3: { name: "punctuation.definition.constant.markdown" }, 4: { name: "punctuation.separator.key-value.markdown" }, 5: { name: "punctuation.definition.link.markdown" }, 6: { name: "markup.underline.link.markdown" }, 7: { name: "punctuation.definition.link.markdown" }, 8: { name: "markup.underline.link.markdown" }, 9: { name: "string.other.link.description.title.markdown" }, 10: { name: "punctuation.definition.string.begin.markdown" }, 11: { name: "punctuation.definition.string.end.markdown" }, 12: { name: "string.other.link.description.title.markdown" }, 13: { name: "punctuation.definition.string.begin.markdown" }, 14: { name: "punctuation.definition.string.end.markdown" }, 15: { name: "string.other.link.description.title.markdown" }, 16: { name: "punctuation.definition.string.begin.markdown" }, 17: { name: "punctuation.definition.string.end.markdown" } }, match: `(?x)
104
+ \\s*
105
+ (\\[)([^]]+?)(\\])(:)
106
+ [ \\t]*
107
+ (?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?))
108
+ [ \\t]*
109
+ (?:
110
+ ((\\().+?(\\)))
111
+ | ((").+?("))
112
+ | ((').+?('))
113
+ )?
114
+ \\s*
115
+ $
116
+ `, name: "meta.link.reference.def.markdown" }, "link-email": { captures: { 1: { name: "punctuation.definition.link.markdown" }, 2: { name: "markup.underline.link.markdown" }, 4: { name: "punctuation.definition.link.markdown" } }, match: "(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)", name: "meta.link.email.lt-gt.markdown" }, "link-inet": { captures: { 1: { name: "punctuation.definition.link.markdown" }, 2: { name: "markup.underline.link.markdown" }, 3: { name: "punctuation.definition.link.markdown" } }, match: "(<)((?:https?|ftp)://.*?)(>)", name: "meta.link.inet.markdown" }, "link-inline": { captures: { 1: { name: "punctuation.definition.link.title.begin.markdown" }, 2: { name: "string.other.link.title.markdown", patterns: [{ include: "#raw" }, { include: "#bold" }, { include: "#italic" }, { include: "#strikethrough" }, { include: "#image-inline" }] }, 4: { name: "punctuation.definition.link.title.end.markdown" }, 5: { name: "punctuation.definition.metadata.markdown" }, 7: { name: "punctuation.definition.link.markdown" }, 8: { name: "markup.underline.link.markdown" }, 9: { name: "punctuation.definition.link.markdown" }, 10: { name: "markup.underline.link.markdown" }, 12: { name: "string.other.link.description.title.markdown" }, 13: { name: "punctuation.definition.string.begin.markdown" }, 14: { name: "punctuation.definition.string.end.markdown" }, 15: { name: "string.other.link.description.title.markdown" }, 16: { name: "punctuation.definition.string.begin.markdown" }, 17: { name: "punctuation.definition.string.end.markdown" }, 18: { name: "string.other.link.description.title.markdown" }, 19: { name: "punctuation.definition.string.begin.markdown" }, 20: { name: "punctuation.definition.string.end.markdown" }, 21: { name: "punctuation.definition.metadata.markdown" } }, match: `(?x)
117
+ (\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])
118
+
119
+ (\\()
120
+
121
+ [ \\t]*
122
+ (
123
+ (<)((?:\\\\[<>]|[^<>\\n])*)(>)
124
+ | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)
125
+ )
126
+ [ \\t]*
127
+
128
+ (?:
129
+ ((\\()[^()]*(\\)))
130
+ | ((")[^"]*("))
131
+ | ((')[^']*('))
132
+ )?
133
+ \\s*
134
+ (\\))
135
+ `, name: "meta.link.inline.markdown" }, "link-ref": { captures: { 1: { name: "punctuation.definition.link.title.begin.markdown" }, 2: { name: "string.other.link.title.markdown", patterns: [{ include: "#raw" }, { include: "#bold" }, { include: "#italic" }, { include: "#strikethrough" }, { include: "#image-inline" }] }, 4: { name: "punctuation.definition.link.title.end.markdown" }, 5: { name: "punctuation.definition.constant.begin.markdown" }, 6: { name: "constant.other.reference.link.markdown" }, 7: { name: "punctuation.definition.constant.end.markdown" } }, match: "(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])", name: "meta.link.reference.markdown" }, "link-ref-literal": { captures: { 1: { name: "punctuation.definition.link.title.begin.markdown" }, 2: { name: "string.other.link.title.markdown" }, 4: { name: "punctuation.definition.link.title.end.markdown" }, 5: { name: "punctuation.definition.constant.begin.markdown" }, 6: { name: "punctuation.definition.constant.end.markdown" } }, match: "(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])", name: "meta.link.reference.literal.markdown" }, "link-ref-shortcut": { captures: { 1: { name: "punctuation.definition.link.title.begin.markdown" }, 2: { name: "string.other.link.title.markdown" }, 3: { name: "punctuation.definition.link.title.end.markdown" } }, match: "(?<![\\]\\\\])(\\[)((?:[^\\s\\[\\]\\\\]|\\\\[\\[\\]])+?)((?<!\\\\)\\])", name: "meta.link.reference.markdown" }, list_paragraph: { begin: "(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)", name: "meta.paragraph.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }, { include: "#heading-setext" }], while: "(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)" }, lists: { patterns: [{ begin: "(^|\\G)([ ]{0,3})([*+-])([ \\t])", beginCaptures: { 3: { name: "punctuation.definition.list.begin.markdown" } }, comment: "Currently does not support un-indented second lines.", name: "markup.list.unnumbered.markdown", patterns: [{ include: "#block" }, { include: "#list_paragraph" }], while: "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)" }, { begin: "(^|\\G)([ ]{0,3})([0-9]+[\\.\\)])([ \\t])", beginCaptures: { 3: { name: "punctuation.definition.list.begin.markdown" } }, name: "markup.list.numbered.markdown", patterns: [{ include: "#block" }, { include: "#list_paragraph" }], while: "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)" }] }, paragraph: { begin: "(^|\\G)[ ]{0,3}(?=[^ \\t\\n])", name: "meta.paragraph.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }, { include: "#heading-setext" }], while: "(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=[^ \\t\\n]))" }, raw: { captures: { 1: { name: "punctuation.definition.raw.markdown" }, 3: { name: "punctuation.definition.raw.markdown" } }, match: "(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)", name: "markup.inline.raw.string.markdown" }, raw_block: { begin: "(^|\\G)([ ]{4}|\\t)", name: "markup.raw.block.markdown", while: "(^|\\G)([ ]{4}|\\t)" }, separator: { match: "(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?", name: "meta.separator.markdown" }, strikethrough: { captures: { 1: { name: "punctuation.definition.strikethrough.markdown" }, 2: { patterns: [{ applyEndPatternLast: 1, begin: "(?=<[^>]*?>)", end: "(?<=>)", patterns: [{ include: "text.html.derivative" }] }, { include: "#escape" }, { include: "#ampersand" }, { include: "#bracket" }, { include: "#raw" }, { include: "#bold" }, { include: "#italic" }, { include: "#image-inline" }, { include: "#link-inline" }, { include: "#link-inet" }, { include: "#link-email" }, { include: "#image-ref" }, { include: "#link-ref-literal" }, { include: "#link-ref" }, { include: "#link-ref-shortcut" }] }, 3: { name: "punctuation.definition.strikethrough.markdown" } }, match: "(?<!\\\\)(~{2,})((?:[^~]|(?!(?<![~\\\\])\\1(?!~))~)*+)(\\1)", name: "markup.strikethrough.markdown" }, table: { begin: "(^|\\G)(\\|)(?=[^|].+\\|\\s*$)", beginCaptures: { 2: { name: "punctuation.definition.table.markdown" } }, name: "markup.table.markdown", patterns: [{ match: "\\|", name: "punctuation.definition.table.markdown" }, { captures: { 1: { name: "punctuation.separator.table.markdown" } }, match: "(?<=\\|)\\s*(:?-+:?)\\s*(?=\\|)" }, { captures: { 1: { patterns: [{ include: "#inline" }] } }, match: "(?<=\\|)\\s*(?=\\S)((\\\\\\||[^|])+)(?<=\\S)\\s*(?=\\|)" }], while: "(^|\\G)(?=\\|)" } }, scopeName: "text.html.markdown", embeddedLangs: [], aliases: ["md"], embeddedLangsLazy: ["css", "html", "ini", "java", "lua", "make", "perl", "r", "ruby", "php", "sql", "vb", "xml", "xsl", "yaml", "bat", "clojure", "coffee", "c", "cpp", "diff", "docker", "git-commit", "git-rebase", "go", "groovy", "pug", "javascript", "json", "jsonc", "less", "objective-c", "swift", "scss", "raku", "powershell", "python", "julia", "rust", "scala", "shellscript", "typescript", "tsx", "csharp", "fsharp", "dart", "handlebars", "log", "erlang", "elixir", "latex", "bibtex", "html-derivative"] });
136
+ var d = [
137
+ p
138
+ ];
139
+ const b = Object.freeze({ displayName: "Sass", fileTypes: ["sass"], foldingStartMarker: "/\\*|^#|^\\*|^\\b|*#?region|^\\.", foldingStopMarker: "\\*/|*#?endregion|^\\s*$", name: "sass", patterns: [{ begin: "^(\\s*)(/\\*)", end: "(\\*/)|^(?!\\s\\1)", name: "comment.block.sass", patterns: [{ include: "#comment-tag" }, { include: "#comment-param" }] }, { match: "^[\\t ]*/?//[\\t ]*[SRI][\\t ]*$", name: "keyword.other.sass.formatter.action" }, { begin: "^[\\t ]*//[\\t ]*(import)[\\t ]*(css-variables)[\\t ]*(from)", captures: { 1: { name: "keyword.control" }, 2: { name: "variable" }, 3: { name: "keyword.control" } }, end: "$\\n?", name: "comment.import.css.variables", patterns: [{ include: "#import-quotes" }] }, { include: "#double-slash" }, { include: "#double-quoted" }, { include: "#single-quoted" }, { include: "#interpolation" }, { include: "#curly-brackets" }, { include: "#placeholder-selector" }, { begin: "\\$[a-zA-Z0-9_-]+(?=:)", captures: { 0: { name: "variable.other.name" } }, end: "$\\n?|(?=\\)\\s\\)|\\)\\n)", name: "sass.script.maps", patterns: [{ include: "#double-slash" }, { include: "#double-quoted" }, { include: "#single-quoted" }, { include: "#interpolation" }, { include: "#variable" }, { include: "#rgb-value" }, { include: "#numeric" }, { include: "#unit" }, { include: "#flag" }, { include: "#comma" }, { include: "#function" }, { include: "#function-content" }, { include: "#operator" }, { include: "#reserved-words" }, { include: "#parent-selector" }, { include: "#property-value" }, { include: "#semicolon" }, { include: "#dotdotdot" }] }, { include: "#variable-root" }, { include: "#numeric" }, { include: "#unit" }, { include: "#flag" }, { include: "#comma" }, { include: "#semicolon" }, { include: "#dotdotdot" }, { begin: "@include|\\+(?!\\W|\\d)", captures: { 0: { name: "keyword.control.at-rule.css.sass" } }, end: "(?=\\n|\\()", name: "support.function.name.sass.library" }, { begin: "^(@use)", captures: { 0: { name: "keyword.control.at-rule.css.sass.use" } }, end: "(?=\\n)", name: "sass.use", patterns: [{ match: "as|with", name: "support.type.css.sass" }, { include: "#numeric" }, { include: "#unit" }, { include: "#variable-root" }, { include: "#rgb-value" }, { include: "#comma" }, { include: "#parenthesis-open" }, { include: "#parenthesis-close" }, { include: "#colon" }, { include: "#import-quotes" }] }, { begin: "^@import(.*?)( as.*)?$", captures: { 1: { name: "constant.character.css.sass" }, 2: { name: "invalid" } }, end: "(?=\\n)", name: "keyword.control.at-rule.use" }, { begin: "@mixin|^[\\t ]*=|@function", captures: { 0: { name: "keyword.control.at-rule.css.sass" } }, end: "$\\n?|(?=\\()", name: "support.function.name.sass", patterns: [{ match: "[\\w-]+", name: "entity.name.function" }] }, { begin: "@", end: "$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))", name: "keyword.control.at-rule.css.sass" }, { begin: "(?<!\\-|\\()\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|slot)\\b(?!-|\\)|:\\s)|&", end: "$\\n?|(?=\\s|,|\\(|\\)|\\.|\\#|\\[|>|-|_)", name: "entity.name.tag.css.sass.symbol", patterns: [{ include: "#interpolation" }, { include: "#pseudo-class" }] }, { begin: "#", end: "$\\n?|(?=\\s|,|\\(|\\)|\\.|\\[|>)", name: "entity.other.attribute-name.id.css.sass", patterns: [{ include: "#interpolation" }, { include: "#pseudo-class" }] }, { begin: "\\.|(?<=&)(-|_)", end: "$\\n?|(?=\\s|,|\\(|\\)|\\[|>)", name: "entity.other.attribute-name.class.css.sass", patterns: [{ include: "#interpolation" }, { include: "#pseudo-class" }] }, { begin: "\\[", end: "\\]", name: "entity.other.attribute-selector.sass", patterns: [{ include: "#double-quoted" }, { include: "#single-quoted" }, { match: "\\^|\\$|\\*|~", name: "keyword.other.regex.sass" }] }, { match: `^((?<=\\]|\\)|not\\(|\\*|>|>\\s)|
140
+ *):[a-z:-]+|(::|:-)[a-z:-]+`, name: "entity.other.attribute-name.pseudo-class.css.sass" }, { include: "#module" }, { match: "[\\w-]*\\(", name: "entity.name.function" }, { match: "\\)", name: "entity.name.function.close" }, { begin: ":", end: "$\\n?|(?=\\s\\(|and\\(|\\),)", name: "meta.property-list.css.sass.prop", patterns: [{ match: "(?<=:)[a-z-]+\\s", name: "support.type.property-name.css.sass.prop.name" }, { include: "#double-slash" }, { include: "#double-quoted" }, { include: "#single-quoted" }, { include: "#interpolation" }, { include: "#curly-brackets" }, { include: "#variable" }, { include: "#rgb-value" }, { include: "#numeric" }, { include: "#unit" }, { include: "#module" }, { match: "--.+?(?=\\))", name: "variable.css" }, { match: "[\\w-]*\\(", name: "entity.name.function" }, { match: "\\)", name: "entity.name.function.close" }, { include: "#flag" }, { include: "#comma" }, { include: "#semicolon" }, { include: "#function" }, { include: "#function-content" }, { include: "#operator" }, { include: "#parent-selector" }, { include: "#property-value" }] }, { include: "#rgb-value" }, { include: "#function" }, { include: "#function-content" }, { begin: "(?<=})(?!\\n|\\(|\\)|[a-zA-Z0-9_-]+:)", end: "\\s|(?=,|\\.|\\[|\\)|\\n)", name: "entity.name.tag.css.sass", patterns: [{ include: "#interpolation" }, { include: "#pseudo-class" }] }, { include: "#operator" }, { match: "[a-z-]+((?=:|#{))", name: "support.type.property-name.css.sass.prop.name" }, { include: "#reserved-words" }, { include: "#property-value" }], repository: { colon: { match: ":", name: "meta.property-list.css.sass.colon" }, comma: { match: "\\band\\b|\\bor\\b|,", name: "comment.punctuation.comma.sass" }, "comment-param": { match: "\\@(\\w+)", name: "storage.type.class.jsdoc" }, "comment-tag": { begin: "(?<={{)", end: "(?=}})", name: "comment.tag.sass" }, "curly-brackets": { match: "{|}", name: "invalid" }, dotdotdot: { match: "\\.\\.\\.", name: "variable.other" }, "double-quoted": { begin: '"', end: '"', name: "string.quoted.double.css.sass", patterns: [{ include: "#quoted-interpolation" }] }, "double-slash": { begin: "//", end: "$\\n?", name: "comment.line.sass", patterns: [{ include: "#comment-tag" }] }, flag: { match: "!(important|default|optional|global)", name: "keyword.other.important.css.sass" }, function: { match: "(?<=[\\s|\\(|,|:])(?!url|format|attr)[a-zA-Z0-9_-][\\w-]*(?=\\()", name: "support.function.name.sass" }, "function-content": { begin: "(?<=url\\(|format\\(|attr\\()", end: ".(?=\\))", name: "string.quoted.double.css.sass" }, "import-quotes": { match: `["']?\\.{0,2}[\\w/]+["']?`, name: "constant.character.css.sass" }, interpolation: { begin: "#{", end: "}", name: "support.function.interpolation.sass", patterns: [{ include: "#variable" }, { include: "#numeric" }, { include: "#operator" }, { include: "#unit" }, { include: "#comma" }, { include: "#double-quoted" }, { include: "#single-quoted" }] }, module: { captures: { 1: { name: "constant.character.module.name" }, 2: { name: "constant.numeric.module.dot" } }, match: "([\\w-]+?)(\\.)", name: "constant.character.module" }, numeric: { match: "(-|\\.)?[0-9]+(\\.[0-9]+)?", name: "constant.numeric.css.sass" }, operator: { match: "\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~", name: "keyword.operator.sass" }, "parent-selector": { match: "&", name: "entity.name.tag.css.sass" }, "parenthesis-close": { match: "\\)", name: "entity.name.function.parenthesis.close" }, "parenthesis-open": { match: "\\(", name: "entity.name.function.parenthesis.open" }, "placeholder-selector": { begin: "(?<!\\d)%(?!\\d)", end: "$\\n?|\\s", name: "entity.other.inherited-class.placeholder-selector.css.sass" }, "property-value": { match: "[a-zA-Z0-9_-]+", name: "meta.property-value.css.sass support.constant.property-value.css.sass" }, "pseudo-class": { match: ":[a-z:-]+", name: "entity.other.attribute-name.pseudo-class.css.sass" }, "quoted-interpolation": { begin: "#{", end: "}", name: "support.function.interpolation.sass", patterns: [{ include: "#variable" }, { include: "#numeric" }, { include: "#operator" }, { include: "#unit" }, { include: "#comma" }] }, "reserved-words": { match: "\\b(false|from|in|not|null|through|to|true)\\b", name: "support.type.property-name.css.sass" }, "rgb-value": { match: "(#)([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b", name: "constant.language.color.rgb-value.css.sass" }, semicolon: { match: ";", name: "invalid" }, "single-quoted": { begin: "'", end: "'", name: "string.quoted.single.css.sass", patterns: [{ include: "#quoted-interpolation" }] }, unit: { match: "(?<=[\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|fr|%)", name: "keyword.control.unit.css.sass" }, variable: { match: "\\$[a-zA-Z0-9_-]+", name: "variable.other.value" }, "variable-root": { match: "\\$[a-zA-Z0-9_-]+", name: "variable.other.root" } }, scopeName: "source.sass" });
141
+ var s = [
142
+ b
143
+ ];
144
+ const g = Object.freeze({ displayName: "SCSS", name: "scss", patterns: [{ include: "#variable_setting" }, { include: "#at_rule_forward" }, { include: "#at_rule_use" }, { include: "#at_rule_include" }, { include: "#at_rule_import" }, { include: "#general" }, { include: "#flow_control" }, { include: "#rules" }, { include: "#property_list" }, { include: "#at_rule_mixin" }, { include: "#at_rule_media" }, { include: "#at_rule_function" }, { include: "#at_rule_charset" }, { include: "#at_rule_option" }, { include: "#at_rule_namespace" }, { include: "#at_rule_fontface" }, { include: "#at_rule_page" }, { include: "#at_rule_keyframes" }, { include: "#at_rule_at_root" }, { include: "#at_rule_supports" }, { match: ";", name: "punctuation.terminator.rule.css" }], repository: { at_rule_at_root: { begin: "\\s*((@)(at-root))(\\s+|$)", beginCaptures: { 1: { name: "keyword.control.at-rule.at-root.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?={)", name: "meta.at-rule.at-root.scss", patterns: [{ include: "#function_attributes" }, { include: "#functions" }, { include: "#selectors" }] }, at_rule_charset: { begin: "\\s*((@)charset\\b)\\s*", captures: { 1: { name: "keyword.control.at-rule.charset.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*((?=;|$))", name: "meta.at-rule.charset.scss", patterns: [{ include: "#variable" }, { include: "#string_single" }, { include: "#string_double" }] }, at_rule_content: { begin: "\\s*((@)content\\b)\\s*", captures: { 1: { name: "keyword.control.content.scss" } }, end: "\\s*((?=;))", name: "meta.content.scss", patterns: [{ include: "#variable" }, { include: "#selectors" }, { include: "#property_values" }] }, at_rule_each: { begin: "\\s*((@)each\\b)\\s*", captures: { 1: { name: "keyword.control.each.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*((?=}))", name: "meta.at-rule.each.scss", patterns: [{ match: "\\b(in|,)\\b", name: "keyword.control.operator" }, { include: "#variable" }, { include: "#property_values" }, { include: "$self" }] }, at_rule_else: { begin: "\\s*((@)else(\\s*(if)?))\\s*", captures: { 1: { name: "keyword.control.else.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?={)", name: "meta.at-rule.else.scss", patterns: [{ include: "#conditional_operators" }, { include: "#variable" }, { include: "#property_values" }] }, at_rule_extend: { begin: "\\s*((@)extend\\b)\\s*", captures: { 1: { name: "keyword.control.at-rule.extend.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?=;)", name: "meta.at-rule.extend.scss", patterns: [{ include: "#variable" }, { include: "#selectors" }, { include: "#property_values" }] }, at_rule_fontface: { patterns: [{ begin: "^\\s*((@)font-face\\b)", beginCaptures: { 1: { name: "keyword.control.at-rule.fontface.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?={)", name: "meta.at-rule.fontface.scss", patterns: [{ include: "#function_attributes" }] }] }, at_rule_for: { begin: "\\s*((@)for\\b)\\s*", captures: { 1: { name: "keyword.control.for.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?={)", name: "meta.at-rule.for.scss", patterns: [{ match: "(==|!=|<=|>=|<|>|from|to|through)", name: "keyword.control.operator" }, { include: "#variable" }, { include: "#property_values" }, { include: "$self" }] }, at_rule_forward: { begin: "\\s*((@)forward\\b)\\s*", captures: { 1: { name: "keyword.control.at-rule.forward.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?=;)", name: "meta.at-rule.forward.scss", patterns: [{ match: "\\b(as|hide|show)\\b", name: "keyword.control.operator" }, { captures: { 1: { name: "entity.other.attribute-name.module.scss" }, 2: { name: "punctuation.definition.wildcard.scss" } }, match: "\\b([\\w-]+)(\\*)" }, { match: "\\b[\\w-]+\\b", name: "entity.name.function.scss" }, { include: "#variable" }, { include: "#string_single" }, { include: "#string_double" }, { include: "#comment_line" }, { include: "#comment_block" }] }, at_rule_function: { patterns: [{ begin: "\\s*((@)function\\b)\\s*", captures: { 1: { name: "keyword.control.at-rule.function.scss" }, 2: { name: "punctuation.definition.keyword.scss" }, 3: { name: "entity.name.function.scss" } }, end: "\\s*(?={)", name: "meta.at-rule.function.scss", patterns: [{ include: "#function_attributes" }] }, { captures: { 1: { name: "keyword.control.at-rule.function.scss" }, 2: { name: "punctuation.definition.keyword.scss" }, 3: { name: "entity.name.function.scss" } }, match: "\\s*((@)function\\b)\\s*", name: "meta.at-rule.function.scss" }] }, at_rule_if: { begin: "\\s*((@)if\\b)\\s*", captures: { 1: { name: "keyword.control.if.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?={)", name: "meta.at-rule.if.scss", patterns: [{ include: "#conditional_operators" }, { include: "#variable" }, { include: "#property_values" }] }, at_rule_import: { begin: "\\s*((@)import\\b)\\s*", captures: { 1: { name: "keyword.control.at-rule.import.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*((?=;)|(?=}))", name: "meta.at-rule.import.scss", patterns: [{ include: "#variable" }, { include: "#string_single" }, { include: "#string_double" }, { include: "#functions" }, { include: "#comment_line" }] }, at_rule_include: { patterns: [{ begin: "(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)\\s*(\\()", beginCaptures: { 1: { name: "variable.scss" }, 2: { name: "punctuation.access.module.scss" }, 3: { name: "entity.name.function.scss" }, 4: { name: "punctuation.definition.parameters.begin.bracket.round.scss" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.parameters.end.bracket.round.scss" } }, name: "meta.at-rule.include.scss", patterns: [{ include: "#function_attributes" }] }, { captures: { 0: { name: "meta.at-rule.include.scss" }, 1: { name: "variable.scss" }, 2: { name: "punctuation.access.module.scss" }, 3: { name: "entity.name.function.scss" } }, match: "(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)" }, { captures: { 0: { name: "meta.at-rule.include.scss" }, 1: { name: "keyword.control.at-rule.include.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, match: "((@)include)\\b" }] }, at_rule_keyframes: { begin: "(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b", beginCaptures: { 0: { name: "keyword.control.at-rule.keyframes.scss" }, 1: { name: "punctuation.definition.keyword.scss" } }, end: "(?<=})", name: "meta.at-rule.keyframes.scss", patterns: [{ captures: { 1: { name: "entity.name.function.scss" } }, match: "(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)" }, { begin: '(?<=@keyframes)\\s+(")', beginCaptures: { 1: { name: "punctuation.definition.string.begin.scss" } }, contentName: "entity.name.function.scss", end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.scss" } }, name: "string.quoted.double.scss", patterns: [{ match: "\\\\(\\h{1,6}|.)", name: "constant.character.escape.scss" }, { include: "#interpolation" }] }, { begin: "(?<=@keyframes)\\s+(')", beginCaptures: { 1: { name: "punctuation.definition.string.begin.scss" } }, contentName: "entity.name.function.scss", end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.scss" } }, name: "string.quoted.single.scss", patterns: [{ match: "\\\\(\\h{1,6}|.)", name: "constant.character.escape.scss" }, { include: "#interpolation" }] }, { begin: "{", beginCaptures: { 0: { name: "punctuation.section.keyframes.begin.scss" } }, end: "}", endCaptures: { 0: { name: "punctuation.section.keyframes.end.scss" } }, patterns: [{ match: "\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)", name: "entity.other.attribute-name.scss" }, { include: "#flow_control" }, { include: "#interpolation" }, { include: "#property_list" }, { include: "#rules" }] }] }, at_rule_media: { patterns: [{ begin: "^\\s*((@)media)\\b", beginCaptures: { 1: { name: "keyword.control.at-rule.media.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?={)", name: "meta.at-rule.media.scss", patterns: [{ include: "#comment_docblock" }, { include: "#comment_block" }, { include: "#comment_line" }, { match: "\\b(only)\\b", name: "keyword.control.operator.css.scss" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.media-query.begin.bracket.round.scss" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.media-query.end.bracket.round.scss" } }, name: "meta.property-list.media-query.scss", patterns: [{ begin: "(?<![-a-z])(?=[-a-z])", end: "$|(?![-a-z])", name: "meta.property-name.media-query.scss", patterns: [{ include: "source.css#media-features" }, { include: "source.css#property-names" }] }, { begin: "(:)\\s*(?!(\\s*{))", beginCaptures: { 1: { name: "punctuation.separator.key-value.scss" } }, contentName: "meta.property-value.media-query.scss", end: "\\s*(;|(?=}|\\)))", endCaptures: { 1: { name: "punctuation.terminator.rule.scss" } }, patterns: [{ include: "#general" }, { include: "#property_values" }] }] }, { include: "#variable" }, { include: "#conditional_operators" }, { include: "source.css#media-types" }] }] }, at_rule_mixin: { patterns: [{ begin: "(?<=@mixin)\\s+([\\w-]+)\\s*(\\()", beginCaptures: { 1: { name: "entity.name.function.scss" }, 2: { name: "punctuation.definition.parameters.begin.bracket.round.scss" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.parameters.end.bracket.round.scss" } }, name: "meta.at-rule.mixin.scss", patterns: [{ include: "#function_attributes" }] }, { captures: { 1: { name: "entity.name.function.scss" } }, match: "(?<=@mixin)\\s+([\\w-]+)", name: "meta.at-rule.mixin.scss" }, { captures: { 1: { name: "keyword.control.at-rule.mixin.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, match: "((@)mixin)\\b", name: "meta.at-rule.mixin.scss" }] }, at_rule_namespace: { patterns: [{ begin: "(?<=@namespace)\\s+(?=url)", end: "(?=;|$)", name: "meta.at-rule.namespace.scss", patterns: [{ include: "#property_values" }, { include: "#string_single" }, { include: "#string_double" }] }, { begin: "(?<=@namespace)\\s+([\\w-]*)", captures: { 1: { name: "entity.name.namespace-prefix.scss" } }, end: "(?=;|$)", name: "meta.at-rule.namespace.scss", patterns: [{ include: "#variables" }, { include: "#property_values" }, { include: "#string_single" }, { include: "#string_double" }] }, { captures: { 1: { name: "keyword.control.at-rule.namespace.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, match: "((@)namespace)\\b", name: "meta.at-rule.namespace.scss" }] }, at_rule_option: { captures: { 1: { name: "keyword.control.at-rule.charset.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, match: "^\\s*((@)option\\b)\\s*", name: "meta.at-rule.option.scss" }, at_rule_page: { patterns: [{ begin: "^\\s*((@)page)(?=:|\\s)\\s*([-:\\w]*)", captures: { 1: { name: "keyword.control.at-rule.page.scss" }, 2: { name: "punctuation.definition.keyword.scss" }, 3: { name: "entity.name.function.scss" } }, end: "\\s*(?={)", name: "meta.at-rule.page.scss" }] }, at_rule_return: { begin: "\\s*((@)(return)\\b)", captures: { 1: { name: "keyword.control.return.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*((?=;))", name: "meta.at-rule.return.scss", patterns: [{ include: "#variable" }, { include: "#property_values" }] }, at_rule_supports: { begin: "(?<=^|\\s)(@)supports\\b", captures: { 0: { name: "keyword.control.at-rule.supports.scss" }, 1: { name: "punctuation.definition.keyword.scss" } }, end: "(?={)|$", name: "meta.at-rule.supports.scss", patterns: [{ include: "#logical_operators" }, { include: "#properties" }, { match: "\\(", name: "punctuation.definition.condition.begin.bracket.round.scss" }, { match: "\\)", name: "punctuation.definition.condition.end.bracket.round.scss" }] }, at_rule_use: { begin: "\\s*((@)use\\b)\\s*", captures: { 1: { name: "keyword.control.at-rule.use.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?=;)", name: "meta.at-rule.use.scss", patterns: [{ match: "\\b(as|with)\\b", name: "keyword.control.operator" }, { match: "\\b[\\w-]+\\b", name: "variable.scss" }, { match: "\\*", name: "variable.language.expanded-namespace.scss" }, { include: "#string_single" }, { include: "#string_double" }, { include: "#comment_line" }, { include: "#comment_block" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.parameters.begin.bracket.round.scss" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.parameters.end.bracket.round.scss" } }, patterns: [{ include: "#function_attributes" }] }] }, at_rule_warn: { begin: "\\s*((@)(warn|debug|error)\\b)\\s*", captures: { 1: { name: "keyword.control.warn.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?=;)", name: "meta.at-rule.warn.scss", patterns: [{ include: "#variable" }, { include: "#string_double" }, { include: "#string_single" }] }, at_rule_while: { begin: "\\s*((@)while\\b)\\s*", captures: { 1: { name: "keyword.control.while.scss" }, 2: { name: "punctuation.definition.keyword.scss" } }, end: "\\s*(?=})", name: "meta.at-rule.while.scss", patterns: [{ include: "#conditional_operators" }, { include: "#variable" }, { include: "#property_values" }, { include: "$self" }] }, comment_block: { begin: "/\\*", beginCaptures: { 0: { name: "punctuation.definition.comment.scss" } }, end: "\\*/", endCaptures: { 0: { name: "punctuation.definition.comment.scss" } }, name: "comment.block.scss" }, comment_docblock: { begin: "///", beginCaptures: { 0: { name: "punctuation.definition.comment.scss" } }, end: "(?=$)", name: "comment.block.documentation.scss", patterns: [{ include: "source.sassdoc" }] }, comment_line: { begin: "//", beginCaptures: { 0: { name: "punctuation.definition.comment.scss" } }, end: "\\n", name: "comment.line.scss" }, comparison_operators: { match: "==|!=|<=|>=|<|>", name: "keyword.operator.comparison.scss" }, conditional_operators: { patterns: [{ include: "#comparison_operators" }, { include: "#logical_operators" }] }, constant_default: { match: "!default", name: "keyword.other.default.scss" }, constant_functions: { begin: "(?:([\\w-]+)(\\.))?([\\w-]+)(\\()", beginCaptures: { 1: { name: "variable.scss" }, 2: { name: "punctuation.access.module.scss" }, 3: { name: "support.function.misc.scss" }, 4: { name: "punctuation.section.function.scss" } }, end: "(\\))", endCaptures: { 1: { name: "punctuation.section.function.scss" } }, patterns: [{ include: "#parameters" }] }, constant_important: { match: "!important", name: "keyword.other.important.scss" }, constant_mathematical_symbols: { match: "\\b(\\+|-|\\*|/)\\b", name: "support.constant.mathematical-symbols.scss" }, constant_optional: { match: "!optional", name: "keyword.other.optional.scss" }, constant_sass_functions: { begin: "(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))(\\()", beginCaptures: { 1: { name: "support.function.misc.scss" }, 2: { name: "punctuation.section.function.scss" } }, end: "(\\))", endCaptures: { 1: { name: "punctuation.section.function.scss" } }, patterns: [{ include: "#parameters" }] }, flow_control: { patterns: [{ include: "#at_rule_if" }, { include: "#at_rule_else" }, { include: "#at_rule_warn" }, { include: "#at_rule_for" }, { include: "#at_rule_while" }, { include: "#at_rule_each" }, { include: "#at_rule_return" }] }, function_attributes: { patterns: [{ match: ":", name: "punctuation.separator.key-value.scss" }, { include: "#general" }, { include: "#property_values" }, { match: "[={}\\?;@]", name: "invalid.illegal.scss" }] }, functions: { patterns: [{ begin: "([\\w-]{1,})(\\()\\s*", beginCaptures: { 1: { name: "support.function.misc.scss" }, 2: { name: "punctuation.section.function.scss" } }, end: "(\\))", endCaptures: { 1: { name: "punctuation.section.function.scss" } }, patterns: [{ include: "#parameters" }] }, { match: "([\\w-]{1,})", name: "support.function.misc.scss" }] }, general: { patterns: [{ include: "#variable" }, { include: "#comment_docblock" }, { include: "#comment_block" }, { include: "#comment_line" }] }, interpolation: { begin: "#{", beginCaptures: { 0: { name: "punctuation.definition.interpolation.begin.bracket.curly.scss" } }, end: "}", endCaptures: { 0: { name: "punctuation.definition.interpolation.end.bracket.curly.scss" } }, name: "variable.interpolation.scss", patterns: [{ include: "#variable" }, { include: "#property_values" }] }, logical_operators: { match: "\\b(not|or|and)\\b", name: "keyword.operator.logical.scss" }, map: { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.map.begin.bracket.round.scss" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.map.end.bracket.round.scss" } }, name: "meta.definition.variable.map.scss", patterns: [{ include: "#comment_docblock" }, { include: "#comment_block" }, { include: "#comment_line" }, { captures: { 1: { name: "support.type.map.key.scss" }, 2: { name: "punctuation.separator.key-value.scss" } }, match: "\\b([\\w-]+)\\s*(:)" }, { match: ",", name: "punctuation.separator.delimiter.scss" }, { include: "#map" }, { include: "#variable" }, { include: "#property_values" }] }, operators: { match: "[-+*/](?!\\s*[-+*/])", name: "keyword.operator.css" }, parameters: { patterns: [{ include: "#variable" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.begin.bracket.round.scss" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.end.bracket.round.scss" } }, patterns: [{ include: "#function_attributes" }] }, { include: "#property_values" }, { include: "#comment_block" }, { match: `[^'",) \\t]+`, name: "variable.parameter.url.scss" }, { match: ",", name: "punctuation.separator.delimiter.scss" }] }, parent_selector_suffix: { captures: { 1: { name: "punctuation.definition.entity.css" }, 2: { patterns: [{ include: "#interpolation" }, { match: "\\\\([0-9a-fA-F]{1,6}|.)", name: "constant.character.escape.scss" }, { match: "\\$|}", name: "invalid.illegal.identifier.scss" }] } }, match: `(?x)
145
+ (?<=&)
146
+ (
147
+ (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F]
148
+ | \\\\(?:[0-9a-fA-F]{1,6}|.)
149
+ | \\#\\{
150
+ | \\$
151
+ | }
152
+ )+
153
+ )
154
+ (?= $
155
+ | [\\s,.\\#)\\[:{>+~|]
156
+ | /\\*
157
+ )`, name: "entity.other.attribute-name.parent-selector-suffix.css" }, properties: { patterns: [{ begin: "(?<![-a-z])(?=[-a-z])", end: "$|(?![-a-z])", name: "meta.property-name.scss", patterns: [{ include: "source.css#property-names" }, { include: "#at_rule_include" }] }, { begin: "(:)\\s*(?!(\\s*{))", beginCaptures: { 1: { name: "punctuation.separator.key-value.scss" } }, contentName: "meta.property-value.scss", end: "\\s*(;|(?=}|\\)))", endCaptures: { 1: { name: "punctuation.terminator.rule.scss" } }, patterns: [{ include: "#general" }, { include: "#property_values" }] }] }, property_list: { begin: "{", beginCaptures: { 0: { name: "punctuation.section.property-list.begin.bracket.curly.scss" } }, end: "}", endCaptures: { 0: { name: "punctuation.section.property-list.end.bracket.curly.scss" } }, name: "meta.property-list.scss", patterns: [{ include: "#flow_control" }, { include: "#rules" }, { include: "#properties" }, { include: "$self" }] }, property_values: { patterns: [{ include: "#string_single" }, { include: "#string_double" }, { include: "#constant_functions" }, { include: "#constant_sass_functions" }, { include: "#constant_important" }, { include: "#constant_default" }, { include: "#constant_optional" }, { include: "source.css#numeric-values" }, { include: "source.css#property-keywords" }, { include: "source.css#color-keywords" }, { include: "source.css#property-names" }, { include: "#constant_mathematical_symbols" }, { include: "#operators" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.begin.bracket.round.scss" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.end.bracket.round.scss" } }, patterns: [{ include: "#general" }, { include: "#property_values" }] }] }, rules: { patterns: [{ include: "#general" }, { include: "#at_rule_extend" }, { include: "#at_rule_content" }, { include: "#at_rule_include" }, { include: "#at_rule_media" }, { include: "#selectors" }] }, selector_attribute: { captures: { 1: { name: "punctuation.definition.attribute-selector.begin.bracket.square.scss" }, 2: { name: "entity.other.attribute-name.attribute.scss", patterns: [{ include: "#interpolation" }, { match: "\\\\([0-9a-fA-F]{1,6}|.)", name: "constant.character.escape.scss" }, { match: "\\$|}", name: "invalid.illegal.scss" }] }, 3: { name: "keyword.operator.scss" }, 4: { name: "string.unquoted.attribute-value.scss", patterns: [{ include: "#interpolation" }, { match: "\\\\([0-9a-fA-F]{1,6}|.)", name: "constant.character.escape.scss" }, { match: "\\$|}", name: "invalid.illegal.scss" }] }, 5: { name: "string.quoted.double.attribute-value.scss" }, 6: { name: "punctuation.definition.string.begin.scss" }, 7: { patterns: [{ include: "#interpolation" }, { match: "\\\\([0-9a-fA-F]{1,6}|.)", name: "constant.character.escape.scss" }, { match: "\\$|}", name: "invalid.illegal.scss" }] }, 8: { name: "punctuation.definition.string.end.scss" }, 9: { name: "string.quoted.single.attribute-value.scss" }, 10: { name: "punctuation.definition.string.begin.scss" }, 11: { patterns: [{ include: "#interpolation" }, { match: "\\\\([0-9a-fA-F]{1,6}|.)", name: "constant.character.escape.scss" }, { match: "\\$|}", name: "invalid.illegal.scss" }] }, 12: { name: "punctuation.definition.string.end.scss" }, 13: { name: "punctuation.definition.attribute-selector.end.bracket.square.scss" } }, match: `(?xi)
158
+ (\\[)
159
+ \\s*
160
+ (
161
+ (?:
162
+ [-a-zA-Z_0-9]|[^\\x00-\\x7F]
163
+ | \\\\(?:[0-9a-fA-F]{1,6}|.)
164
+ | \\#\\{
165
+ | \\.?\\$
166
+ | }
167
+ )+?
168
+ )
169
+ (?:
170
+ \\s*([~|^$*]?=)\\s*
171
+ (?:
172
+ (
173
+ (?:
174
+ [-a-zA-Z_0-9]|[^\\x00-\\x7F]
175
+ | \\\\(?:[0-9a-fA-F]{1,6}|.)
176
+ | \\#\\{
177
+ | \\.?\\$
178
+ | }
179
+ )+
180
+ )
181
+ |
182
+ ((")(.*?)("))
183
+ |
184
+ ((')(.*?)('))
185
+ )
186
+ )?
187
+ \\s*
188
+ (\\])`, name: "meta.attribute-selector.scss" }, selector_class: { captures: { 1: { name: "punctuation.definition.entity.css" }, 2: { patterns: [{ include: "#interpolation" }, { match: "\\\\([0-9a-fA-F]{1,6}|.)", name: "constant.character.escape.scss" }, { match: "\\$|}", name: "invalid.illegal.scss" }] } }, match: `(?x)
189
+ (\\.)
190
+ (
191
+ (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F]
192
+ | \\\\(?:[0-9a-fA-F]{1,6}|.)
193
+ | \\#\\{
194
+ | \\.?\\$
195
+ | }
196
+ )+
197
+ )
198
+ (?= $
199
+ | [\\s,\\#)\\[:{>+~|]
200
+ | \\.[^$]
201
+ | /\\*
202
+ | ;
203
+ )`, name: "entity.other.attribute-name.class.css" }, selector_custom: { match: "\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)", name: "entity.name.tag.custom.scss" }, selector_id: { captures: { 1: { name: "punctuation.definition.entity.css" }, 2: { patterns: [{ include: "#interpolation" }, { match: "\\\\([0-9a-fA-F]{1,6}|.)", name: "constant.character.escape.scss" }, { match: "\\$|}", name: "invalid.illegal.identifier.scss" }] } }, match: `(?x)
204
+ (\\#)
205
+ (
206
+ (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F]
207
+ | \\\\(?:[0-9a-fA-F]{1,6}|.)
208
+ | \\#\\{
209
+ | \\.?\\$
210
+ | }
211
+ )+
212
+ )
213
+ (?= $
214
+ | [\\s,\\#)\\[:{>+~|]
215
+ | \\.[^$]
216
+ | /\\*
217
+ )`, name: "entity.other.attribute-name.id.css" }, selector_placeholder: { captures: { 1: { name: "punctuation.definition.entity.css" }, 2: { patterns: [{ include: "#interpolation" }, { match: "\\\\([0-9a-fA-F]{1,6}|.)", name: "constant.character.escape.scss" }, { match: "\\$|}", name: "invalid.illegal.identifier.scss" }] } }, match: `(?x)
218
+ (%)
219
+ (
220
+ (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F]
221
+ | \\\\(?:[0-9a-fA-F]{1,6}|.)
222
+ | \\#\\{
223
+ | \\.\\$
224
+ | \\$
225
+ | }
226
+ )+
227
+ )
228
+ (?= ;
229
+ | $
230
+ | [\\s,\\#)\\[:{>+~|]
231
+ | \\.[^$]
232
+ | /\\*
233
+ )`, name: "entity.other.attribute-name.placeholder.css" }, selector_pseudo_class: { patterns: [{ begin: "((:)\\bnth-(?:child|last-child|of-type|last-of-type))(\\()", beginCaptures: { 1: { name: "entity.other.attribute-name.pseudo-class.css" }, 2: { name: "punctuation.definition.entity.css" }, 3: { name: "punctuation.definition.pseudo-class.begin.bracket.round.css" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.pseudo-class.end.bracket.round.css" } }, patterns: [{ include: "#interpolation" }, { match: "\\d+", name: "constant.numeric.css" }, { match: "(?<=\\d)n\\b|\\b(n|even|odd)\\b", name: "constant.other.scss" }, { match: "\\w+", name: "invalid.illegal.scss" }] }, { include: "source.css#pseudo-classes" }, { include: "source.css#pseudo-elements" }, { include: "source.css#functional-pseudo-classes" }] }, selectors: { patterns: [{ include: "source.css#tag-names" }, { include: "#selector_custom" }, { include: "#selector_class" }, { include: "#selector_id" }, { include: "#selector_pseudo_class" }, { include: "#tag_wildcard" }, { include: "#tag_parent_reference" }, { include: "source.css#pseudo-elements" }, { include: "#selector_attribute" }, { include: "#selector_placeholder" }, { include: "#parent_selector_suffix" }] }, string_double: { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.scss" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.scss" } }, name: "string.quoted.double.scss", patterns: [{ match: "\\\\(\\h{1,6}|.)", name: "constant.character.escape.scss" }, { include: "#interpolation" }] }, string_single: { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.scss" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.scss" } }, name: "string.quoted.single.scss", patterns: [{ match: "\\\\(\\h{1,6}|.)", name: "constant.character.escape.scss" }, { include: "#interpolation" }] }, tag_parent_reference: { match: "&", name: "entity.name.tag.reference.scss" }, tag_wildcard: { match: "\\*", name: "entity.name.tag.wildcard.scss" }, variable: { patterns: [{ include: "#variables" }, { include: "#interpolation" }] }, variable_setting: { begin: "(?=\\$[\\w-]+\\s*:)", contentName: "meta.definition.variable.scss", end: ";", endCaptures: { 0: { name: "punctuation.terminator.rule.scss" } }, patterns: [{ match: "\\$[\\w-]+(?=\\s*:)", name: "variable.scss" }, { begin: ":", beginCaptures: { 0: { name: "punctuation.separator.key-value.scss" } }, end: "(?=;)", patterns: [{ include: "#comment_docblock" }, { include: "#comment_block" }, { include: "#comment_line" }, { include: "#map" }, { include: "#property_values" }, { include: "#variable" }, { match: ",", name: "punctuation.separator.delimiter.scss" }] }] }, variables: { patterns: [{ captures: { 1: { name: "variable.scss" }, 2: { name: "punctuation.access.module.scss" }, 3: { name: "variable.scss" } }, match: "\\b([\\w-]+)(\\.)(\\$[\\w-]+)\\b" }, { match: "(\\$|\\-\\-)[A-Za-z0-9_-]+\\b", name: "variable.scss" }] } }, scopeName: "source.css.scss", embeddedLangs: ["css"] });
234
+ var i = [
235
+ ...t,
236
+ g
237
+ ];
238
+ const f = Object.freeze({ displayName: "Stylus", fileTypes: ["styl", "stylus", "css.styl", "css.stylus"], name: "stylus", patterns: [{ include: "#comment" }, { include: "#at_rule" }, { include: "#language_keywords" }, { include: "#language_constants" }, { include: "#variable_declaration" }, { include: "#function" }, { include: "#selector" }, { include: "#declaration" }, { captures: { 1: { name: "punctuation.section.property-list.begin.css" }, 2: { name: "punctuation.section.property-list.end.css" } }, match: "(\\{)(\\})", name: "meta.brace.curly.css" }, { match: "\\{|\\}", name: "meta.brace.curly.css" }, { include: "#numeric" }, { include: "#string" }, { include: "#operator" }], repository: { at_rule: { patterns: [{ begin: "\\s*((@)(import|require))\\b\\s*", beginCaptures: { 1: { name: "keyword.control.at-rule.import.stylus" }, 2: { name: "punctuation.definition.keyword.stylus" } }, end: "\\s*((?=;|$|\\n))", endCaptures: { 1: { name: "punctuation.terminator.rule.css" } }, name: "meta.at-rule.import.css", patterns: [{ include: "#string" }] }, { begin: "\\s*((@)(extend[s]?)\\b)\\s*", beginCaptures: { 1: { name: "keyword.control.at-rule.extend.stylus" }, 2: { name: "punctuation.definition.keyword.stylus" } }, end: "\\s*((?=;|$|\\n))", endCaptures: { 1: { name: "punctuation.terminator.rule.css" } }, name: "meta.at-rule.extend.css", patterns: [{ include: "#selector" }] }, { captures: { 1: { name: "keyword.control.at-rule.fontface.stylus" }, 2: { name: "punctuation.definition.keyword.stylus" } }, match: "^\\s*((@)font-face)\\b", name: "meta.at-rule.fontface.stylus" }, { captures: { 1: { name: "keyword.control.at-rule.css.stylus" }, 2: { name: "punctuation.definition.keyword.stylus" } }, match: "^\\s*((@)css)\\b", name: "meta.at-rule.css.stylus" }, { begin: "\\s*((@)charset)\\b\\s*", beginCaptures: { 1: { name: "keyword.control.at-rule.charset.stylus" }, 2: { name: "punctuation.definition.keyword.stylus" } }, end: "\\s*((?=;|$|\\n))", name: "meta.at-rule.charset.stylus", patterns: [{ include: "#string" }] }, { begin: "\\s*((@)keyframes)\\b\\s+([a-zA-Z_-][a-zA-Z0-9_-]*)", beginCaptures: { 1: { name: "keyword.control.at-rule.keyframes.stylus" }, 2: { name: "punctuation.definition.keyword.stylus" }, 3: { name: "entity.name.function.keyframe.stylus" } }, end: "\\s*((?=\\{|$|\\n))", name: "meta.at-rule.keyframes.stylus" }, { begin: "(?=(\\b(\\d+%|from\\b|to\\b)))", end: "(?=(\\{|\\n))", name: "meta.at-rule.keyframes.stylus", patterns: [{ match: "(\\b(\\d+%|from\\b|to\\b))", name: "entity.other.attribute-name.stylus" }] }, { captures: { 1: { name: "keyword.control.at-rule.media.stylus" }, 2: { name: "punctuation.definition.keyword.stylus" } }, match: "^\\s*((@)media)\\b", name: "meta.at-rule.media.stylus" }, { match: "(?:(?=\\w)(?<![\\w-]))(width|scan|resolution|orientation|monochrome|min-width|min-resolution|min-monochrome|min-height|min-device-width|min-device-height|min-device-aspect-ratio|min-color-index|min-color|min-aspect-ratio|max-width|max-resolution|max-monochrome|max-height|max-device-width|max-device-height|max-device-aspect-ratio|max-color-index|max-color|max-aspect-ratio|height|grid|device-width|device-height|device-aspect-ratio|color-index|color|aspect-ratio)(?:(?<=\\w)(?![\\w-]))", name: "support.type.property-name.media-feature.media.css" }, { match: "(?:(?=\\w)(?<![\\w-]))(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)(?:(?<=\\w)(?![\\w-]))", name: "support.constant.media-type.media.css" }, { match: "(?:(?=\\w)(?<![\\w-]))(portrait|landscape)(?:(?<=\\w)(?![\\w-]))", name: "support.constant.property-value.media-property.media.css" }] }, char_escape: { match: "\\\\(.)", name: "constant.character.escape.stylus" }, color: { patterns: [{ begin: "\\b(rgb|rgba|hsl|hsla)(\\()", beginCaptures: { 1: { name: "support.function.color.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(\\))", endCaptures: { 1: { name: "punctuation.section.function.css" } }, name: "meta.function.color.css", patterns: [{ match: "\\s*(,)\\s*", name: "punctuation.separator.parameter.css" }, { include: "#numeric" }, { include: "#property_variable" }] }, { captures: { 1: { name: "punctuation.definition.constant.css" } }, match: "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b", name: "constant.other.color.rgb-value.css" }, { comment: "http://www.w3.org/TR/CSS21/syndata.html#value-def-color", match: "\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b", name: "support.constant.color.w3c-standard-color-name.css" }, { comment: "http://www.w3.org/TR/css3-color/#svg-color", match: "\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b", name: "support.constant.color.w3c-extended-color-name.css" }] }, comment: { patterns: [{ include: "#comment_block" }, { include: "#comment_line" }] }, comment_block: { begin: "/\\*", beginCaptures: { 0: { name: "punctuation.definition.comment.begin.css" } }, end: "\\*/", endCaptures: { 0: { name: "punctuation.definition.comment.end.css" } }, name: "comment.block.css" }, comment_line: { begin: "(^[ \\t]+)?(?=//)", beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.stylus" } }, end: "(?!\\G)", patterns: [{ begin: "//", beginCaptures: { 0: { name: "punctuation.definition.comment.stylus" } }, end: "(?=\\n)", name: "comment.line.double-slash.stylus" }] }, declaration: { begin: "((?<=^)[^\\S\\n]+)|((?<=;)[^\\S\\n]*)|((?<=\\{)[^\\S\\n]*)", end: "(?=\\n)|(;)|(?=\\})|(\\n)", endCaptures: { 2: { name: "punctuation.terminator.rule.css" } }, name: "meta.property-list.css", patterns: [{ match: `(?x) (?<![\\w-])
239
+ --
240
+ (?:[-a-zA-Z_] | [^\\x00-\\x7F])
241
+ (?:[-a-zA-Z0-9_] | [^\\x00-\\x7F]
242
+ |\\\\(?:[0-9a-fA-F]{1,6}|.)
243
+ )*`, name: "variable.css" }, { include: "#language_keywords" }, { include: "#language_constants" }, { match: "(?:(?<=^)[^\\S\\n]+(\\n))" }, { captures: { 1: { name: "support.type.property-name.css" }, 2: { name: "punctuation.separator.key-value.css" }, 3: { name: "variable.section.css" } }, match: "\\G\\s*(counter-reset|counter-increment)(?:(:)|[^\\S\\n])[^\\S\\n]*([a-zA-Z_-][a-zA-Z0-9_-]*)", name: "meta.property.counter.css" }, { begin: "\\G\\s*(filter)(?:(:)|[^\\S\\n])[^\\S\\n]*", beginCaptures: { 1: { name: "support.type.property-name.css" }, 2: { name: "punctuation.separator.key-value.css" } }, end: "(?=\\n|;|\\}|$)", name: "meta.property.filter.css", patterns: [{ include: "#function" }, { include: "#property_values" }] }, { include: "#property" }, { include: "#interpolation" }, { include: "$self" }] }, font_name: { match: "(\\b(?i:arial|century|comic|courier|cursive|fantasy|futura|garamond|georgia|helvetica|impact|lucida|monospace|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif)\\b)", name: "support.constant.font-name.css" }, function: { begin: "(?=[a-zA-Z_-][a-zA-Z0-9_-]*\\()", end: "(\\))", endCaptures: { 1: { name: "punctuation.section.function.css" } }, patterns: [{ begin: "(format|url|local)(\\()", beginCaptures: { 1: { name: "support.function.misc.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.misc.css", patterns: [{ match: "(?<=\\()[^\\)\\s]*(?=\\))", name: "string.css" }, { include: "#string" }, { include: "#variable" }, { include: "#operator" }, { match: "\\s*" }] }, { captures: { 1: { name: "support.function.misc.counter.css" }, 2: { name: "punctuation.section.function.css" }, 3: { name: "variable.section.css" } }, match: "(counter)(\\()([a-zA-Z_-][a-zA-Z0-9_-]*)(?=\\))", name: "meta.function.misc.counter.css" }, { begin: "(counters)(\\()", beginCaptures: { 1: { name: "support.function.misc.counters.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.misc.counters.css", patterns: [{ match: "\\G[a-zA-Z_-][a-zA-Z0-9_-]*", name: "variable.section.css" }, { match: "\\s*(,)\\s*", name: "punctuation.separator.parameter.css" }, { include: "#string" }, { include: "#interpolation" }] }, { begin: "(attr)(\\()", beginCaptures: { 1: { name: "support.function.misc.attr.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.misc.attr.css", patterns: [{ match: "\\G[a-zA-Z_-][a-zA-Z0-9_-]*", name: "entity.other.attribute-name.attribute.css" }, { match: "(?<=[a-zA-Z0-9_-])\\s*\\b(string|color|url|integer|number|length|em|ex|px|rem|vw|vh|vmin|vmax|mm|cm|in|pt|pc|angle|deg|grad|rad|time|s|ms|frequency|Hz|kHz|%)\\b", name: "support.type.attr.css" }, { match: "\\s*(,)\\s*", name: "punctuation.separator.parameter.css" }, { include: "#string" }, { include: "#interpolation" }] }, { begin: "(calc)(\\()", beginCaptures: { 1: { name: "support.function.misc.calc.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.misc.calc.css", patterns: [{ include: "#property_values" }] }, { begin: "(cubic-bezier)(\\()", beginCaptures: { 1: { name: "support.function.timing.cubic-bezier.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.timing.cubic-bezier.css", patterns: [{ match: "\\s*(,)\\s*", name: "punctuation.separator.parameter.css" }, { include: "#numeric" }, { include: "#interpolation" }] }, { begin: "(steps)(\\()", beginCaptures: { 1: { name: "support.function.timing.steps.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.timing.steps.css", patterns: [{ match: "\\s*(,)\\s*", name: "punctuation.separator.parameter.css" }, { include: "#numeric" }, { match: "\\b(start|end)\\b", name: "support.constant.timing.steps.direction.css" }, { include: "#interpolation" }] }, { begin: "(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(\\()", beginCaptures: { 1: { name: "support.function.gradient.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.gradient.css", patterns: [{ match: "\\s*(,)\\s*", name: "punctuation.separator.parameter.css" }, { include: "#numeric" }, { include: "#color" }, { match: "\\b(to|bottom|right|left|top|circle|ellipse|center|closest-side|closest-corner|farthest-side|farthest-corner|at)\\b", name: "support.constant.gradient.css" }, { include: "#interpolation" }] }, { begin: "(blur|brightness|contrast|grayscale|hue-rotate|invert|opacity|saturate|sepia)(\\()", beginCaptures: { 1: { name: "support.function.filter.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.filter.css", patterns: [{ include: "#numeric" }, { include: "#property_variable" }, { include: "#interpolation" }] }, { begin: "(drop-shadow)(\\()", beginCaptures: { 1: { name: "support.function.filter.drop-shadow.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.filter.drop-shadow.css", patterns: [{ include: "#numeric" }, { include: "#color" }, { include: "#property_variable" }, { include: "#interpolation" }] }, { begin: "(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(\\()", beginCaptures: { 1: { name: "support.function.transform.css" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.transform.css", patterns: [{ include: "#numeric" }, { include: "#property_variable" }, { include: "#interpolation" }] }, { match: "(url|local|format|counter|counters|attr|calc)(?=\\()", name: "support.function.misc.css" }, { match: "(cubic-bezier|steps)(?=\\()", name: "support.function.timing.css" }, { match: "(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(?=\\()", name: "support.function.gradient.css" }, { match: "(blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)(?=\\()", name: "support.function.filter.css" }, { match: "(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(?=\\()", name: "support.function.transform.css" }, { begin: "([a-zA-Z_-][a-zA-Z0-9_-]*)(\\()", beginCaptures: { 1: { name: "entity.name.function.stylus" }, 2: { name: "punctuation.section.function.css" } }, end: "(?=\\))", name: "meta.function.stylus", patterns: [{ match: `(?x)
244
+ --
245
+ (?:[-a-zA-Z_] | [^\\x00-\\x7F])
246
+ (?:[-a-zA-Z0-9_] | [^\\x00-\\x7F]
247
+ |\\\\(?:[0-9a-fA-F]{1,6}|.)
248
+ )*`, name: "variable.argument.stylus" }, { match: "\\s*(,)\\s*", name: "punctuation.separator.parameter.css" }, { include: "#interpolation" }, { include: "#property_values" }] }, { match: "\\(", name: "punctuation.section.function.css" }] }, interpolation: { begin: "(?:(\\{)[^\\S\\n]*)(?=[^;=]*[^\\S\\n]*\\})", beginCaptures: { 1: { name: "meta.brace.curly" } }, end: "(?:[^\\S\\n]*(\\}))|\\n|$", endCaptures: { 1: { name: "meta.brace.curly" } }, name: "meta.interpolation.stylus", patterns: [{ include: "#variable" }, { include: "#numeric" }, { include: "#string" }, { include: "#operator" }] }, language_constants: { match: "\\b(true|false|null)\\b", name: "constant.language.stylus" }, language_keywords: { patterns: [{ match: "(\\b|\\s)(return|else|for|unless|if|else)\\b", name: "keyword.control.stylus" }, { match: "(\\b|\\s)(!important|in|is defined|is a)\\b", name: "keyword.other.stylus" }, { match: "\\barguments\\b", name: "variable.language.stylus" }] }, numeric: { patterns: [{ captures: { 1: { name: "keyword.other.unit.css" } }, match: "(?x) (?<!\\w|-)(?:(?:-|\\+)?(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+)) ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|dppx|fr|ms|s|turn|vh|vmax|vmin|vw)\\b|%)?", name: "constant.numeric.css" }] }, operator: { patterns: [{ match: "((?:\\?|:|!|~|\\+|(\\s-\\s)|(?:\\*)?\\*|\\/|%|(\\.)?\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!=)|\\b(?:in|is(?:nt)?|(?<!:)not|or|and)\\b)", name: "keyword.operator.stylus" }, { include: "#char_escape" }] }, property: { begin: `(?x:\\G\\s*(?:
249
+ (-webkit-[-A-Za-z]+|-moz-[-A-Za-z]+|-o-[-A-Za-z]+|-ms-[-A-Za-z]+|-khtml-[-A-Za-z]+|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode-range|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|touch-action|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|mix-blend-mode|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line-break|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify-content|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|gap|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-start|grid-row|grid-row-end|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|row-gap|gap|font-kerning|font-language-override|font-weight|font-variant-caps|font-variant|font-style|font-synthesis|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-blend-mode|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation-fill-mode|animation|alignment-baseline|alignment-adjust|alignment|align-self|align-last|align-items|align-content|align|after|adjust|will-change)|
250
+ (writing-mode|text-anchor|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|stop-opacity|stop-color|shape-rendering|marker-start|marker-mid|marker-end|lighting-color|kerning|image-rendering|glyph-orientation-vertical|glyph-orientation-horizontal|flood-opacity|flood-color|fill-rule|fill-opacity|fill|enable-background|color-rendering|color-interpolation-filters|color-interpolation|clip-rule|clip-path)|
251
+ ([a-zA-Z_-][a-zA-Z0-9_-]*)
252
+ )(?!([^\\S\\n]*&)|([^\\S\\n]*\\{))(?=:|([^\\S\\n]+[^\\s])))`, beginCaptures: { 1: { name: "support.type.property-name.css" }, 2: { name: "support.type.property-name.svg.css" }, 3: { name: "support.function.mixin.stylus" } }, end: "(;)|(?=\\n|\\}|$)", endCaptures: { 1: { name: "punctuation.terminator.rule.css" } }, patterns: [{ include: "#property_value" }] }, property_value: { begin: "\\G(?:(:)|(\\s))(\\s*)(?!&)", beginCaptures: { 1: { name: "punctuation.separator.key-value.css" }, 2: { name: "punctuation.separator.key-value.css" } }, end: "(?=\\n|;|\\})", endCaptures: { 1: { name: "punctuation.terminator.rule.css" } }, name: "meta.property-value.css", patterns: [{ include: "#property_values" }, { match: "[^\\n]+?" }] }, property_values: { patterns: [{ include: "#function" }, { include: "#comment" }, { include: "#language_keywords" }, { include: "#language_constants" }, { match: "(?:(?=\\w)(?<![\\w-]))(wrap-reverse|wrap|whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|unicase|underline|ultra-expanded|ultra-condensed|transparent|transform|top|titling-caps|thin|thick|text-top|text-bottom|text|tb-rl|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table|sw-resize|super|strict|stretch|step-start|step-end|static|square|space-between|space-around|space|solid|soft-light|small-caps|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|saturation|s-resize|running|rtl|row-reverse|row-resize|row|round|right|ridge|reverse|repeat-y|repeat-x|repeat|relative|progressive|progress|pre-wrap|pre-line|pre|pointer|petite-caps|paused|pan-x|pan-left|pan-right|pan-y|pan-up|pan-down|padding-box|overline|overlay|outside|outset|optimizeSpeed|optimizeLegibility|opacity|oblique|nw-resize|nowrap|not-allowed|normal|none|no-repeat|no-drop|newspaper|ne-resize|n-resize|multiply|move|middle|medium|max-height|manipulation|main-size|luminosity|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|local|list-item|linear(?!-)|line-through|line-edge|line|lighter|lighten|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline-block|inline|inherit|infinite|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|hue|horizontal|hidden|help|hard-light|hand|groove|geometricPrecision|forwards|flex-start|flex-end|flex|fixed|extra-expanded|extra-condensed|expanded|exclusion|ellipsis|ease-out|ease-in-out|ease-in|ease|e-resize|double|dotted|distribute-space|distribute-letter|distribute-all-lines|distribute|disc|disabled|difference|default|decimal|dashed|darken|currentColor|crosshair|cover|content-box|contain|condensed|column-reverse|column|color-dodge|color-burn|color|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|border-box|bolder|bold|block|bidi-override|below|baseline|balance|backwards|auto|antialiased|always|alternate-reverse|alternate|all-small-caps|all-scroll|all-petite-caps|all|absolute)(?:(?<=\\w)(?![\\w-]))", name: "support.constant.property-value.css" }, { match: "(?:(?=\\w)(?<![\\w-]))(start|sRGB|square|round|optimizeSpeed|optimizeQuality|nonzero|miter|middle|linearRGB|geometricPrecision |evenodd |end |crispEdges|butt|bevel)(?:(?<=\\w)(?![\\w-]))", name: "support.constant.property-value.svg.css" }, { include: "#font_name" }, { include: "#numeric" }, { include: "#color" }, { include: "#string" }, { match: "\\!\\s*important", name: "keyword.other.important.css" }, { include: "#operator" }, { include: "#stylus_keywords" }, { include: "#property_variable" }] }, property_variable: { patterns: [{ include: "#variable" }, { match: "(?<!^)(\\@[a-zA-Z_-][a-zA-Z0-9_-]*)", name: "variable.property.stylus" }] }, selector: { patterns: [{ match: "(?:(?=\\w)(?<![\\w-]))(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)(?:(?<=\\w)(?![\\w-]))", name: "entity.name.tag.css" }, { match: "(?:(?=\\w)(?<![\\w-]))(vkern|view|use|tspan|tref|title|textPath|text|symbol|switch|svg|style|stop|set|script|rect|radialGradient|polyline|polygon|pattern|path|mpath|missing-glyph|metadata|mask|marker|linearGradient|line|image|hkern|glyphRef|glyph|g|foreignObject|font-face-uri|font-face-src|font-face-name|font-face-format|font-face|font|filter|feTurbulence|feTile|feSpotLight|feSpecularLighting|fePointLight|feOffset|feMorphology|feMergeNode|feMerge|feImage|feGaussianBlur|feFuncR|feFuncG|feFuncB|feFuncA|feFlood|feDistantLight|feDisplacementMap|feDiffuseLighting|feConvolveMatrix|feComposite|feComponentTransfer|feColorMatrix|feBlend|ellipse|desc|defs|cursor|color-profile|clipPath|circle|animateTransform|animateMotion|animateColor|animate|altGlyphItem|altGlyphDef|altGlyph|a)(?:(?<=\\w)(?![\\w-]))", name: "entity.name.tag.svg.css" }, { match: "\\s*(\\,)\\s*", name: "meta.selector.stylus" }, { match: "\\*", name: "meta.selector.stylus" }, { captures: { 2: { name: "entity.other.attribute-name.parent-selector-suffix.stylus" } }, match: "\\s*(\\&)([a-zA-Z0-9_-]+)\\s*", name: "meta.selector.stylus" }, { match: "\\s*(\\&)\\s*", name: "meta.selector.stylus" }, { captures: { 1: { name: "punctuation.definition.entity.css" } }, match: "(\\.)[a-zA-Z0-9_-]+", name: "entity.other.attribute-name.class.css" }, { captures: { 1: { name: "punctuation.definition.entity.css" } }, match: "(#)[a-zA-Z][a-zA-Z0-9_-]*", name: "entity.other.attribute-name.id.css" }, { captures: { 1: { name: "punctuation.definition.entity.css" } }, match: "(:+)(after|before|content|first-letter|first-line|host|(-(moz|webkit|ms)-)?selection)\\b", name: "entity.other.attribute-name.pseudo-element.css" }, { captures: { 1: { name: "punctuation.definition.entity.css" } }, match: "(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\b", name: "entity.other.attribute-name.pseudo-class.css" }, { captures: { 1: { name: "punctuation.definition.entity.css" } }, match: "(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\b", name: "entity.other.attribute-name.pseudo-class.ui-state.css" }, { begin: "((:)not)(\\()", beginCaptures: { 1: { name: "entity.other.attribute-name.pseudo-class.css" }, 2: { name: "punctuation.definition.entity.css" }, 3: { name: "punctuation.section.function.css" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.section.function.css" } }, patterns: [{ include: "#selector" }] }, { captures: { 1: { name: "entity.other.attribute-name.pseudo-class.css" }, 2: { name: "punctuation.definition.entity.css" }, 3: { name: "punctuation.section.function.css" }, 4: { name: "constant.numeric.css" }, 5: { name: "punctuation.section.function.css" } }, match: "((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\()(\\-?(?:\\d+n?|n)(?:\\+\\d+)?|even|odd)(\\))" }, { captures: { 1: { name: "entity.other.attribute-name.pseudo-class.css" }, 2: { name: "puncutation.definition.entity.css" }, 3: { name: "punctuation.section.function.css" }, 4: { name: "constant.language.css" }, 5: { name: "punctuation.section.function.css" } }, match: "((:)dir)\\s*(?:(\\()(ltr|rtl)?(\\)))?" }, { captures: { 1: { name: "entity.other.attribute-name.pseudo-class.css" }, 2: { name: "puncutation.definition.entity.css" }, 3: { name: "punctuation.section.function.css" }, 4: { name: "constant.language.css" }, 6: { name: "punctuation.section.function.css" } }, match: "((:)lang)\\s*(?:(\\()(\\w+(-\\w+)?)?(\\)))?" }, { captures: { 1: { name: "punctuation.definition.entity.css" } }, match: "(:)(active|hover|link|visited|focus)\\b", name: "entity.other.attribute-name.pseudo-class.css" }, { captures: { 1: { name: "punctuation.definition.entity.css" } }, match: "(::)(shadow)\\b", name: "entity.other.attribute-name.pseudo-class.css" }, { captures: { 1: { name: "punctuation.definition.entity.css" }, 2: { name: "entity.other.attribute-name.attribute.css" }, 3: { name: "punctuation.separator.operator.css" }, 4: { name: "string.unquoted.attribute-value.css" }, 5: { name: "string.quoted.double.attribute-value.css" }, 6: { name: "punctuation.definition.string.begin.css" }, 7: { name: "punctuation.definition.string.end.css" }, 8: { name: "punctuation.definition.entity.css" } }, match: `(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])`, name: "meta.attribute-selector.css" }, { include: "#interpolation" }, { include: "#variable" }] }, string: { patterns: [{ begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.css" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.css" } }, name: "string.quoted.double.css", patterns: [{ match: "\\\\([a-fA-F0-9]{1,6}|.)", name: "constant.character.escape.css" }] }, { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.css" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.css" } }, name: "string.quoted.single.css", patterns: [{ match: "\\\\([a-fA-F0-9]{1,6}|.)", name: "constant.character.escape.css" }] }] }, variable: { match: "(\\$[a-zA-Z_-][a-zA-Z0-9_-]*)", name: "variable.stylus" }, variable_declaration: { begin: "^[^\\S\\n]*(\\$?[a-zA-Z_-][a-zA-Z0-9_-]*)[^\\S\\n]*(\\=|\\?\\=|\\:\\=)", beginCaptures: { 1: { name: "variable.stylus" }, 2: { name: "keyword.operator.stylus" } }, end: "(\\n)|(;)|(?=\\})", endCaptures: { 2: { name: "punctuation.terminator.rule.css" } }, patterns: [{ include: "#property_values" }] } }, scopeName: "source.stylus", aliases: ["styl"] });
253
+ var r = [
254
+ f
255
+ ];
256
+ const h = Object.freeze({ displayName: "CoffeeScript", name: "coffee", patterns: [{ include: "#jsx" }, { captures: { 1: { name: "keyword.operator.new.coffee" }, 2: { name: "storage.type.class.coffee" }, 3: { name: "entity.name.type.instance.coffee" }, 4: { name: "entity.name.type.instance.coffee" } }, match: "(new)\\s+(?:(?:(class)\\s+(\\w+(?:\\.\\w*)*)?)|(\\w+(?:\\.\\w*)*))", name: "meta.class.instance.constructor.coffee" }, { begin: "'''", beginCaptures: { 0: { name: "punctuation.definition.string.begin.coffee" } }, end: "'''", endCaptures: { 0: { name: "punctuation.definition.string.end.coffee" } }, name: "string.quoted.single.heredoc.coffee", patterns: [{ captures: { 1: { name: "punctuation.definition.escape.backslash.coffee" } }, match: "(\\\\).", name: "constant.character.escape.backslash.coffee" }] }, { begin: '"""', beginCaptures: { 0: { name: "punctuation.definition.string.begin.coffee" } }, end: '"""', endCaptures: { 0: { name: "punctuation.definition.string.end.coffee" } }, name: "string.quoted.double.heredoc.coffee", patterns: [{ captures: { 1: { name: "punctuation.definition.escape.backslash.coffee" } }, match: "(\\\\).", name: "constant.character.escape.backslash.coffee" }, { include: "#interpolated_coffee" }] }, { captures: { 1: { name: "punctuation.definition.string.begin.coffee" }, 2: { name: "source.js.embedded.coffee", patterns: [{ include: "source.js" }] }, 3: { name: "punctuation.definition.string.end.coffee" } }, match: "(`)(.*)(`)", name: "string.quoted.script.coffee" }, { begin: "(?<!#)###(?!#)", beginCaptures: { 0: { name: "punctuation.definition.comment.coffee" } }, end: "###", endCaptures: { 0: { name: "punctuation.definition.comment.coffee" } }, name: "comment.block.coffee", patterns: [{ match: "(?<=^|\\s)@\\w*(?=\\s)", name: "storage.type.annotation.coffee" }] }, { begin: "#", beginCaptures: { 0: { name: "punctuation.definition.comment.coffee" } }, end: "$", name: "comment.line.number-sign.coffee" }, { begin: "///", beginCaptures: { 0: { name: "punctuation.definition.string.begin.coffee" } }, end: "(///)[gimuy]*", endCaptures: { 1: { name: "punctuation.definition.string.end.coffee" } }, name: "string.regexp.multiline.coffee", patterns: [{ include: "#heregexp" }] }, { begin: "(?<![\\w$])(/)(?=(?![/*+?])(.+)(/)[gimuy]*(?!\\s*[\\w$/(]))", beginCaptures: { 1: { name: "punctuation.definition.string.begin.coffee" } }, end: "(/)[gimuy]*(?!\\s*[\\w$/(])", endCaptures: { 1: { name: "punctuation.definition.string.end.coffee" } }, name: "string.regexp.coffee", patterns: [{ include: "source.js.regexp" }] }, { match: "\\b(?<![\\.\\$])(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|do|export|import|default|from|as|yield|async|await|(?<=for)\\s+own)(?!\\s*:)\\b", name: "keyword.control.coffee" }, { match: "\\b(?<![\\.\\$])(delete|instanceof|new|typeof)(?!\\s*:)\\b", name: "keyword.operator.$1.coffee" }, { match: "\\b(?<![\\.\\$])(case|function|var|void|with|const|let|enum|native|__hasProp|__extends|__slice|__bind|__indexOf|implements|interface|package|private|protected|public|static)(?!\\s*:)\\b", name: "keyword.reserved.coffee" }, { begin: `(?x)
257
+ (?<=\\s|^)((@)?[a-zA-Z_$][\\w$]*)
258
+ \\s*([:=])\\s*
259
+ (?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)`, beginCaptures: { 1: { name: "entity.name.function.coffee" }, 2: { name: "variable.other.readwrite.instance.coffee" }, 3: { name: "keyword.operator.assignment.coffee" } }, end: "[=-]>", endCaptures: { 0: { name: "storage.type.function.coffee" } }, name: "meta.function.coffee", patterns: [{ include: "#function_params" }] }, { begin: `(?x)
260
+ (?<=\\s|^)(?:((')([^']*?)('))|((")([^"]*?)(")))
261
+ \\s*([:=])\\s*
262
+ (?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)`, beginCaptures: { 1: { name: "string.quoted.single.coffee" }, 2: { name: "punctuation.definition.string.begin.coffee" }, 3: { name: "entity.name.function.coffee" }, 4: { name: "punctuation.definition.string.end.coffee" }, 5: { name: "string.quoted.double.coffee" }, 6: { name: "punctuation.definition.string.begin.coffee" }, 7: { name: "entity.name.function.coffee" }, 8: { name: "punctuation.definition.string.end.coffee" }, 9: { name: "keyword.operator.assignment.coffee" } }, end: "[=-]>", endCaptures: { 0: { name: "storage.type.function.coffee" } }, name: "meta.function.coffee", patterns: [{ include: "#function_params" }] }, { begin: "(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)", end: "[=-]>", endCaptures: { 0: { name: "storage.type.function.coffee" } }, name: "meta.function.inline.coffee", patterns: [{ include: "#function_params" }] }, { begin: `(?<=\\s|^)({)(?=[^'"#]+?}[\\s\\]}]*=)`, beginCaptures: { 1: { name: "punctuation.definition.destructuring.begin.bracket.curly.coffee" } }, end: "}", endCaptures: { 0: { name: "punctuation.definition.destructuring.end.bracket.curly.coffee" } }, name: "meta.variable.assignment.destructured.object.coffee", patterns: [{ include: "$self" }, { match: "[a-zA-Z$_]\\w*", name: "variable.assignment.coffee" }] }, { begin: `(?<=\\s|^)(\\[)(?=[^'"#]+?\\][\\s\\]}]*=)`, beginCaptures: { 1: { name: "punctuation.definition.destructuring.begin.bracket.square.coffee" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.destructuring.end.bracket.square.coffee" } }, name: "meta.variable.assignment.destructured.array.coffee", patterns: [{ include: "$self" }, { match: "[a-zA-Z$_]\\w*", name: "variable.assignment.coffee" }] }, { match: "\\b(?<!\\.|::)(true|on|yes)(?!\\s*[:=][^=])\\b", name: "constant.language.boolean.true.coffee" }, { match: "\\b(?<!\\.|::)(false|off|no)(?!\\s*[:=][^=])\\b", name: "constant.language.boolean.false.coffee" }, { match: "\\b(?<!\\.|::)null(?!\\s*[:=][^=])\\b", name: "constant.language.null.coffee" }, { match: "\\b(?<!\\.|::)extends(?!\\s*[:=])\\b", name: "variable.language.coffee" }, { match: "(?<!\\.)\\b(?<!\\$)(super|this|arguments)(?!\\s*[:=][^=]|\\$)\\b", name: "variable.language.$1.coffee" }, { captures: { 1: { name: "storage.type.class.coffee" }, 2: { name: "keyword.control.inheritance.coffee" }, 3: { name: "entity.other.inherited-class.coffee" } }, match: "(?<=\\s|^|\\[|\\()(class)\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*)", name: "meta.class.coffee" }, { captures: { 1: { name: "storage.type.class.coffee" }, 2: { name: "entity.name.type.class.coffee" }, 3: { name: "keyword.control.inheritance.coffee" }, 4: { name: "entity.other.inherited-class.coffee" } }, match: "(?<=\\s|^|\\[|\\()(class\\b)\\s+(@?[a-zA-Z\\$_][\\w\\.]*)?(?:\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*))?", name: "meta.class.coffee" }, { match: "\\b(debugger|\\\\)\\b", name: "keyword.other.coffee" }, { match: "\\b(Array|ArrayBuffer|Blob|Boolean|Date|document|Function|Int(8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(8|16|32|64)Array|XMLHttpRequest)\\b", name: "support.class.coffee" }, { match: "\\b(console)\\b", name: "entity.name.type.object.coffee" }, { match: "((?<=console\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\b", name: "support.function.console.coffee" }, { match: "((?<=\\.)(apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|unshift|valueOf))\\b", name: "support.function.method.array.coffee" }, { match: "((?<=Array\\.)(isArray))\\b", name: "support.function.static.array.coffee" }, { match: "((?<=Object\\.)(create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|isnt|keys|preventExtensions|seal))\\b", name: "support.function.static.object.coffee" }, { match: "((?<=Math\\.)(abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|tan|tanh|trunc))\\b", name: "support.function.static.math.coffee" }, { match: "((?<=Number\\.)(is(Finite|Integer|NaN)|toInteger))\\b", name: "support.function.static.number.coffee" }, { match: "(?<!\\.)\\b(module|exports|__filename|__dirname|global|process)(?!\\s*:)\\b", name: "support.variable.coffee" }, { match: "\\b(Infinity|NaN|undefined)\\b", name: "constant.language.coffee" }, { include: "#operators" }, { include: "#method_calls" }, { include: "#function_calls" }, { include: "#numbers" }, { include: "#objects" }, { include: "#properties" }, { match: "::", name: "keyword.operator.prototype.coffee" }, { match: "(?<!\\$)\\b[0-9]+[\\w$]*", name: "invalid.illegal.identifier.coffee" }, { match: ";", name: "punctuation.terminator.statement.coffee" }, { match: ",", name: "punctuation.separator.delimiter.coffee" }, { begin: "{", beginCaptures: { 0: { name: "meta.brace.curly.coffee" } }, end: "}", endCaptures: { 0: { name: "meta.brace.curly.coffee" } }, patterns: [{ include: "$self" }] }, { begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.array.begin.bracket.square.coffee" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.array.end.bracket.square.coffee" } }, patterns: [{ match: "(?<!\\.)\\.{3}", name: "keyword.operator.slice.exclusive.coffee" }, { match: "(?<!\\.)\\.{2}", name: "keyword.operator.slice.inclusive.coffee" }, { include: "$self" }] }, { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.coffee" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.coffee" } }, patterns: [{ include: "$self" }] }, { include: "#instance_variable" }, { include: "#single_quoted_string" }, { include: "#double_quoted_string" }], repository: { arguments: { patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.arguments.begin.bracket.round.coffee" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.arguments.end.bracket.round.coffee" } }, name: "meta.arguments.coffee", patterns: [{ include: "$self" }] }, { begin: `(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|"|'))`, end: "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))", name: "meta.arguments.coffee", patterns: [{ include: "$self" }] }] }, double_quoted_string: { patterns: [{ begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.coffee" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.coffee" } }, name: "string.quoted.double.coffee", patterns: [{ captures: { 1: { name: "punctuation.definition.escape.backslash.coffee" } }, match: "(\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)", name: "constant.character.escape.backslash.coffee" }, { include: "#interpolated_coffee" }] }] }, embedded_comment: { patterns: [{ captures: { 1: { name: "punctuation.definition.comment.coffee" } }, match: "(?<!\\\\)(#).*$\\n?", name: "comment.line.number-sign.coffee" }] }, function_calls: { patterns: [{ begin: "(@)?([\\w$]+)(?=\\()", beginCaptures: { 1: { name: "variable.other.readwrite.instance.coffee" }, 2: { patterns: [{ include: "#function_names" }] } }, end: "(?<=\\))", name: "meta.function-call.coffee", patterns: [{ include: "#arguments" }] }, { begin: `(?x)
263
+ (@)?([\\w$]+)
264
+ \\s*
265
+ (?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@?[\\w$]+|[=-]>|\\-\\d|\\[|{|"|')))`, beginCaptures: { 1: { name: "variable.other.readwrite.instance.coffee" }, 2: { patterns: [{ include: "#function_names" }] } }, end: "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))", name: "meta.function-call.coffee", patterns: [{ include: "#arguments" }] }] }, function_names: { patterns: [{ match: `(?x)
266
+ \\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|
267
+ decodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|
268
+ require|set(Interval|Timeout)|clear(Interval|Timeout))\\b`, name: "support.function.coffee" }, { match: "[a-zA-Z_$][\\w$]*", name: "entity.name.function.coffee" }, { match: "\\d[\\w$]*", name: "invalid.illegal.identifier.coffee" }] }, function_params: { patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.parameters.begin.bracket.round.coffee" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.parameters.end.bracket.round.coffee" } }, name: "meta.parameters.coffee", patterns: [{ captures: { 1: { name: "variable.parameter.function.coffee" }, 2: { name: "keyword.operator.splat.coffee" } }, match: "([a-zA-Z_$][\\w$]*)(\\.\\.\\.)?" }, { captures: { 1: { name: "variable.parameter.function.readwrite.instance.coffee" }, 2: { name: "keyword.operator.splat.coffee" } }, match: "(@(?:[a-zA-Z_$][\\w$]*)?)(\\.\\.\\.)?" }, { include: "$self" }] }] }, heregexp: { patterns: [{ match: "\\\\[bB]|\\^|\\$", name: "keyword.control.anchor.regexp" }, { match: "\\\\[1-9]\\d*", name: "keyword.other.back-reference.regexp" }, { match: "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??", name: "keyword.operator.quantifier.regexp" }, { match: "\\|", name: "keyword.operator.or.regexp" }, { begin: "(\\()((\\?=)|(\\?!))", beginCaptures: { 1: { name: "punctuation.definition.group.regexp" }, 3: { name: "meta.assertion.look-ahead.regexp" }, 4: { name: "meta.assertion.negative-look-ahead.regexp" } }, end: "(\\))", endCaptures: { 1: { name: "punctuation.definition.group.regexp" } }, name: "meta.group.assertion.regexp", patterns: [{ include: "#heregexp" }] }, { begin: "\\((\\?:)?", beginCaptures: { 0: { name: "punctuation.definition.group.regexp" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.regexp" } }, name: "meta.group.regexp", patterns: [{ include: "#heregexp" }] }, { begin: "(\\[)(\\^)?", beginCaptures: { 1: { name: "punctuation.definition.character-class.regexp" }, 2: { name: "keyword.operator.negation.regexp" } }, end: "(\\])", endCaptures: { 1: { name: "punctuation.definition.character-class.regexp" } }, name: "constant.other.character-class.set.regexp", patterns: [{ captures: { 1: { name: "constant.character.numeric.regexp" }, 2: { name: "constant.character.control.regexp" }, 3: { name: "constant.character.escape.backslash.regexp" }, 4: { name: "constant.character.numeric.regexp" }, 5: { name: "constant.character.control.regexp" }, 6: { name: "constant.character.escape.backslash.regexp" } }, match: "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", name: "constant.other.character-class.range.regexp" }, { include: "#regex-character-class" }] }, { include: "#regex-character-class" }, { include: "#interpolated_coffee" }, { include: "#embedded_comment" }] }, instance_variable: { patterns: [{ match: "(@)([a-zA-Z_\\$]\\w*)?", name: "variable.other.readwrite.instance.coffee" }] }, interpolated_coffee: { patterns: [{ begin: "\\#\\{", captures: { 0: { name: "punctuation.section.embedded.coffee" } }, end: "\\}", name: "source.coffee.embedded.source", patterns: [{ include: "$self" }] }] }, jsx: { patterns: [{ include: "#jsx-tag" }, { include: "#jsx-end-tag" }] }, "jsx-attribute": { patterns: [{ captures: { 1: { name: "entity.other.attribute-name.coffee" }, 2: { name: "keyword.operator.assignment.coffee" } }, match: "(?:^|\\s+)([-\\w.]+)\\s*(=)" }, { include: "#double_quoted_string" }, { include: "#single_quoted_string" }, { include: "#jsx-expression" }] }, "jsx-end-tag": { patterns: [{ begin: "(</)([-\\w\\.]+)", beginCaptures: { 1: { name: "punctuation.definition.tag.coffee" }, 2: { name: "entity.name.tag.coffee" } }, end: "(/?>)", name: "meta.tag.coffee" }] }, "jsx-expression": { begin: "{", beginCaptures: { 0: { name: "meta.brace.curly.coffee" } }, end: "}", endCaptures: { 0: { name: "meta.brace.curly.coffee" } }, patterns: [{ include: "#double_quoted_string" }, { include: "$self" }] }, "jsx-tag": { patterns: [{ begin: "(<)([-\\w\\.]+)", beginCaptures: { 1: { name: "punctuation.definition.tag.coffee" }, 2: { name: "entity.name.tag.coffee" } }, end: "(/?>)", name: "meta.tag.coffee", patterns: [{ include: "#jsx-attribute" }] }] }, method_calls: { patterns: [{ begin: "(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\()", beginCaptures: { 1: { name: "punctuation.separator.method.period.coffee" }, 2: { name: "keyword.operator.prototype.coffee" }, 3: { patterns: [{ include: "#method_names" }] } }, end: "(?<=\\))", name: "meta.method-call.coffee", patterns: [{ include: "#arguments" }] }, { begin: `(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|"|')))`, beginCaptures: { 1: { name: "punctuation.separator.method.period.coffee" }, 2: { name: "keyword.operator.prototype.coffee" }, 3: { patterns: [{ include: "#method_names" }] } }, end: "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))", name: "meta.method-call.coffee", patterns: [{ include: "#arguments" }] }] }, method_names: { patterns: [{ match: `(?x)
269
+ \\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|
270
+ Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|
271
+ Before(cut|deactivate|unload|update|paste|print|editfocus|activate)|
272
+ Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|
273
+ Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|
274
+ Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|
275
+ Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|
276
+ Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\b`, name: "support.function.event-handler.coffee" }, { match: `(?x)
277
+ \\b(shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|
278
+ scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|
279
+ sup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|
280
+ Month|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|
281
+ Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|
282
+ savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|
283
+ contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|
284
+ createEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|
285
+ test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|
286
+ untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|
287
+ print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|
288
+ fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|
289
+ forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|
290
+ abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|
291
+ releaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|
292
+ Time|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|
293
+ Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|
294
+ moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\b`, name: "support.function.coffee" }, { match: `(?x)
295
+ \\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|
296
+ appendChild|appendData|before|blur|canPlayType|captureStream|
297
+ caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|
298
+ cloneContents|cloneNode|cloneRange|close|closest|collapse|
299
+ compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|
300
+ convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|
301
+ createAttributeNS|createCaption|createCDATASection|createComment|
302
+ createContextualFragment|createDocument|createDocumentFragment|
303
+ createDocumentType|createElement|createElementNS|createEntityReference|
304
+ createEvent|createExpression|createHTMLDocument|createNodeIterator|
305
+ createNSResolver|createProcessingInstruction|createRange|createShadowRoot|
306
+ createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|
307
+ deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|
308
+ deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|
309
+ enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|
310
+ exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|
311
+ getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|
312
+ getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|
313
+ getClientRects|getContext|getDestinationInsertionPoints|getElementById|
314
+ getElementsByClassName|getElementsByName|getElementsByTagName|
315
+ getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|
316
+ getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|
317
+ hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|
318
+ insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|
319
+ insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|
320
+ isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|
321
+ lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|
322
+ moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|
323
+ parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|
324
+ previousSibling|probablySupportsContext|queryCommandEnabled|
325
+ queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|
326
+ querySelector|querySelectorAll|registerContentHandler|registerElement|
327
+ registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|
328
+ removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|
329
+ removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|
330
+ requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|
331
+ scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|
332
+ setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|
333
+ setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|
334
+ setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|
335
+ slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|
336
+ submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|
337
+ toDataURL|toggle|toString|values|write|writeln)\\b`, name: "support.function.dom.coffee" }, { match: "[a-zA-Z_$][\\w$]*", name: "entity.name.function.coffee" }, { match: "\\d[\\w$]*", name: "invalid.illegal.identifier.coffee" }] }, numbers: { patterns: [{ match: "\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)", name: "constant.numeric.hex.coffee" }, { match: "\\b(?<!\\$)0(b|B)[01]+\\b(?!\\$)", name: "constant.numeric.binary.coffee" }, { match: "\\b(?<!\\$)0(o|O)?[0-7]+\\b(?!\\$)", name: "constant.numeric.octal.coffee" }, { captures: { 0: { name: "constant.numeric.decimal.coffee" }, 1: { name: "punctuation.separator.decimal.period.coffee" }, 2: { name: "punctuation.separator.decimal.period.coffee" }, 3: { name: "punctuation.separator.decimal.period.coffee" }, 4: { name: "punctuation.separator.decimal.period.coffee" }, 5: { name: "punctuation.separator.decimal.period.coffee" }, 6: { name: "punctuation.separator.decimal.period.coffee" } }, match: `(?x)
338
+ (?<!\\$)(?:
339
+ (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)|
340
+ (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)|
341
+ (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)|
342
+ (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)|
343
+ (?:\\b[0-9]+(\\.)[0-9]+\\b)|
344
+ (?:\\b[0-9]+(?=\\.{2,3}))|
345
+ (?:\\b[0-9]+(\\.)\\B)|
346
+ (?:\\B(\\.)[0-9]+\\b)|
347
+ (?:\\b[0-9]+\\b(?!\\.))
348
+ )(?!\\$)` }] }, objects: { patterns: [{ match: "[A-Z][A-Z0-9_$]*(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))", name: "constant.other.object.coffee" }, { match: "[a-zA-Z_$][\\w$]*(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))", name: "variable.other.object.coffee" }] }, operators: { patterns: [{ captures: { 1: { name: "variable.assignment.coffee" }, 2: { name: "keyword.operator.assignment.compound.coffee" } }, match: "(?:([a-zA-Z$_][\\w$]*)?\\s+|(?<![\\w$]))(and=|or=)" }, { captures: { 1: { name: "variable.assignment.coffee" }, 2: { name: "keyword.operator.assignment.compound.coffee" } }, match: "([a-zA-Z$_][\\w$]*)?\\s*(%=|\\+=|-=|\\*=|&&=|\\|\\|=|\\?=|(?<!\\()/=)" }, { captures: { 1: { name: "variable.assignment.coffee" }, 2: { name: "keyword.operator.assignment.compound.bitwise.coffee" } }, match: "([a-zA-Z$_][\\w$]*)?\\s*(&=|\\^=|<<=|>>=|>>>=|\\|=)" }, { match: "<<|>>>|>>", name: "keyword.operator.bitwise.shift.coffee" }, { match: "!=|<=|>=|==|<|>", name: "keyword.operator.comparison.coffee" }, { match: "&&|!|\\|\\|", name: "keyword.operator.logical.coffee" }, { match: "&|\\||\\^|~", name: "keyword.operator.bitwise.coffee" }, { captures: { 1: { name: "variable.assignment.coffee" }, 2: { name: "keyword.operator.assignment.coffee" } }, match: "([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])" }, { match: "--", name: "keyword.operator.decrement.coffee" }, { match: "\\+\\+", name: "keyword.operator.increment.coffee" }, { match: "\\.\\.\\.", name: "keyword.operator.splat.coffee" }, { match: "\\?", name: "keyword.operator.existential.coffee" }, { match: "%|\\*|/|-|\\+", name: "keyword.operator.coffee" }, { captures: { 1: { name: "keyword.operator.logical.coffee" }, 2: { name: "keyword.operator.comparison.coffee" } }, match: `(?x)
349
+ \\b(?<![\\.\\$])
350
+ (?:
351
+ (and|or|not)
352
+ |
353
+ (is|isnt)
354
+ )
355
+ (?!\\s*:)\\b` }] }, properties: { patterns: [{ captures: { 1: { name: "punctuation.separator.property.period.coffee" }, 2: { name: "keyword.operator.prototype.coffee" }, 3: { name: "constant.other.object.property.coffee" } }, match: "(?:(\\.)|(::))\\s*([A-Z][A-Z0-9_$]*\\b\\$*)(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))" }, { captures: { 1: { name: "punctuation.separator.property.period.coffee" }, 2: { name: "keyword.operator.prototype.coffee" }, 3: { name: "variable.other.object.property.coffee" } }, match: "(?:(\\.)|(::))\\s*(\\$*[a-zA-Z_$][\\w$]*)(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))" }, { captures: { 1: { name: "punctuation.separator.property.period.coffee" }, 2: { name: "keyword.operator.prototype.coffee" }, 3: { name: "constant.other.property.coffee" } }, match: "(?:(\\.)|(::))\\s*([A-Z][A-Z0-9_$]*\\b\\$*)" }, { captures: { 1: { name: "punctuation.separator.property.period.coffee" }, 2: { name: "keyword.operator.prototype.coffee" }, 3: { name: "variable.other.property.coffee" } }, match: "(?:(\\.)|(::))\\s*(\\$*[a-zA-Z_$][\\w$]*)" }, { captures: { 1: { name: "punctuation.separator.property.period.coffee" }, 2: { name: "keyword.operator.prototype.coffee" }, 3: { name: "invalid.illegal.identifier.coffee" } }, match: "(?:(\\.)|(::))\\s*([0-9][\\w$]*)" }] }, "regex-character-class": { patterns: [{ match: "\\\\[wWsSdD]|\\.", name: "constant.character.character-class.regexp" }, { match: "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})", name: "constant.character.numeric.regexp" }, { match: "\\\\c[A-Z]", name: "constant.character.control.regexp" }, { match: "\\\\.", name: "constant.character.escape.backslash.regexp" }] }, single_quoted_string: { patterns: [{ begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.coffee" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.coffee" } }, name: "string.quoted.single.coffee", patterns: [{ captures: { 1: { name: "punctuation.definition.escape.backslash.coffee" } }, match: "(\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)", name: "constant.character.escape.backslash.coffee" }] }] } }, scopeName: "source.coffee", embeddedLangs: ["javascript"], aliases: ["coffeescript"] });
356
+ var o = [
357
+ ...e,
358
+ h
359
+ ];
360
+ const y = Object.freeze({ displayName: "Pug", name: "pug", patterns: [{ comment: "Doctype declaration.", match: "^(!!!|doctype)(\\s*[a-zA-Z0-9-_]+)?", name: "meta.tag.sgml.doctype.html" }, { begin: "^(\\s*)//-", comment: "Unbuffered (pug-only) comments.", end: "^(?!(\\1\\s)|\\s*$)", name: "comment.unbuffered.block.pug" }, { begin: "^(\\s*)//", comment: "Buffered (html) comments.", end: "^(?!(\\1\\s)|\\s*$)", name: "string.comment.buffered.block.pug", patterns: [{ captures: { 1: { name: "invalid.illegal.comment.comment.block.pug" } }, comment: "Buffered comments inside buffered comments will generate invalid html.", match: "^\\s*(//)(?!-)", name: "string.comment.buffered.block.pug" }] }, { begin: "<!--", end: "--\\s*>", name: "comment.unbuffered.block.pug", patterns: [{ match: "--", name: "invalid.illegal.comment.comment.block.pug" }] }, { begin: "^(\\s*)-$", comment: "Unbuffered code block.", end: "^(?!(\\1\\s)|\\s*$)", name: "source.js", patterns: [{ include: "source.js" }] }, { begin: "^(\\s*)(script)((\\.$)|(?=[^\\n]*((text|application)/javascript|module).*\\.$))", beginCaptures: { 2: { name: "entity.name.tag.pug" } }, comment: "Script tag with JavaScript code.", end: "^(?!(\\1\\s)|\\s*$)", name: "meta.tag.other", patterns: [{ begin: "\\G(?=\\()", end: "$", patterns: [{ include: "#tag_attributes" }] }, { begin: "\\G(?=[.#])", end: "$", patterns: [{ include: "#complete_tag" }] }, { include: "source.js" }] }, { begin: "^(\\s*)(style)((\\.$)|(?=[.#(].*\\.$))", beginCaptures: { 2: { name: "entity.name.tag.pug" } }, comment: "Style tag with CSS code.", end: "^(?!(\\1\\s)|\\s*$)", name: "meta.tag.other", patterns: [{ begin: "\\G(?=\\()", end: "$", patterns: [{ include: "#tag_attributes" }] }, { begin: "\\G(?=[.#])", end: "$", patterns: [{ include: "#complete_tag" }] }, { include: "source.css" }] }, { begin: "^(\\s*):(sass)(?=\\(|$)", beginCaptures: { 2: { name: "constant.language.name.sass.filter.pug" } }, end: "^(?!(\\1\\s)|\\s*$)", name: "source.sass.filter.pug", patterns: [{ include: "#tag_attributes" }, { include: "source.sass" }] }, { begin: "^(\\s*):(scss)(?=\\(|$)", beginCaptures: { 2: { name: "constant.language.name.scss.filter.pug" } }, end: "^(?!(\\1\\s)|\\s*$)", name: "source.css.scss.filter.pug", patterns: [{ include: "#tag_attributes" }, { include: "source.css.scss" }] }, { begin: "^(\\s*):(less)(?=\\(|$)", beginCaptures: { 2: { name: "constant.language.name.less.filter.pug" } }, end: "^(?!(\\1\\s)|\\s*$)", name: "source.less.filter.pug", patterns: [{ include: "#tag_attributes" }, { include: "source.less" }] }, { begin: "^(\\s*):(stylus)(?=\\(|$)", beginCaptures: { 2: { name: "constant.language.name.stylus.filter.pug" } }, end: "^(?!(\\1\\s)|\\s*$)", patterns: [{ include: "#tag_attributes" }, { include: "source.stylus" }] }, { begin: "^(\\s*):(coffee(-?script)?)(?=\\(|$)", beginCaptures: { 2: { name: "constant.language.name.coffeescript.filter.pug" } }, end: "^(?!(\\1\\s)|\\s*$)", name: "source.coffeescript.filter.pug", patterns: [{ include: "#tag_attributes" }, { include: "source.coffee" }] }, { begin: "^(\\s*):(uglify-js)(?=\\(|$)", beginCaptures: { 2: { name: "constant.language.name.js.filter.pug" } }, end: "^(?!(\\1\\s)|\\s*$)", name: "source.js.filter.pug", patterns: [{ include: "#tag_attributes" }, { include: "source.js" }] }, { begin: "^(\\s*)((:(?=.))|(:$))", beginCaptures: { 4: { name: "invalid.illegal.empty.generic.filter.pug" } }, comment: "Generic Pug filter.", end: "^(?!(\\1\\s)|\\s*$)", patterns: [{ begin: "\\G(?<=:)(?=.)", end: "$", name: "name.generic.filter.pug", patterns: [{ match: "\\G\\(", name: "invalid.illegal.name.generic.filter.pug" }, { match: "[\\w-]", name: "constant.language.name.generic.filter.pug" }, { include: "#tag_attributes" }, { match: "\\W", name: "invalid.illegal.name.generic.filter.pug" }] }] }, { begin: `^(\\s*)(?:(?=\\.$)|(?:(?=[\\w.#].*?\\.$)(?=(?:(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\"(?:[^\\"]|(?:(?<!\\\\)\\\\\\"))*\\")))*[^()]*\\))*)*)(?:(?:(?::\\s+)|(?<=\\)))(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\"(?:[^\\"]|(?:(?<!\\\\)\\\\\\"))*\\")))*[^()]*\\))*)*))*)\\.$)(?:(?:(#[\\w-]+)|(\\.[\\w-]+))|((?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))))`, beginCaptures: { 2: { name: "meta.selector.css entity.other.attribute-name.id.css.pug" }, 3: { name: "meta.selector.css entity.other.attribute-name.class.css.pug" }, 4: { name: "meta.tag.other entity.name.tag.pug" } }, comment: "Generated from dot_block_tag.py", end: "^(?!(\\1\\s)|\\s*$)", patterns: [{ match: "\\.$", name: "storage.type.function.pug.dot-block-dot" }, { include: "#tag_attributes" }, { include: "#complete_tag" }, { begin: "^(?=.)", end: "$", name: "text.block.pug", patterns: [{ include: "#inline_pug" }, { include: "#embedded_html" }, { include: "#html_entity" }, { include: "#interpolated_value" }, { include: "#interpolated_error" }] }] }, { begin: "^\\s*", comment: "All constructs that generally span a single line starting with any number of white-spaces.", end: "$", patterns: [{ include: "#inline_pug" }, { include: "#blocks_and_includes" }, { include: "#unbuffered_code" }, { include: "#mixin_definition" }, { include: "#mixin_call" }, { include: "#flow_control" }, { include: "#flow_control_each" }, { include: "#case_conds" }, { begin: "\\|", comment: "Tag pipe text line.", end: "$", name: "text.block.pipe.pug", patterns: [{ include: "#inline_pug" }, { include: "#embedded_html" }, { include: "#html_entity" }, { include: "#interpolated_value" }, { include: "#interpolated_error" }] }, { include: "#printed_expression" }, { begin: "\\G(?=(#[^\\{\\w-])|[^\\w.#])", comment: "Line starting with characters incompatible with tag name/id/class is standalone text.", end: "$", patterns: [{ begin: "</?(?=[!#])", end: ">|$", patterns: [{ include: "#inline_pug" }, { include: "#interpolated_value" }, { include: "#interpolated_error" }] }, { include: "#inline_pug" }, { include: "#embedded_html" }, { include: "#html_entity" }, { include: "#interpolated_value" }, { include: "#interpolated_error" }] }, { include: "#complete_tag" }] }], repository: { babel_parens: { begin: "\\(", end: "\\)|(({\\s*)?$)", patterns: [{ include: "#babel_parens" }, { include: "source.js" }] }, blocks_and_includes: { captures: { 1: { name: "storage.type.import.include.pug" }, 4: { name: "variable.control.import.include.pug" } }, comment: "Template blocks and includes.", match: "(extends|include|yield|append|prepend|block( (append|prepend))?)\\s+(.*)$", name: "meta.first-class.pug" }, case_conds: { begin: "(default|when)((\\s+|(?=:))|$)", captures: { 1: { name: "storage.type.function.pug" } }, comment: "Pug case conditionals.", end: "$", name: "meta.control.flow.pug", patterns: [{ begin: "\\G(?!:)", end: "(?=:\\s+)|$", name: "js.embedded.control.flow.pug", patterns: [{ include: "#case_when_paren" }, { include: "source.js" }] }, { begin: ":\\s+", end: "$", name: "tag.case.control.flow.pug", patterns: [{ include: "#complete_tag" }] }] }, case_when_paren: { begin: "\\(", end: "\\)", name: "js.when.control.flow.pug", patterns: [{ include: "#case_when_paren" }, { match: ":", name: "invalid.illegal.name.tag.pug" }, { include: "source.js" }] }, complete_tag: { begin: "(?=[\\w.#])|(:\\s*)", end: "(\\.?$)|(?=:.)", endCaptures: { 1: { name: "storage.type.function.pug.dot-block-dot" } }, patterns: [{ include: "#blocks_and_includes" }, { include: "#unbuffered_code" }, { include: "#mixin_call" }, { include: "#flow_control" }, { include: "#flow_control_each" }, { match: "(?<=:)\\w.*$", name: "invalid.illegal.name.tag.pug" }, { include: "#tag_name" }, { include: "#tag_id" }, { include: "#tag_classes" }, { include: "#tag_attributes" }, { include: "#tag_mixin_attributes" }, { captures: { 2: { name: "invalid.illegal.end.tag.pug" }, 4: { name: "invalid.illegal.end.tag.pug" } }, match: "((\\.)\\s+$)|((:)\\s*$)" }, { include: "#printed_expression" }, { include: "#tag_text" }] }, embedded_html: { begin: "(?=<[^>]*>)", end: "$|(?=>)", name: "html", patterns: [{ include: "text.html.basic" }, { include: "#interpolated_value" }, { include: "#interpolated_error" }] }, flow_control: { begin: "(for|if|else if|else|until|while|unless|case)(\\s+|$)", captures: { 1: { name: "storage.type.function.pug" } }, comment: "Pug control flow.", end: "$", name: "meta.control.flow.pug", patterns: [{ begin: "", end: "$", name: "js.embedded.control.flow.pug", patterns: [{ include: "source.js" }] }] }, flow_control_each: { begin: "(each)(\\s+|$)", captures: { 1: { name: "storage.type.function.pug" } }, end: "$", name: "meta.control.flow.pug.each", patterns: [{ match: "([\\w$_]+)(?:\\s*,\\s*([\\w$_]+))?", name: "variable.other.pug.each-var" }, { begin: "", end: "$", name: "js.embedded.control.flow.pug", patterns: [{ include: "source.js" }] }] }, html_entity: { patterns: [{ match: "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", name: "constant.character.entity.html.text.pug" }, { match: "[<>&]", name: "invalid.illegal.html_entity.text.pug" }] }, inline_pug: { begin: "(?<!\\\\)(#\\[)", captures: { 1: { name: "entity.name.function.pug" }, 2: { name: "entity.name.function.pug" } }, end: "(\\])", name: "inline.pug", patterns: [{ include: "#inline_pug" }, { include: "#mixin_call" }, { begin: "(?<!\\])(?=[\\w.#])|(:\\s*)", end: "(?=\\]|(:.)|=|\\s)", name: "tag.inline.pug", patterns: [{ include: "#tag_name" }, { include: "#tag_id" }, { include: "#tag_classes" }, { include: "#tag_attributes" }, { include: "#tag_mixin_attributes" }, { include: "#inline_pug" }, { match: "\\[", name: "invalid.illegal.tag.pug" }] }, { include: "#unbuffered_code" }, { include: "#printed_expression" }, { match: "\\[", name: "invalid.illegal.tag.pug" }, { include: "#inline_pug_text" }] }, inline_pug_text: { begin: "", end: "(?=\\])", patterns: [{ begin: "\\[", end: "\\]", patterns: [{ include: "#inline_pug_text" }] }, { include: "#inline_pug" }, { include: "#embedded_html" }, { include: "#html_entity" }, { include: "#interpolated_value" }, { include: "#interpolated_error" }] }, interpolated_error: { match: "(?<!\\\\)[#!]\\{(?=[^}]*$)", name: "invalid.illegal.tag.pug" }, interpolated_value: { begin: "(?<!\\\\)[#!]\\{(?=.*?\\})", end: "\\}", name: "string.interpolated.pug", patterns: [{ match: "{", name: "invalid.illegal.tag.pug" }, { include: "source.js" }] }, js_braces: { begin: "\\{", end: "\\}", patterns: [{ include: "#js_braces" }, { include: "source.js" }] }, js_brackets: { begin: "\\[", end: "\\]", patterns: [{ include: "#js_brackets" }, { include: "source.js" }] }, js_parens: { begin: "\\(", end: "\\)", patterns: [{ include: "#js_parens" }, { include: "source.js" }] }, mixin_call: { begin: "((?:mixin\\s+)|\\+)([\\w-]+)", beginCaptures: { 1: { name: "storage.type.function.pug" }, 2: { name: "meta.tag.other entity.name.function.pug" } }, end: "(?!\\()|$", patterns: [{ begin: "(?<!\\))\\(", end: "\\)", name: "args.mixin.pug", patterns: [{ include: "#js_parens" }, { captures: { 1: { name: "meta.tag.other entity.other.attribute-name.tag.pug" } }, match: "([^\\s(),=/]+)\\s*=\\s*" }, { include: "source.js" }] }, { include: "#tag_attributes" }] }, mixin_definition: { captures: { 1: { name: "storage.type.function.pug" }, 2: { name: "meta.tag.other entity.name.function.pug" }, 3: { name: "punctuation.definition.parameters.begin.js" }, 4: { name: "variable.parameter.function.js" }, 5: { name: "punctuation.definition.parameters.begin.js" } }, match: "(mixin\\s+)([\\w-]+)(?:(\\()\\s*((?:[a-zA-Z_]\\w*\\s*)(?:,\\s*[a-zA-Z_]\\w*\\s*)*)(\\)))?$" }, printed_expression: { begin: "(!?\\=)\\s*", captures: { 1: { name: "constant" } }, end: "(?=\\])|$", name: "source.js", patterns: [{ include: "#js_brackets" }, { include: "source.js" }] }, tag_attribute_name: { captures: { 1: { name: "entity.other.attribute-name.tag.pug" } }, match: "([^\\s(),=/!]+)\\s*" }, tag_attribute_name_paren: { begin: "\\(\\s*", end: "\\)", name: "entity.other.attribute-name.tag.pug", patterns: [{ include: "#tag_attribute_name_paren" }, { include: "#tag_attribute_name" }] }, tag_attributes: { begin: "(\\(\\s*)", captures: { 1: { name: "constant.name.attribute.tag.pug" } }, end: "(\\))", name: "meta.tag.other", patterns: [{ include: "#tag_attribute_name_paren" }, { include: "#tag_attribute_name" }, { match: "!(?!=)", name: "invalid.illegal.tag.pug" }, { begin: "=\\s*", end: "$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))", name: "attribute_value", patterns: [{ include: "#js_parens" }, { include: "#js_brackets" }, { include: "#js_braces" }, { include: "source.js" }] }, { begin: "(?<=[%&*\\-+~|<>:?/])\\s+", end: "$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))", name: "attribute_value2", patterns: [{ include: "#js_parens" }, { include: "#js_brackets" }, { include: "#js_braces" }, { include: "source.js" }] }] }, tag_classes: { captures: { 1: { name: "invalid.illegal.tag.pug" } }, match: "\\.([^\\w-])?[\\w-]*", name: "meta.selector.css entity.other.attribute-name.class.css.pug" }, tag_id: { match: "#[\\w-]+", name: "meta.selector.css entity.other.attribute-name.id.css.pug" }, tag_mixin_attributes: { begin: "(&attributes\\()", captures: { 1: { name: "entity.name.function.pug" } }, end: "(\\))", name: "meta.tag.other", patterns: [{ match: "attributes(?=\\))", name: "storage.type.keyword.pug" }, { include: "source.js" }] }, tag_name: { begin: "([#!]\\{(?=.*?\\}))|(\\w(([\\w:-]+[\\w-])|([\\w-]*)))", end: "(\\G(?<!\\5[^\\w-]))|\\}|$", name: "meta.tag.other entity.name.tag.pug", patterns: [{ begin: "\\G(?<=\\{)", end: "(?=\\})", name: "meta.tag.other entity.name.tag.pug", patterns: [{ match: "{", name: "invalid.illegal.tag.pug" }, { include: "source.js" }] }] }, tag_text: { begin: "(?=.)", end: "$", patterns: [{ include: "#inline_pug" }, { include: "#embedded_html" }, { include: "#html_entity" }, { include: "#interpolated_value" }, { include: "#interpolated_error" }] }, unbuffered_code: { begin: "(-|(([a-zA-Z0-9_]+)\\s+=))", beginCaptures: { 3: { name: "variable.parameter.javascript.embedded.pug" } }, comment: "name = function() {}", end: "(?=\\])|(({\\s*)?$)", name: "source.js", patterns: [{ include: "#js_brackets" }, { include: "#babel_parens" }, { include: "source.js" }] } }, scopeName: "text.pug", embeddedLangs: ["javascript", "css", "sass", "scss", "stylus", "coffee", "html"], aliases: ["jade"] });
361
+ var _ = [
362
+ ...e,
363
+ ...t,
364
+ ...s,
365
+ ...i,
366
+ ...r,
367
+ ...o,
368
+ ...n,
369
+ y
370
+ ];
371
+ const x = Object.freeze({ displayName: "Less", name: "less", patterns: [{ include: "#comment-block" }, { include: "#less-namespace-accessors" }, { include: "#less-extend" }, { include: "#at-rules" }, { include: "#less-variable-assignment" }, { include: "#property-list" }, { include: "#selector" }], repository: { "angle-type": { captures: { 1: { name: "keyword.other.unit.less" } }, match: "(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(deg|grad|rad|turn))\\b", name: "constant.numeric.less" }, "at-charset": { begin: "\\s*((@)charset\\b)\\s*", captures: { 1: { name: "keyword.control.at-rule.charset.less" }, 2: { name: "punctuation.definition.keyword.less" } }, end: "\\s*((?=;|$))", name: "meta.at-rule.charset.less", patterns: [{ include: "#literal-string" }] }, "at-counter-style": { begin: "\\s*((@)counter-style\\b)\\s+(?:(?i:\\b(decimal|none)\\b)|(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*))\\s*(?=\\{|$)", captures: { 1: { name: "keyword.control.at-rule.counter-style.less" }, 2: { name: "punctuation.definition.keyword.less" }, 3: { name: "invalid.illegal.counter-style-name.less" }, 4: { name: "entity.other.counter-style-name.css" } }, end: "\\s*(\\})", endCaptures: { 1: { name: "punctuation.definition.block.begin.less" } }, name: "meta.at-rule.counter-style.less", patterns: [{ include: "#comment-block" }, { include: "#rule-list" }] }, "at-custom-media": { begin: "(?=\\s*@custom-media\\b)", end: "\\s*(?=;)", name: "meta.at-rule.custom-media.less", patterns: [{ captures: { 0: { name: "punctuation.section.property-list.less" } }, match: "\\s*;" }, { captures: { 1: { name: "keyword.control.at-rule.custom-media.less" }, 2: { name: "punctuation.definition.keyword.less" }, 3: { name: "support.constant.custom-media.less" } }, match: "\\s*((@)custom-media)(?=.*?)" }, { include: "#media-query-list" }] }, "at-font-face": { begin: "\\s*((@)font-face)\\s*(?=\\{|$)", captures: { 1: { name: "keyword.control.at-rule.font-face.less" }, 2: { name: "punctuation.definition.keyword.less" } }, end: "\\s*(\\})", endCaptures: { 1: { name: "punctuation.definition.block.end.less" } }, name: "meta.at-rule.font-face.less", patterns: [{ include: "#comment-block" }, { include: "#rule-list" }] }, "at-import": { begin: "\\s*((@)import\\b)\\s*", beginCaptures: { 1: { name: "keyword.control.at-rule.import.less" }, 2: { name: "punctuation.definition.keyword.less" } }, end: "\\;", endCaptures: { 0: { name: "punctuation.terminator.rule.less" } }, name: "meta.at-rule.import.less", patterns: [{ include: "#url-function" }, { include: "#less-variables" }, { begin: `(?<=(["'])|(["']\\)))\\s*`, end: "\\s*(?=\\;)", patterns: [{ include: "#media-query" }] }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.group.less", patterns: [{ match: "reference|inline|less|css|once|multiple|optional", name: "constant.language.import-directive.less" }, { include: "#comma-delimiter" }] }, { include: "#literal-string" }] }, "at-keyframes": { begin: "\\s*((@)(-webkit-|-moz-|-o-)?keyframes)(?=.*?\\{)", beginCaptures: { 1: { name: "keyword.control.at-rule.keyframe.less" }, 2: { name: "punctuation.definition.keyword.less" }, 3: { name: "support.type.property-vendor.less" }, 4: { name: "support.constant.keyframe.less" } }, end: "\\s*(\\})", endCaptures: { 1: { name: "punctuation.definition.block.end.less" } }, patterns: [{ begin: "\\s*(\\{)", beginCaptures: { 1: { name: "punctuation.definition.block.begin.less" } }, end: "(?=\\})", patterns: [{ captures: { 1: { name: "keyword.other.keyframe-selector.less" }, 2: { name: "constant.numeric.less" }, 3: { name: "keyword.other.unit.less" } }, match: "\\s*(?:(from|to)|((?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)(%)))\\s*,?\\s*" }, { include: "$self" }] }, { begin: "\\s*(?=[^{;])", end: "\\s*(?=\\{)", name: "meta.at-rule.keyframe.less", patterns: [{ include: "#keyframe-name" }] }] }, "at-media": { begin: "(?=\\s*@media\\b)", end: "\\s*(\\})", endCaptures: { 1: { name: "punctuation.definition.block.end.less" } }, patterns: [{ begin: "\\s*((@)media)", beginCaptures: { 1: { name: "keyword.control.at-rule.media.less" }, 2: { name: "punctuation.definition.keyword.less" }, 3: { name: "support.constant.media.less" } }, end: "\\s*(?=\\{)", name: "meta.at-rule.media.less", patterns: [{ include: "#media-query-list" }] }, { begin: "\\s*(\\{)", beginCaptures: { 1: { name: "punctuation.definition.block.begin.less" } }, end: "(?=\\})", patterns: [{ include: "#rule-list-body" }, { include: "$self" }] }] }, "at-namespace": { begin: "\\s*((@)namespace)\\s+", beginCaptures: { 1: { name: "keyword.control.at-rule.namespace.less" }, 2: { name: "punctuation.definition.keyword.less" } }, end: "\\;", endCaptures: { 0: { name: "punctuation.terminator.rule.less" } }, name: "meta.at-rule.namespace.less", patterns: [{ include: "#url-function" }, { include: "#literal-string" }, { match: "(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)", name: "entity.name.constant.namespace-prefix.less" }] }, "at-page": { captures: { 1: { name: "keyword.control.at-rule.page.less" }, 2: { name: "punctuation.definition.keyword.less" }, 3: { name: "punctuation.definition.entity.less" }, 4: { name: "entity.other.attribute-name.pseudo-class.less" } }, match: "\\s*((@)page)\\s*(?:(:)(first|left|right))?\\s*(?=\\{|$)", name: "meta.at-rule.page.less", patterns: [{ include: "#comment-block" }, { include: "#rule-list" }] }, "at-rules": { patterns: [{ include: "#at-charset" }, { include: "#at-counter-style" }, { include: "#at-custom-media" }, { include: "#at-font-face" }, { include: "#at-media" }, { include: "#at-import" }, { include: "#at-keyframes" }, { include: "#at-namespace" }, { include: "#at-page" }, { include: "#at-supports" }, { include: "#at-viewport" }] }, "at-supports": { begin: "(?=\\s*@supports\\b)", end: "(?=\\s*)(\\})", endCaptures: { 1: { name: "punctuation.definition.block.end.less" } }, patterns: [{ begin: "\\s*((@)supports)", beginCaptures: { 1: { name: "keyword.control.at-rule.supports.less" }, 2: { name: "punctuation.definition.keyword.less" }, 3: { name: "support.constant.supports.less" } }, end: "\\s*(?=\\{)", name: "meta.at-rule.supports.less", patterns: [{ include: "#at-supports-operators" }, { include: "#at-supports-parens" }] }, { begin: "\\s*(\\{)", beginCaptures: { 1: { name: "punctuation.section.property-list.begin.less" } }, end: "(?=\\})", patterns: [{ include: "#rule-list-body" }, { include: "$self" }] }] }, "at-supports-operators": { match: "\\b(?:and|or|not)\\b", name: "keyword.operator.logic.less" }, "at-supports-parens": { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.group.less", patterns: [{ include: "#at-supports-operators" }, { include: "#at-supports-parens" }, { include: "#rule-list-body" }] }, "at-viewport": { begin: "((@(-ms-)?)viewport)", beginCaptures: { 1: { name: "keyword.control.at-rule.viewport.less" }, 2: { name: "punctuation.definition.keyword.less" }, 3: { name: "support.type.vendor-prefix.less" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.end.less" } }, name: "meta.at-rule.viewport.less", patterns: [{ begin: "\\{", captures: { 0: { name: "punctuation.definition.block.begin.less" } }, end: "(?=\\})", name: "meta.block.less", patterns: [{ include: "#rule-list-body" }] }] }, "attr-function": { begin: "\\b(attr)(?=\\()", beginCaptures: { 1: { name: "support.function.filter.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#qualified-name" }, { include: "#literal-string" }, { begin: "(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)", end: "(?=\\))", name: "entity.other.attribute-name.less", patterns: [{ match: "(?x)\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\b", name: "keyword.other.unit.less" }, { include: "#comma-delimiter" }, { include: "#property-value-constants" }, { include: "#numeric-values" }] }, { include: "#color-values" }] }] }, "builtin-functions": { patterns: [{ include: "#attr-function" }, { include: "#calc-function" }, { include: "#color-functions" }, { include: "#counter-functions" }, { include: "#cross-fade-function" }, { include: "#cubic-bezier-function" }, { include: "#filter-function" }, { include: "#format-function" }, { include: "#gradient-functions" }, { include: "#grid-repeat-function" }, { include: "#image-function" }, { include: "#less-functions" }, { include: "#local-function" }, { include: "#minmax-function" }, { include: "#regexp-function" }, { include: "#shape-functions" }, { include: "#steps-function" }, { include: "#symbols-function" }, { include: "#transform-functions" }, { include: "#url-function" }, { include: "#var-function" }] }, "calc-function": { begin: "\\b(calc)(?=\\()", beginCaptures: { 1: { name: "support.function.calc.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-strings" }, { include: "#var-function" }, { include: "#calc-function" }, { include: "#attr-function" }, { include: "#less-math" }] }] }, "color-adjuster-operators": { match: "[\\-\\+*](?=\\s+)", name: "keyword.operator.less" }, "color-functions": { patterns: [{ begin: "\\b(rgba?)(?=\\()", beginCaptures: { 1: { name: "support.function.color.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-strings" }, { include: "#less-variables" }, { include: "#comma-delimiter" }, { include: "#percentage-type" }, { include: "#number-type" }] }] }, { begin: "\\b(hs(l|v)a?|hwb)(?=\\()", beginCaptures: { 1: { name: "support.function.color.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-strings" }, { include: "#less-variables" }, { include: "#comma-delimiter" }, { include: "#angle-type" }, { include: "#percentage-type" }, { include: "#number-type" }] }] }, { include: "#less-color-functions" }] }, "color-values": { patterns: [{ include: "#color-functions" }, { include: "#less-functions" }, { include: "#less-variables" }, { match: "\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b", name: "support.constant.color.w3c-standard-color-name.less" }, { match: "\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b", name: "support.constant.color.w3c-extended-color-keywords.less" }, { match: "\\b((?i)currentColor|transparent)\\b", name: "support.constant.color.w3c-special-color-keyword.less" }, { captures: { 1: { name: "punctuation.definition.constant.less" } }, match: "(#)(\\h{3}|\\h{4}|\\h{6}|\\h{8})\\b", name: "constant.other.color.rgb-value.less" }] }, "comma-delimiter": { captures: { 1: { name: "punctuation.separator.less" } }, match: "\\s*(,)\\s*" }, "comment-block": { patterns: [{ begin: "/\\*", captures: { 0: { name: "punctuation.definition.comment.less" } }, end: "\\*/", name: "comment.block.less" }, { include: "#comment-line" }] }, "comment-line": { captures: { 1: { name: "punctuation.definition.comment.less" } }, match: "(//).*$\\n?", name: "comment.line.double-slash.less" }, "counter-functions": { patterns: [{ begin: "\\b(counter)(?=\\()", beginCaptures: { 1: { name: "support.function.filter.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-strings" }, { include: "#less-variables" }, { match: "(?:--(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))+|-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)", name: "entity.other.counter-name.less" }, { begin: "(?=,)", end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { match: "\\b((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)|none)\\b", name: "support.constant.property-value.counter-style.less" }] }] }] }, { begin: "\\b(counters)(?=\\()", beginCaptures: { 1: { name: "support.function.filter.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ match: "(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)", name: "entity.other.counter-name.less string.unquoted.less" }, { begin: "(?=,)", end: "(?=\\))", patterns: [{ include: "#less-strings" }, { include: "#less-variables" }, { include: "#literal-string" }, { include: "#comma-delimiter" }, { match: "\\b((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)|none)\\b", name: "support.constant.property-value.counter-style.less" }] }] }] }] }, "cross-fade-function": { patterns: [{ begin: "\\b(cross-fade)(?=\\()", beginCaptures: { 1: { name: "support.function.image.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { include: "#percentage-type" }, { include: "#color-values" }, { include: "#image-type" }, { include: "#literal-string" }, { include: "#unquoted-string" }] }] }] }, "cubic-bezier-function": { begin: "\\b(cubic-bezier)(?=\\()", beginCaptures: { 0: { name: "support.function.timing.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { include: "#number-type" }] }] }, "custom-property-name": { captures: { 1: { name: "punctuation.definition.custom-property.less" }, 2: { name: "support.type.custom-property.name.less" } }, match: "\\s*(--)((?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))+)", name: "support.type.custom-property.less" }, dimensions: { patterns: [{ include: "#angle-type" }, { include: "#frequency-type" }, { include: "#length-type" }, { include: "#resolution-type" }, { include: "#time-type" }] }, "filter-function": { begin: "\\b(filter)(?=\\()", beginCaptures: { 1: { name: "support.function.filter.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", name: "meta.group.less", patterns: [{ include: "#comma-delimiter" }, { include: "#image-type" }, { include: "#literal-string" }, { include: "#filter-functions" }] }] }, "filter-functions": { patterns: [{ include: "#less-functions" }, { begin: "\\b(blur)(?=\\()", beginCaptures: { 1: { name: "support.function.filter.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#length-type" }] }] }, { begin: "\\b(brightness|contrast|grayscale|invert|opacity|saturate|sepia)(?=\\()", beginCaptures: { 1: { name: "support.function.filter.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#percentage-type" }, { include: "#number-type" }, { include: "#less-functions" }] }] }, { begin: "\\b(drop-shadow)(?=\\()", beginCaptures: { 1: { name: "support.function.filter.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#length-type" }, { include: "#color-values" }] }] }, { begin: "\\b(hue-rotate)(?=\\()", beginCaptures: { 1: { name: "support.function.filter.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#angle-type" }] }] }] }, "format-function": { patterns: [{ begin: "\\b(format)(?=\\()", beginCaptures: { 0: { name: "support.function.format.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#literal-string" }] }] }] }, "frequency-type": { captures: { 1: { name: "keyword.other.unit.less" } }, match: "(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(Hz|kHz))\\b", name: "constant.numeric.less" }, "gradient-functions": { patterns: [{ begin: "\\b((?:repeating-)?linear-gradient)(?=\\()", beginCaptures: { 1: { name: "support.function.gradient.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#angle-type" }, { include: "#color-values" }, { include: "#percentage-type" }, { include: "#length-type" }, { include: "#comma-delimiter" }, { match: "\\bto\\b", name: "keyword.other.less" }, { match: "\\b(top|right|bottom|left)\\b", name: "support.constant.property-value.less" }] }] }, { begin: "\\b((?:repeating-)?radial-gradient)(?=\\()", beginCaptures: { 1: { name: "support.function.gradient.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#color-values" }, { include: "#percentage-type" }, { include: "#length-type" }, { include: "#comma-delimiter" }, { match: "\\b(at|circle|ellipse)\\b", name: "keyword.other.less" }, { match: "\\b(top|right|bottom|left|center|(farthest|closest)-(corner|side))\\b", name: "support.constant.property-value.less" }] }] }] }, "grid-repeat-function": { begin: "\\b(repeat)(?=\\()", beginCaptures: { 1: { name: "support.function.grid.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { include: "#var-function" }, { include: "#length-type" }, { include: "#percentage-type" }, { include: "#minmax-function" }, { include: "#integer-type" }, { match: "\\b(auto-(fill|fit))\\b", name: "support.keyword.repetitions.less" }, { match: "\\b(((max|min)-content)|auto)\\b", name: "support.constant.property-value.less" }] }] }, "image-function": { begin: "\\b(image)(?=\\()", beginCaptures: { 1: { name: "support.function.image.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#image-type" }, { include: "#literal-string" }, { include: "#color-values" }, { include: "#comma-delimiter" }, { include: "#unquoted-string" }] }] }, "image-type": { patterns: [{ include: "#cross-fade-function" }, { include: "#gradient-functions" }, { include: "#image-function" }, { include: "#url-function" }] }, "integer-type": { match: "(?:[-+]?\\d+)", name: "constant.numeric.less" }, "keyframe-name": { begin: "\\s*(-?(?:[_a-z]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\s\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))(?:[_a-z0-9-]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))*)?", beginCaptures: { 1: { name: "variable.other.constant.animation-name.less" } }, end: "\\s*(?:(,)|(?=[{;]))", endCaptures: { 1: { name: "punctuation.definition.arbitrary-repetition.less" } } }, "length-type": { captures: { 1: { name: "keyword.other.unit.less" } }, match: "0|(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(em|ex|ch|rem|vw|vh|vmin|vmax|(c|m)?m|q|in|pt|pc|px|fr))\\b", name: "constant.numeric.less" }, "less-boolean-function": { begin: "\\b(boolean)(?=\\()", beginCaptures: { 1: { name: "support.function.boolean.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-logical-comparisons" }] }] }, "less-color-blend-functions": { patterns: [{ begin: "\\b(multiply|screen|overlay|(soft|hard)light|difference|exclusion|negation|average)(?=\\()", beginCaptures: { 1: { name: "support.function.color-blend.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#comma-delimiter" }, { include: "#color-values" }] }] }] }, "less-color-channel-functions": { patterns: [{ begin: "\\b(hue|saturation|lightness|hsv(hue|saturation|value)|red|green|blue|alpha|luma|luminance)(?=\\()", beginCaptures: { 1: { name: "support.function.color-definition.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#color-values" }] }] }] }, "less-color-definition-functions": { patterns: [{ begin: "\\b(argb)(?=\\()", beginCaptures: { 1: { name: "support.function.color-definition.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#color-values" }] }] }] }, "less-color-functions": { patterns: [{ include: "#less-color-blend-functions" }, { include: "#less-color-channel-functions" }, { include: "#less-color-definition-functions" }, { include: "#less-color-operation-functions" }] }, "less-color-operation-functions": { patterns: [{ begin: "\\b(fade|shade|tint)(?=\\()", beginCaptures: { 1: { name: "support.function.color-operation.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#color-values" }, { include: "#comma-delimiter" }, { include: "#percentage-type" }] }] }, { begin: "\\b(spin)(?=\\()", beginCaptures: { 1: { name: "support.function.color-operation.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#color-values" }, { include: "#comma-delimiter" }, { include: "#number-type" }] }] }, { begin: "\\b(((de)?saturate)|((light|dark)en)|(fade(in|out)))(?=\\()", beginCaptures: { 1: { name: "support.function.color-operation.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#color-values" }, { include: "#comma-delimiter" }, { include: "#percentage-type" }, { match: "\\brelative\\b", name: "constant.language.relative.less" }] }] }, { begin: "\\b(contrast)(?=\\()", beginCaptures: { 1: { name: "support.function.color-operation.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#color-values" }, { include: "#comma-delimiter" }, { include: "#percentage-type" }] }] }, { begin: "\\b(greyscale)(?=\\()", beginCaptures: { 1: { name: "support.function.color-operation.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#color-values" }] }] }, { begin: "\\b(mix)(?=\\()", beginCaptures: { 1: { name: "support.function.color-operation.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#color-values" }, { include: "#comma-delimiter" }, { include: "#less-math" }, { include: "#percentage-type" }] }] }] }, "less-extend": { begin: "(:)(extend)(?=\\()", beginCaptures: { 1: { name: "punctuation.definition.entity.less" }, 2: { name: "entity.other.attribute-name.pseudo-class.extend.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ match: "\\ball\\b", name: "constant.language.all.less" }, { include: "#selectors" }] }] }, "less-functions": { patterns: [{ include: "#less-boolean-function" }, { include: "#less-color-functions" }, { include: "#less-if-function" }, { include: "#less-list-functions" }, { include: "#less-math-functions" }, { include: "#less-misc-functions" }, { include: "#less-string-functions" }, { include: "#less-type-functions" }] }, "less-if-function": { begin: "\\b(if)(?=\\()", beginCaptures: { 1: { name: "support.function.if.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-mixin-guards" }, { include: "#comma-delimiter" }, { include: "#property-values" }] }] }, "less-list-functions": { patterns: [{ begin: "\\b(length)(?=\\()\\b", beginCaptures: { 1: { name: "support.function.length.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#property-values" }, { include: "#comma-delimiter" }] }] }, { begin: "\\b(extract)(?=\\()\\b", beginCaptures: { 1: { name: "support.function.extract.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#property-values" }, { include: "#comma-delimiter" }, { include: "#integer-type" }] }] }, { begin: "\\b(range)(?=\\()\\b", beginCaptures: { 1: { name: "support.function.range.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#property-values" }, { include: "#comma-delimiter" }, { include: "#integer-type" }] }] }] }, "less-logical-comparisons": { patterns: [{ captures: { 1: { name: "keyword.operator.logical.less" } }, match: "\\s*(=|((<|>)=?))\\s*" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.group.less", patterns: [{ include: "#less-logical-comparisons" }] }, { match: "\\btrue|false\\b", name: "constant.language.less" }, { match: ",", name: "punctuation.separator.less" }, { include: "#property-values" }, { include: "#selectors" }, { include: "#unquoted-string" }] }, "less-math": { patterns: [{ match: "[-\\+\\*\\/]", name: "keyword.operator.arithmetic.less" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.group.less", patterns: [{ include: "#less-math" }] }, { include: "#numeric-values" }, { include: "#less-variables" }] }, "less-math-functions": { patterns: [{ begin: "\\b(ceil|floor|percentage|round|sqrt|abs|a?(sin|cos|tan))(?=\\()", beginCaptures: { 1: { name: "support.function.math.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#numeric-values" }] }] }, { captures: { 2: { name: "support.function.math.less" }, 3: { name: "punctuation.definition.group.begin.less" }, 4: { name: "punctuation.definition.group.end.less" } }, match: "((pi)(\\()(\\)))", name: "meta.function-call.less" }, { begin: "\\b(pow|m(od|in|ax))(?=\\()", beginCaptures: { 1: { name: "support.function.math.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#numeric-values" }, { include: "#comma-delimiter" }] }] }] }, "less-misc-functions": { patterns: [{ begin: "\\b(color)(?=\\()", beginCaptures: { 1: { name: "support.function.color.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#literal-string" }] }] }, { begin: "\\b(image-(size|width|height))(?=\\()", beginCaptures: { 1: { name: "support.function.image.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#literal-string" }, { include: "#unquoted-string" }] }] }, { begin: "\\b(convert|unit)(?=\\()", beginCaptures: { 1: { name: "support.function.convert.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#dimensions" }, { include: "#numeric-values" }, { include: "#literal-string" }, { include: "#comma-delimiter" }, { match: "((c|m)?m|in|p(t|c|x)|m?s|g?rad|deg|turn|%|r?em|ex|ch)", name: "keyword.other.unit.less" }] }] }, { begin: "\\b(data-uri)(?=\\()", beginCaptures: { 1: { name: "support.function.data-uri.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#literal-string" }, { captures: { 1: { name: "punctuation.separator.less" } }, match: "\\s*(?:(,))" }] }] }, { captures: { 2: { name: "punctuation.definition.group.begin.less" }, 3: { name: "punctuation.definition.group.end.less" } }, match: "\\b(default(\\()(\\)))\\b", name: "support.function.default.less" }, { begin: "\\b(get-unit)(?=\\()", beginCaptures: { 1: { name: "support.function.get-unit.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#dimensions" }] }] }, { begin: "\\b(svg-gradient)(?=\\()", beginCaptures: { 1: { name: "support.function.svg-gradient.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#angle-type" }, { include: "#comma-delimiter" }, { include: "#color-values" }, { include: "#percentage-type" }, { include: "#length-type" }, { match: "\\bto\\b", name: "keyword.other.less" }, { match: "\\b(top|right|bottom|left|center)\\b", name: "support.constant.property-value.less" }, { match: "\\b(at|circle|ellipse)\\b", name: "keyword.other.less" }] }] }] }, "less-mixin-guards": { patterns: [{ begin: "\\s*(and|not|or)?\\s*(?=\\()", beginCaptures: { 1: { name: "keyword.operator.logical.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", name: "meta.group.less", patterns: [{ include: "#less-variable-comparison" }, { captures: { 1: { name: "meta.group.less" }, 2: { name: "punctuation.definition.group.begin.less" }, 3: { name: "punctuation.definition.group.end.less" } }, match: "default((\\()(\\)))", name: "support.function.default.less" }, { include: "#property-values" }, { include: "#less-logical-comparisons" }, { include: "$self" }] }] }] }, "less-namespace-accessors": { patterns: [{ begin: "(?=\\s*when\\b)", end: "\\s*(?:(,)|(?=[{;]))", endCaptures: { 1: { name: "punctuation.definition.block.end.less" } }, name: "meta.conditional.guarded-namespace.less", patterns: [{ captures: { 1: { name: "keyword.control.conditional.less" }, 2: { name: "punctuation.definition.keyword.less" } }, match: "\\s*(when)(?=.*?)" }, { include: "#less-mixin-guards" }, { include: "#comma-delimiter" }, { begin: "\\s*(\\{)", beginCaptures: { 1: { name: "punctuation.section.property-list.begin.less" } }, end: "(?=\\})", name: "meta.block.less", patterns: [{ include: "#rule-list-body" }] }, { include: "#selectors" }] }, { begin: "(\\()", beginCaptures: { 1: { name: "punctuation.definition.group.begin.less" } }, end: "(\\))", endCaptures: { 1: { name: "punctuation.definition.group.end.less" }, 2: { name: "punctuation.terminator.rule.less" } }, name: "meta.group.less", patterns: [{ include: "#less-variable-assignment" }, { include: "#comma-delimiter" }, { captures: { 1: { name: "punctuation.terminator.rule.less" } }, match: "\\s*(;)|(?=[})])" }, { include: "#property-values" }, { include: "#rule-list-body" }] }] }, "less-number-units": { patterns: [{ match: "\\b((c|m)?m|in|p(t|c)|m?s|g?rad|deg|turn)\\b", name: "keyword.other.unit.less" }, { match: "\\b(r?em|ex|ch|vw|vh|vmin|vmax|cm|mm|q|in|pt|pc|px|fr|s|ms|Hz|kHz|dpi|dpcm|dppx|deg|grad|rad|turn)\\b" }] }, "less-string-functions": { patterns: [{ begin: "\\b(e(scape)?)(?=\\()\\b", beginCaptures: { 1: { name: "support.function.escape.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#comma-delimiter" }, { include: "#literal-string" }, { include: "#unquoted-string" }] }] }, { begin: "\\s*(%)(?=\\()\\s*", beginCaptures: { 1: { name: "support.function.format.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#comma-delimiter" }, { include: "#literal-string" }, { include: "#property-values" }] }] }, { begin: "\\b(replace)(?=\\()\\b", beginCaptures: { 1: { name: "support.function.replace.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#comma-delimiter" }, { include: "#literal-string" }, { include: "#property-values" }] }] }] }, "less-strings": { patterns: [{ begin: `(~)('|")`, beginCaptures: { 1: { name: "constant.character.escape.less" }, 2: { name: "punctuation.definition.string.begin.less" } }, contentName: "markup.raw.inline.less", end: `('|")|(\\n)`, endCaptures: { 1: { name: "punctuation.definition.string.end.less" }, 2: { name: "invalid.illegal.newline.less" } }, name: "string.quoted.other.less", patterns: [{ include: "#string-content" }] }] }, "less-type-functions": { patterns: [{ begin: "\\b(is(number|string|color|keyword|url|pixel|em|percentage|ruleset))(?=\\()", beginCaptures: { 1: { name: "support.function.type.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#property-values" }] }] }, { begin: "\\b(isunit)(?=\\()", beginCaptures: { 1: { name: "support.function.type.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#property-values" }, { include: "#comma-delimiter" }, { match: "(?x)\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\b", name: "keyword.other.unit.less" }] }] }, { begin: "\\b(isdefined)(?=\\()", beginCaptures: { 1: { name: "support.function.type.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }] }] }] }, "less-variable-assignment": { patterns: [{ begin: "(@)(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)", beginCaptures: { 0: { name: "variable.other.readwrite.less" }, 1: { name: "punctuation.definition.variable.less" }, 2: { name: "support.other.variable.less" } }, end: "\\s*(;|(\\.{3})|(?=\\)))", endCaptures: { 1: { name: "punctuation.terminator.rule.less" }, 2: { name: "keyword.operator.spread.less" } }, name: "meta.property-value.less", patterns: [{ captures: { 1: { name: "punctuation.separator.key-value.less" }, 4: { name: "meta.property-value.less" } }, match: "(((\\+_?)?):)([\\s\\t]*)" }, { include: "#property-values" }, { include: "#comma-delimiter" }, { include: "#property-list" }, { include: "#unquoted-string" }] }] }, "less-variable-comparison": { patterns: [{ begin: "(@{1,2})([-]?([_a-z]|[^\\x{00}-\\x{7F}]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)", beginCaptures: { 0: { name: "variable.other.readwrite.less" }, 1: { name: "punctuation.definition.variable.less" }, 2: { name: "support.other.variable.less" } }, end: "\\s*(?=\\))", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, patterns: [{ captures: { 1: { name: "keyword.operator.logical.less" } }, match: "\\s*(=|((<|>)=?))\\s*" }, { match: "\\btrue\\b", name: "constant.language.less" }, { include: "#property-values" }, { include: "#selectors" }, { include: "#unquoted-string" }, { match: ",", name: "punctuation.separator.less" }] }] }, "less-variable-interpolation": { captures: { 1: { name: "punctuation.definition.variable.less" }, 2: { name: "punctuation.definition.expression.less" }, 3: { name: "support.other.variable.less" }, 4: { name: "punctuation.definition.expression.less" } }, match: "(@)(\\{)([-\\w]+)(\\})", name: "variable.other.readwrite.less" }, "less-variables": { captures: { 1: { name: "punctuation.definition.variable.less" }, 2: { name: "support.other.variable.less" } }, match: "\\s*(@@?)([-\\w]+)", name: "variable.other.readwrite.less" }, "literal-string": { patterns: [{ begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.less" } }, end: "(')|(\\n)", endCaptures: { 1: { name: "punctuation.definition.string.end.less" }, 2: { name: "invalid.illegal.newline.less" } }, name: "string.quoted.single.less", patterns: [{ include: "#string-content" }] }, { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.less" } }, end: '(")|(\\n)', endCaptures: { 1: { name: "punctuation.definition.string.end.less" }, 2: { name: "invalid.illegal.newline.less" } }, name: "string.quoted.double.less", patterns: [{ include: "#string-content" }] }, { include: "#less-strings" }] }, "local-function": { begin: "\\b(local)(?=\\()", beginCaptures: { 0: { name: "support.function.font-face.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#unquoted-string" }] }] }, "media-query": { begin: "\\s*(only|not)?\\s*(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)?", beginCaptures: { 1: { name: "keyword.operator.logic.media.less" }, 2: { name: "support.constant.media.less" } }, end: "\\s*(?:(,)|(?=[{;]))", endCaptures: { 1: { name: "punctuation.definition.arbitrary-repetition.less" } }, patterns: [{ include: "#less-variables" }, { include: "#custom-property-name" }, { begin: "\\s*(and)?\\s*(\\()\\s*", beginCaptures: { 1: { name: "keyword.operator.logic.media.less" }, 2: { name: "punctuation.definition.group.begin.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.group.less", patterns: [{ begin: "((-webkit-|-o-)?((min|max)-)?(-moz-)?(((device-)?(height|width|aspect-ratio|pixel-ratio))|(color(-index)?)|monochrome|resolution))|grid|scan|orientation\\s*(?=[:)])", beginCaptures: { 0: { name: "support.type.property-name.media.less" }, 2: { name: "support.type.vendor-prefix.less" }, 5: { name: "support.type.vendor-prefix.less" } }, end: "(((\\+_?)?):)|(?=\\))", endCaptures: { 1: { name: "punctuation.separator.key-value.less" } } }, { match: "\\b(portrait|landscape|progressive|interlace)", name: "support.constant.property-value.less" }, { captures: { 1: { name: "constant.numeric.less" }, 2: { name: "keyword.operator.arithmetic.less" }, 3: { name: "constant.numeric.less" } }, match: "\\s*(\\d+)(/)(\\d+)" }, { include: "#less-math" }] }] }, "media-query-list": { begin: "\\s*(?=[^{;])", end: "\\s*(?=[{;])", patterns: [{ include: "#media-query" }] }, "minmax-function": { begin: "\\b(minmax)(?=\\()", beginCaptures: { 1: { name: "support.function.grid.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#length-type" }, { include: "#comma-delimiter" }, { match: "\\b(max-content|min-content)\\b", name: "support.constant.property-value.less" }] }] }, "number-type": { match: "[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))", name: "constant.numeric.less" }, "numeric-values": { patterns: [{ include: "#dimensions" }, { include: "#percentage-type" }, { include: "#number-type" }] }, "percentage-type": { captures: { 1: { name: "keyword.other.unit.less" } }, match: "[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(%)", name: "constant.numeric.less" }, "property-list": { patterns: [{ begin: "(?=(?=[^;]*)\\{)", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.end.less" } }, patterns: [{ include: "#rule-list" }] }] }, "property-value-constants": { patterns: [{ match: `(?x)\\b(
372
+ absolute|active|add
373
+ |all(-(petite|small)-caps|-scroll)?
374
+ |alpha(betic)?
375
+ |alternate(-reverse)?
376
+ |always|annotation|antialiased|at
377
+ |auto(hiding-scrollbar)?
378
+ |avoid(-column|-page|-region)?
379
+ |background(-color|-image|-position|-size)?
380
+ |backwards|balance|baseline|below|bevel|bicubic|bidi-override|blink
381
+ |block(-line-height)?
382
+ |blur
383
+ |bold(er)?
384
+ |border(-bottom|-left|-right|-top)?-(color|radius|width|style)
385
+ |border-(bottom|top)-(left|right)-radius
386
+ |border-image(-outset|-repeat|-slice|-source|-width)?
387
+ |border(-bottom|-left|-right|-top|-collapse|-spacing|-box)?
388
+ |both|bottom
389
+ |box(-shadow)?
390
+ |break-(all|word)
391
+ |brightness
392
+ |butt(on)?
393
+ |capitalize
394
+ |cent(er|ral)
395
+ |char(acter-variant)?
396
+ |cjk-ideographic|clip|clone|close-quote
397
+ |closest-(corner|side)
398
+ |col-resize|collapse
399
+ |color(-stop|-burn|-dodge)?
400
+ |column((-count|-gap|-reverse|-rule(-color|-width)?|-width)|s)?
401
+ |common-ligatures|condensed|consider-shifts|contain
402
+ |content(-box|s)?
403
+ |contextual|contrast|cover
404
+ |crisp(-e|E)dges
405
+ |crop
406
+ |cross(hair)?
407
+ |da(rken|shed)
408
+ |default|dense|diagonal-fractions|difference|disabled
409
+ |discretionary-ligatures|disregard-shifts
410
+ |distribute(-all-lines|-letter|-space)?
411
+ |dotted|double|drop-shadow
412
+ |(nwse|nesw|ns|ew|sw|se|nw|ne|w|s|e|n)-resize
413
+ |ease(-in-out|-in|-out)?
414
+ |element|ellipsis|embed|end|EndColorStr|evenodd
415
+ |exclu(de(-ruby)?|sion)
416
+ |expanded
417
+ |(extra|semi|ultra)-(condensed|expanded)
418
+ |farthest-(corner|side)?
419
+ |fill(-box|-opacity)?
420
+ |filter|fixed|flat
421
+ |flex((-basis|-end|-grow|-shrink|-start)|box)?
422
+ |flip|flood-color
423
+ |font(-size(-adjust)?|-stretch|-weight)?
424
+ |forwards
425
+ |from(-image)?
426
+ |full-width|geometricPrecision|glyphs|gradient|grayscale
427
+ |grid(-height)?
428
+ |groove|hand|hanging|hard-light|height|help|hidden|hide
429
+ |historical-(forms|ligatures)
430
+ |horizontal(-tb)?
431
+ |hue
432
+ |ideograph(-alpha|-numeric|-parenthesis|-space|ic)
433
+ |inactive|include-ruby|infinite|inherit|initial
434
+ |inline(-block|-box|-flex(box)?|-line-height|-table)?
435
+ |inset|inside
436
+ |inter(-ideograph|-word|sect)
437
+ |invert|isolat(e|ion)|italic
438
+ |jis(04|78|83|90)
439
+ |justify(-all)?
440
+ |keep-all
441
+ |large[r]?
442
+ |last|layout|left|letter-spacing
443
+ |light(e[nr]|ing-color)
444
+ |line(-edge|-height|-through)?
445
+ |linear(-gradient|RGB)?
446
+ |lining-nums|list-item|local|loose|lowercase|lr-tb|ltr
447
+ |lumin(osity|ance)|manual
448
+ |manipulation
449
+ |margin(-bottom|-box|-left|-right|-top)?
450
+ |marker(-offset|s)?
451
+ |mathematical
452
+ |max-(content|height|lines|size|width)
453
+ |medium|middle
454
+ |min-(content|height|width)
455
+ |miter|mixed|move|multiply|newspaper
456
+ |no-(change|clip|(close|open)-quote|(common|discretionary|historical)-ligatures|contextual|drop|repeat)
457
+ |none|nonzero|normal|not-allowed|nowrap|oblique
458
+ |offset(-after|-before|-end|-start)?
459
+ |oldstyle-nums|opacity|open-quote
460
+ |optimize(Legibility|Precision|Quality|Speed)
461
+ |order|ordinal|ornaments
462
+ |outline(-color|-offset|-width)?
463
+ |outset|outside|over(line|-edge|lay)
464
+ |padding(-bottom|-box|-left|-right|-top|-box)?
465
+ |page|painted|paused
466
+ |pan-(x|left|right|y|up|down)
467
+ |perspective-origin
468
+ |petite-caps|pixelated|pointer
469
+ |pinch-zoom
470
+ |pre(-line|-wrap)?
471
+ |preserve-3d
472
+ |progid:DXImageTransform.Microsoft.(Alpha|Blur|dropshadow|gradient|Shadow)
473
+ |progress
474
+ |proportional-(nums|width)
475
+ |radial-gradient|recto|region|relative
476
+ |repeat(-[xy])?
477
+ |repeating-(linear|radial)-gradient
478
+ |replaced|reset-size|reverse|ridge|right
479
+ |round
480
+ |row(-resize|-reverse)?
481
+ |rtl|ruby|running|saturat(e|ion)|screen
482
+ |scroll(-position|bar)?
483
+ |separate|sepia
484
+ |scale-down
485
+ |shape-(image-threshold|margin|outside)
486
+ |show
487
+ |sideways(-lr|-rl)?
488
+ |simplified
489
+ |size
490
+ |slashed-zero|slice
491
+ |small(-caps|er)?
492
+ |smooth|snap|solid|soft-light
493
+ |space(-around|-between)?
494
+ |span|sRGB
495
+ |stack(ed-fractions)?
496
+ |start(ColorStr)?
497
+ |static
498
+ |step-(end|start)
499
+ |sticky
500
+ |stop-(color|opacity)
501
+ |stretch|strict
502
+ |stroke(-box|-dash(array|offset)|-miterlimit|-opacity|-width)?
503
+ |style(set)?
504
+ |stylistic
505
+ |sub(grid|pixel-antialiased|tract)?
506
+ |super|swash
507
+ |table(-caption|-cell|(-column|-footer|-header|-row)-group|-column|-row)?
508
+ |tabular-nums|tb-rl
509
+ |text((-bottom|-(decoration|emphasis)-color|-indent|-(over|under)-edge|-shadow|-size(-adjust)?|-top)|field)?
510
+ |thi(ck|n)
511
+ |titling-ca(ps|se)
512
+ |to[p]?
513
+ |touch|traditional
514
+ |transform(-origin)?
515
+ |under(-edge|line)?
516
+ |unicase|unset|uppercase|upright
517
+ |use-(glyph-orientation|script)
518
+ |verso
519
+ |vertical(-align|-ideographic|-lr|-rl|-text)?
520
+ |view-box
521
+ |viewport-fill(-opacity)?
522
+ |visibility
523
+ |visible(Fill|Painted|Stroke)?
524
+ |wait|wavy|weight|whitespace|(device-)?width|word-spacing
525
+ |wrap(-reverse)?
526
+ |x{1,2}-(large|small)
527
+ |z-index|zero
528
+ |zoom(-in|-out)?
529
+ |((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)))\\b`, name: "support.constant.property-value.less" }, { match: "\\b(?i:sans-serif|serif|monospace|fantasy|cursive)\\b(?=\\s*[;,\\n}])", name: "support.constant.font-name.less" }] }, "property-values": { patterns: [{ include: "#comment-block" }, { include: "#vendor-prefix" }, { include: "#builtin-functions" }, { include: "#color-functions" }, { include: "#less-math" }, { include: "#less-functions" }, { include: "#less-variables" }, { include: "#unicode-range" }, { include: "#numeric-values" }, { include: "#color-values" }, { include: "#property-value-constants" }, { include: "#literal-string" }, { captures: { 1: { name: "punctuation.separator.less" } }, match: "(\\!)\\s*important", name: "keyword.other.important.less" }] }, "pseudo-classes": { patterns: [{ begin: "(:)(dir|lang)(?=\\()", captures: { 1: { name: "punctuation.definition.entity.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "entity.other.attribute-name.pseudo-class.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#unquoted-string" }] }] }, { begin: "(:)(not)(?=\\()", captures: { 1: { name: "punctuation.definition.entity.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "entity.other.attribute-name.pseudo-class.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#selectors" }] }] }, { begin: "(:)(nth(-last)?-(child|of-type))(?=\\()", captures: { 1: { name: "punctuation.definition.entity.less" }, 2: { name: "entity.other.attribute-name.pseudo-class.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", name: "meta.group.less", patterns: [{ match: "\\b(even|odd)\\b", name: "keyword.other.pseudo-class.less" }, { captures: { 1: { name: "keyword.other.unit.less" } }, match: "(?:[-+]?(?:\\d+)?(n)(\\s*[-+]\\s*\\d+)?|[-+]?\\s*\\d+)", name: "constant.numeric.less" }, { include: "#less-math" }, { include: "#less-strings" }, { include: "#less-variable-interpolation" }] }] }, { begin: "(:)(host-context)(?=\\()", captures: { 1: { name: "punctuation.definition.entity.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "entity.other.attribute-name.pseudo-class.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#selectors" }] }] }, { captures: { 1: { name: "punctuation.definition.entity.less" }, 2: { name: "entity.other.attribute-name.pseudo-class.less" } }, match: "(:)(active|any|checked|default|disabled|empty|enabled|first(-(child|of-type))?|fullscreen|focus|host|hover|indeterminate|in-range|invalid|last-(child|of-type)|left|link|only-(child|of-type)|optional|out-of-range|read-(only|write)|required|right|root|scope|target|valid|visited)", name: "meta.function-call.less" }] }, "pseudo-elements": { patterns: [{ begin: "(::)(slotted)(?=\\()", captures: { 1: { name: "punctuation.definition.entity.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "entity.other.attribute-name.pseudo-class.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#selectors" }] }] }, { captures: { 1: { name: "punctuation.definition.entity.less" }, 2: { name: "punctuation.definition.entity.less" }, 3: { name: "support.type.vendor-prefix.less" } }, match: "(?:(:{1,2})(?:before|after|first-line|first-letter)|(::)(-(?:moz|ms|webkit)-)?(?:(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)))\\b", name: "entity.other.attribute-name.pseudo-element.less" }] }, "qualified-name": { captures: { 1: { name: "entity.name.constant.less" }, 2: { name: "entity.name.namespace.wildcard.less" }, 3: { name: "punctuation.separator.namespace.less" } }, match: "(?:(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)|(\\*))?([|])(?!=)" }, "regexp-function": { begin: "\\b(regexp)(?=\\()", end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "support.function.regexp.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", name: "meta.function-call.less", patterns: [{ include: "#literal-string" }] }] }, "resolution-type": { captures: { 1: { name: "keyword.other.unit.less" } }, match: "(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(dpi|dpcm|dppx))\\b", name: "constant.numeric.less" }, "rule-list": { patterns: [{ begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.begin.less" } }, end: "(?=\\s*\\})", name: "meta.property-list.less", patterns: [{ captures: { 1: { name: "punctuation.terminator.rule.less" } }, match: "\\s*(;)|(?=[})])" }, { include: "#rule-list-body" }, { include: "#less-extend" }] }] }, "rule-list-body": { patterns: [{ include: "#comment-block" }, { include: "#comment-line" }, { include: "#at-rules" }, { include: "#less-variable-assignment" }, { include: "#less-variable-interpolation" }, { begin: "(?=[-a-z])", end: "$|(?![-a-z])", patterns: [{ include: "#vendor-prefix" }, { include: "#custom-property-name" }, { include: "#filter-function" }, { captures: { 1: { name: "keyword.other.custom-property.prefix.less" }, 2: { name: "support.type.custom-property.name.less" } }, match: "\\b(var-)(-?(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)(?=\\s)", name: "invalid.deprecated.custom-property.less" }, { begin: "\\bfont(-family)?(?!-)\\b", beginCaptures: { 0: { name: "support.type.property-name.less" } }, end: "\\s*(;)|(?=[})])", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, name: "meta.property-name.less", patterns: [{ captures: { 1: { name: "punctuation.separator.key-value.less" }, 4: { name: "meta.property-value.less" } }, match: "(((\\+_?)?):)([\\s\\t]*)" }, { include: "#property-values" }, { match: "-?(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*(\\s+-?(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)*", name: "string.unquoted.less" }, { match: ",", name: "punctuation.separator.less" }] }, { begin: "\\banimation(-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function))?\\b", beginCaptures: { 0: { name: "support.type.property-name.less" } }, end: "\\s*(;)|(?=[})])", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, patterns: [{ begin: "(((\\+_?)?):)(?=[\\s\\t]*)", beginCaptures: { 1: { name: "punctuation.separator.key-value.less" } }, captures: { 1: { name: "punctuation.definition.arbitrary-repetition.less" } }, contentName: "meta.property-value.less", end: "(?=\\s*(;)|(?=[})]))", patterns: [{ match: "\\b(linear|ease(-in)?(-out)?|step-(start|end)|none|forwards|backwards|both|normal|alternate(-reverse)?|reverse|running|paused)\\b", name: "support.constant.property-value.less" }, { include: "#cubic-bezier-function" }, { include: "#steps-function" }, { include: "#time-type" }, { include: "#number-type" }, { match: "-?(?:[_a-zA-Z]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\s\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))(?:[-_a-zA-Z0-9]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))*", name: "variable.other.constant.animation-name.less" }, { include: "#literal-string" }, { include: "#property-values" }, { match: "\\s*(?:(,))" }] }] }, { begin: "\\b(transition(-(property|duration|delay|timing-function))?)\\b", beginCaptures: { 0: { name: "meta.property-name.less" }, 1: { name: "support.type.property-name.less" } }, end: "\\s*(;)|(?=[})])", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, patterns: [{ captures: { 1: { name: "punctuation.separator.key-value.less" }, 4: { name: "meta.property-value.less" } }, match: "(((\\+_?)?):)([\\s\\t]*)" }, { include: "#time-type" }, { include: "#property-values" }, { include: "#cubic-bezier-function" }, { include: "#steps-function" }, { captures: { 1: { name: "punctuation.definition.arbitrary-repetition.less" } }, match: "\\s*(?:(,))" }] }, { begin: "\\b(?:backdrop-)?filter\\b", beginCaptures: { 0: { name: "support.type.property-name.less" } }, end: "\\s*(;)|(?=[})])", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, name: "meta.property-name.less", patterns: [{ captures: { 1: { name: "punctuation.separator.key-value.less" }, 4: { name: "meta.property-value.less" } }, match: "(((\\+_?)?):)([\\s\\t]*)" }, { match: "\\b(inherit|initial|unset|none)\\b", name: "meta.property-value.less" }, { include: "#filter-functions" }] }, { begin: "\\bwill-change\\b", beginCaptures: { 0: { name: "support.type.property-name.less" } }, end: "\\s*(;)|(?=[})])", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, name: "meta.property-name.less", patterns: [{ captures: { 1: { name: "punctuation.separator.key-value.less" }, 4: { name: "meta.property-value.less" } }, match: "(((\\+_?)?):)([\\s\\t]*)" }, { match: "unset|initial|inherit|will-change|auto|scroll-position|contents", name: "invalid.illegal.property-value.less" }, { match: "-?(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*", name: "support.constant.property-value.less" }, { captures: { 1: { name: "punctuation.definition.arbitrary-repetition.less" } }, match: "\\s*(?:(,))" }] }, { begin: "\\bcounter-(increment|(re)?set)\\b", beginCaptures: { 0: { name: "support.type.property-name.less" } }, end: "\\s*(;)|(?=[})])", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, name: "meta.property-name.less", patterns: [{ captures: { 1: { name: "punctuation.separator.key-value.less" }, 4: { name: "meta.property-value.less" } }, match: "(((\\+_?)?):)([\\s\\t]*)" }, { match: "-?(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*", name: "entity.name.constant.counter-name.less" }, { include: "#integer-type" }, { match: "unset|initial|inherit|auto", name: "invalid.illegal.property-value.less" }] }, { match: "(?x)\\b( accent-height | align-content | align-items | align-self | alignment-baseline | all | animation-timing-function | animation-play-state | animation-name | animation-iteration-count | animation-fill-mode | animation-duration | animation-direction | animation-delay | animation | appearance | ascent | azimuth | backface-visibility | background-size | background-repeat-y | background-repeat-x | background-repeat | background-position-y | background-position-x | background-position | background-origin | background-image | background-color | background-clip | background-blend-mode | background-attachment | background | baseline-shift | begin | bias | blend-mode | border-((top|right|bottom|left)-)?(width|style|color) | border-(top|bottom)-(right|left)-radius | border-image-(width|source|slice|repeat|outset) | border-(top|right|bottom|left|collapse|image|radius|spacing) | border | bottom | box-(align|decoration-break|direction|flex|ordinal-group|orient|pack|shadow|sizing) | break-(after|before|inside) | caption-side | clear | clip-path | clip-rule | clip | color(-(interpolation(-filters)?|profile|rendering))? | columns | column-(break-before|count|fill|gap|(rule(-(color|style|width))?)|span|width) | contain | content | counter-(increment|reset) | cursor | (c|d|f)(x|y) | direction | display | divisor | dominant-baseline | dur | elevation | empty-cells | enable-background | end | fallback | fill(-(opacity|rule))? | filter | flex(-(align|basis|direction|flow|grow|item-align|line-pack|negative|order|pack|positive|preferred-size|shrink|wrap))? | float | flood-(color|opacity) | font-display | font-family | font-feature-settings | font-kerning | font-language-override | font-size(-adjust)? | font-smoothing | font-stretch | font-style | font-synthesis | font-variant(-(alternates|caps|east-asian|ligatures|numeric|position))? | font-weight | font | fr | glyph-orientation-(horizontal|vertical) | grid-(area|gap) | grid-auto-(columns|flow|rows) | grid-(column|row)(-(end|gap|start))? | grid-template(-(areas|columns|rows))? | height | hyphens | image-(orientation|rendering|resolution) | isolation | justify-content | kerning | left | letter-spacing | lighting-color | line-(box-contain|break|clamp|height) | list-style(-(image|position|type))? | margin(-(bottom|left|right|top))? | marker(-(end|mid|start))? | mask(-(clip||composite|image|origin|position|repeat|size|type))? | (max|min)-(height|width) | mix-blend-mode | nbsp-mode | negative | object-(fit|position) | opacity | operator | order | orphans | outline(-(color|offset|style|width))? | overflow(-(scrolling|wrap|x|y))? | pad(ding(-(bottom|left|right|top))?)? | page(-break-(after|before|inside))? | paint-order | pause(-(after|before))? | perspective(-origin(-(x|y))?)? | pitch(-range)? | pointer-events | position | prefix | quotes | range | resize | right | rotate | scale | scroll-behavior | shape-(image-threshold|margin|outside|rendering) | size | speak(-as)? | src | stop-(color|opacity) | stroke(-(dash(array|offset)|line(cap|join)|miterlimit|opacity|width))? | suffix | symbols | system | tab-size | table-layout | tap-highlight-color | text-align(-last)? | text-decoration(-(color|line|style))? | text-emphasis(-(color|position|style))? | text-(anchor|fill-color|height|indent|justify|orientation|overflow|rendering|shadow|transform|underline-position) | top | touch-action | transform(-origin(-(x|y))?) | transform(-style)? | transition(-(delay|duration|property|timing-function))? | translate | unicode-(bidi|range) | user-(drag|select) | vertical-align | visibility | white-space | widows | width | will-change | word-(break|spacing|wrap) | writing-mode | z-index | zoom )\\b", name: "support.type.property-name.less" }, { include: "$self" }] }, { begin: "\\b(((\\+_?)?):)([\\s\\t]*)", captures: { 1: { name: "punctuation.separator.key-value.less" }, 4: { name: "meta.property-value.less" } }, contentName: "meta.property-value.less", end: "\\s*(;)|(?=[})])", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, patterns: [{ include: "#property-values" }] }, { include: "$self" }] }, selector: { patterns: [{ begin: "(?=[>~+/\\.*#a-zA-Z\\[&]|(\\:{1,2}[^\\s])|@\\{)", contentName: "meta.selector.less", end: "(?=@(?!\\{)|[{;])", patterns: [{ include: "#comment-line" }, { include: "#selectors" }, { include: "#less-namespace-accessors" }, { include: "#less-variable-interpolation" }, { captures: { 1: { name: "punctuation.separator.less" } }, match: "(\\!)\\s*important", name: "keyword.other.important.less" }] }] }, selectors: { patterns: [{ match: "\\b([a-z](?:(?:[-_a-z0-9\\x{00B7}]|\\\\\\.|[[\\x{00C0}-\\x{00D6}][\\x{00D8}-\\x{00F6}][\\x{00F8}-\\x{02FF}][\\x{0300}-\\x{037D}][\\x{037F}-\\x{1FFF}][\\x{200C}-\\x{200D}][\\x{203F}-\\x{2040}][\\x{2070}-\\x{218F}][\\x{2C00}-\\x{2FEF}][\\x{3001}-\\x{D7FF}][\\x{F900}-\\x{FDCF}][\\x{FDF0}-\\x{FFFD}][\\x{10000}-\\x{EFFFF}]]))*-(?:(?:[-_a-z0-9\\x{00B7}]|\\\\\\.|[[\\x{00C0}-\\x{00D6}][\\x{00D8}-\\x{00F6}][\\x{00F8}-\\x{02FF}][\\x{0300}-\\x{037D}][\\x{037F}-\\x{1FFF}][\\x{200C}-\\x{200D}][\\x{203F}-\\x{2040}][\\x{2070}-\\x{218F}][\\x{2C00}-\\x{2FEF}][\\x{3001}-\\x{D7FF}][\\x{F900}-\\x{FDCF}][\\x{FDF0}-\\x{FFFD}][\\x{10000}-\\x{EFFFF}]]))*)\\b", name: "entity.name.tag.custom.less" }, { match: "(?x)\\b( a | abbr | acronym | address | applet | area | article | aside | audio | b | base | basefont | bdi | bdo | big | blockquote | body | br | button | canvas | caption | circle | cite | clipPath | code | col | colgroup | content | data | dataList | dd | defs | del | details | dfn | dialog | dir | div | dl | dt | element | ellipse | em | embed | eventsource | fieldset | figcaption | figure | filter | footer | foreignObject | form | frame | frameset | g | glyph | glyphRef | h1 | h2 | h3 | h4 | h5 | h6 | head | header | hgroup | hr | html | i | iframe | image | img | input | ins | isindex | kbd | keygen | label | legend | li | line | linearGradient | link | main | map | mark | marker | mask | menu | meta | meter | nav | noframes | noscript | object | ol | optgroup | option | output | p | param | path | pattern | picture | polygon | polyline | pre | progress | q | radialGradient | rect | rp | ruby | rt | rtc | s | samp | script | section | select | shadow | small | source | span | stop | strike | strong | style | sub | summary | sup | svg | switch | symbol | table | tbody | td | template | textarea | textPath | tfoot | th | thead | time | title | tr | track | tref | tspan | tt | u | ul | use | var | video | wbr | xmp )\\b", name: "entity.name.tag.less" }, { begin: "(\\.)", beginCaptures: { 1: { name: "punctuation.definition.entity.less" } }, end: "(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))", name: "entity.other.attribute-name.class.less", patterns: [{ include: "#less-variable-interpolation" }] }, { begin: "(#)", beginCaptures: { 1: { name: "punctuation.definition.entity.less" } }, end: "(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))", name: "entity.other.attribute-name.id.less", patterns: [{ include: "#less-variable-interpolation" }] }, { begin: "(&)", beginCaptures: { 1: { name: "punctuation.definition.entity.less" } }, contentName: "entity.other.attribute-name.parent.less", end: "(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))", name: "entity.other.attribute-name.parent.less", patterns: [{ include: "#less-variable-interpolation" }, { include: "#selectors" }] }, { include: "#pseudo-elements" }, { include: "#pseudo-classes" }, { include: "#less-extend" }, { match: "(?!\\+_?:)(?:>{1,3}|[~+])(?![>~+;}])", name: "punctuation.separator.combinator.less" }, { match: "((?:>{1,3}|[~+])){2,}", name: "invalid.illegal.combinator.less" }, { match: "\\/deep\\/", name: "invalid.illegal.combinator.less" }, { begin: "\\[", captures: { 0: { name: "punctuation.definition.entity.less" } }, end: "\\]", name: "meta.attribute-selector.less", patterns: [{ include: "#less-variable-interpolation" }, { include: "#qualified-name" }, { match: "(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)", name: "entity.other.attribute-name.less" }, { begin: "\\s*([~*|^$]?=)\\s*", captures: { 1: { name: "keyword.operator.attribute-selector.less" } }, end: "(?=(\\s|\\]))", patterns: [{ include: "#less-variable-interpolation" }, { match: `[^\\s\\]\\['"]`, name: "string.unquoted.less" }, { include: "#literal-string" }, { captures: { 1: { name: "keyword.other.less" } }, match: "(?:\\s+([iI]))?" }, { match: "\\]", name: "punctuation.definition.entity.less" }] }] }, { captures: { 1: { name: "punctuation.definition.arbitrary-repetition.less" } }, match: "\\s*(?:(,))" }, { match: "\\*", name: "entity.name.tag.wildcard.less" }] }, "shape-functions": { patterns: [{ begin: "\\b(rect)(?=\\()", beginCaptures: { 0: { name: "support.function.shape.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ match: "\\bauto\\b", name: "support.constant.property-value.less" }, { include: "#length-type" }, { include: "#comma-delimiter" }] }] }, { begin: "\\b(inset)(?=\\()", beginCaptures: { 0: { name: "support.function.shape.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ match: "\\bround\\b", name: "keyword.other.less" }, { include: "#length-type" }, { include: "#percentage-type" }] }] }, { begin: "\\b(circle|ellipse)(?=\\()", beginCaptures: { 0: { name: "support.function.shape.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ match: "\\bat\\b", name: "keyword.other.less" }, { match: "\\b(top|right|bottom|left|center|closest-side|farthest-side)\\b", name: "support.constant.property-value.less" }, { include: "#length-type" }, { include: "#percentage-type" }] }] }, { begin: "\\b(polygon)(?=\\()", beginCaptures: { 0: { name: "support.function.shape.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ match: "\\b(nonzero|evenodd)\\b", name: "support.constant.property-value.less" }, { include: "#length-type" }, { include: "#percentage-type" }] }] }] }, "steps-function": { begin: "\\b(steps)(?=\\()", beginCaptures: { 0: { name: "support.function.timing.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { include: "#integer-type" }, { match: "(end|middle|start)", name: "support.keyword.timing-direction.less" }] }] }, "string-content": { patterns: [{ include: "#less-variable-interpolation" }, { match: "\\\\\\s*\\n", name: "constant.character.escape.newline.less" }, { match: "\\\\(\\h{1,6}|.)", name: "constant.character.escape.less" }] }, "symbols-function": { begin: "\\b(symbols)(?=\\()", beginCaptures: { 1: { name: "support.function.counter.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ match: "\\b(cyclic|numeric|alphabetic|symbolic|fixed)\\b", name: "support.constant.symbol-type.less" }, { include: "#comma-delimiter" }, { include: "#literal-string" }, { include: "#image-type" }] }] }, "time-type": { captures: { 1: { name: "keyword.other.unit.less" } }, match: "(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(s|ms))\\b", name: "constant.numeric.less" }, "transform-functions": { patterns: [{ begin: "\\b(matrix3d|scale3d|matrix|scale)(?=\\()", beginCaptures: { 0: { name: "support.function.transform.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { include: "#number-type" }, { include: "#less-variables" }, { include: "#var-function" }] }] }, { begin: "\\b(translate(3d)?)(?=\\()", beginCaptures: { 0: { name: "support.function.transform.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { include: "#percentage-type" }, { include: "#length-type" }, { include: "#number-type" }, { include: "#less-variables" }, { include: "#var-function" }] }] }, { begin: "\\b(translate[XY])(?=\\()", beginCaptures: { 0: { name: "support.function.transform.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#percentage-type" }, { include: "#length-type" }, { include: "#number-type" }, { include: "#less-variables" }, { include: "#var-function" }] }] }, { begin: "\\b(rotate[XYZ]?|skew[XY])(?=\\()", beginCaptures: { 0: { name: "support.function.transform.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#angle-type" }, { include: "#less-variables" }, { include: "#calc-function" }, { include: "#var-function" }] }] }, { begin: "\\b(skew)(?=\\()", beginCaptures: { 0: { name: "support.function.transform.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { include: "#angle-type" }, { include: "#less-variables" }, { include: "#calc-function" }, { include: "#var-function" }] }] }, { begin: "\\b(translateZ|perspective)(?=\\()", beginCaptures: { 0: { name: "support.function.transform.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#length-type" }, { include: "#less-variables" }, { include: "#calc-function" }, { include: "#var-function" }] }] }, { begin: "\\b(rotate3d)(?=\\()", beginCaptures: { 0: { name: "support.function.transform.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { include: "#angle-type" }, { include: "#number-type" }, { include: "#less-variables" }, { include: "#calc-function" }, { include: "#var-function" }] }] }, { begin: "\\b(scale[XYZ])(?=\\()", beginCaptures: { 0: { name: "support.function.transform.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { include: "#number-type" }, { include: "#less-variables" }, { include: "#calc-function" }, { include: "#var-function" }] }] }] }, "unicode-range": { captures: { 1: { name: "support.constant.unicode-range.prefix.less" }, 2: { name: "constant.codepoint-range.less" }, 3: { name: "punctuation.section.range.less" } }, match: "(?i)(u\\+)([0-9a-f?]{1,6}(?:(-)[0-9a-f]{1,6})?)", name: "support.unicode-range.less" }, "unquoted-string": { match: `[^\\s'"]`, name: "string.unquoted.less" }, "url-function": { begin: "\\b(url)(?=\\()", beginCaptures: { 1: { name: "support.function.url.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#less-variables" }, { include: "#literal-string" }, { include: "#unquoted-string" }, { include: "#var-function" }] }] }, "var-function": { patterns: [{ begin: "\\b(var)(?=\\()", beginCaptures: { 1: { name: "support.function.var.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ include: "#comma-delimiter" }, { include: "#custom-property-name" }, { include: "#less-variables" }] }] }] }, "vendor-prefix": { match: "-(?:webkit|moz(-osx)?|ms|o)-", name: "support.type.vendor-prefix.less" } }, scopeName: "source.css.less" });
530
+ var $ = [
531
+ x
532
+ ];
533
+ const k = Object.freeze({ displayName: "JSX", name: "jsx", patterns: [{ include: "#directives" }, { include: "#statements" }, { include: "#shebang" }], repository: { "access-modifier": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.js.jsx" }, "after-operator-block-as-object-literal": { begin: "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", beginCaptures: { 1: { name: "punctuation.definition.block.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, name: "meta.objectliteral.js.jsx", patterns: [{ include: "#object-member" }] }, "array-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "punctuation.definition.binding-pattern.array.js.jsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.js.jsx" } }, patterns: [{ include: "#binding-element" }, { include: "#punctuation-comma" }] }, "array-binding-pattern-const": { begin: "(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "punctuation.definition.binding-pattern.array.js.jsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.js.jsx" } }, patterns: [{ include: "#binding-element-const" }, { include: "#punctuation-comma" }] }, "array-literal": { begin: "\\s*(\\[)", beginCaptures: { 1: { name: "meta.brace.square.js.jsx" } }, end: "\\]", endCaptures: { 0: { name: "meta.brace.square.js.jsx" } }, name: "meta.array.literal.js.jsx", patterns: [{ include: "#expression" }, { include: "#punctuation-comma" }] }, "arrow-function": { patterns: [{ captures: { 1: { name: "storage.modifier.async.js.jsx" }, 2: { name: "variable.parameter.js.jsx" } }, match: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", name: "meta.arrow.js.jsx" }, { begin: `(?x) (?:
534
+ (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)
535
+ )? ((?<![})!\\]])\\s*
536
+ (?=
537
+
538
+ (
539
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
540
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
541
+ (
542
+ ([)]\\s*:) |
543
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
544
+ )
545
+ ) |
546
+ (
547
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
548
+ ) |
549
+ # arrow function possible to detect only with => on same line
550
+ (
551
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
552
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
553
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
554
+ \\s*=>
555
+ )
556
+ )
557
+ )`, beginCaptures: { 1: { name: "storage.modifier.async.js.jsx" } }, end: "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", name: "meta.arrow.js.jsx", patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { include: "#function-parameters" }, { include: "#arrow-return-type" }, { include: "#possibly-arrow-return-type" }] }, { begin: "=>", beginCaptures: { 0: { name: "storage.type.function.arrow.js.jsx" } }, end: "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", name: "meta.arrow.js.jsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#decl-block" }, { include: "#expression" }] }] }, "arrow-return-type": { begin: "(?<=\\))\\s*(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.js.jsx" } }, end: "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", name: "meta.return.type.arrow.js.jsx", patterns: [{ include: "#arrow-return-type-body" }] }, "arrow-return-type-body": { patterns: [{ begin: "(?<=[:])(?=\\s*\\{)", end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { include: "#type-predicate-operator" }, { include: "#type" }] }, "async-modifier": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.async.js.jsx" }, "binding-element": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#numeric-literal" }, { include: "#regex" }, { include: "#object-binding-pattern" }, { include: "#array-binding-pattern" }, { include: "#destructuring-variable-rest" }, { include: "#variable-initializer" }] }, "binding-element-const": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#numeric-literal" }, { include: "#regex" }, { include: "#object-binding-pattern-const" }, { include: "#array-binding-pattern-const" }, { include: "#destructuring-variable-rest-const" }, { include: "#variable-initializer" }] }, "boolean-literal": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.boolean.true.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.boolean.false.js.jsx" }] }, brackets: { patterns: [{ begin: "{", end: "}|(?=\\*/)", patterns: [{ include: "#brackets" }] }, { begin: "\\[", end: "\\]|(?=\\*/)", patterns: [{ include: "#brackets" }] }] }, cast: { patterns: [{ include: "#jsx" }] }, "class-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.modifier.js.jsx" }, 4: { name: "storage.type.class.js.jsx" } }, end: "(?<=\\})", name: "meta.class.js.jsx", patterns: [{ include: "#class-declaration-or-expression-patterns" }] }, "class-declaration-or-expression-patterns": { patterns: [{ include: "#comment" }, { include: "#class-or-interface-heritage" }, { captures: { 0: { name: "entity.name.type.class.js.jsx" } }, match: "[_$[:alpha:]][_$[:alnum:]]*" }, { include: "#type-parameters" }, { include: "#class-or-interface-body" }] }, "class-expression": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", beginCaptures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "storage.type.class.js.jsx" } }, end: "(?<=\\})", name: "meta.class.js.jsx", patterns: [{ include: "#class-declaration-or-expression-patterns" }] }, "class-or-interface-body": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, patterns: [{ include: "#comment" }, { include: "#decorator" }, { begin: "(?<=:)\\s*", end: "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#expression" }] }, { include: "#method-declaration" }, { include: "#indexer-declaration" }, { include: "#field-declaration" }, { include: "#string" }, { include: "#type-annotation" }, { include: "#variable-initializer" }, { include: "#access-modifier" }, { include: "#property-accessor" }, { include: "#async-modifier" }, { include: "#after-operator-block-as-object-literal" }, { include: "#decl-block" }, { include: "#expression" }, { include: "#punctuation-comma" }, { include: "#punctuation-semicolon" }] }, "class-or-interface-heritage": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "storage.modifier.js.jsx" } }, end: "(?=\\{)", patterns: [{ include: "#comment" }, { include: "#class-or-interface-heritage" }, { include: "#type-parameters" }, { include: "#expressionWithoutIdentifiers" }, { captures: { 1: { name: "entity.name.type.module.js.jsx" }, 2: { name: "punctuation.accessor.js.jsx" }, 3: { name: "punctuation.accessor.optional.js.jsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)" }, { captures: { 1: { name: "entity.other.inherited-class.js.jsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)" }, { include: "#expressionPunctuations" }] }, comment: { patterns: [{ begin: "/\\*\\*(?!/)", beginCaptures: { 0: { name: "punctuation.definition.comment.js.jsx" } }, end: "\\*/", endCaptures: { 0: { name: "punctuation.definition.comment.js.jsx" } }, name: "comment.block.documentation.js.jsx", patterns: [{ include: "#docblock" }] }, { begin: "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", beginCaptures: { 1: { name: "punctuation.definition.comment.js.jsx" }, 2: { name: "storage.type.internaldeclaration.js.jsx" }, 3: { name: "punctuation.decorator.internaldeclaration.js.jsx" } }, end: "\\*/", endCaptures: { 0: { name: "punctuation.definition.comment.js.jsx" } }, name: "comment.block.js.jsx" }, { begin: "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.js.jsx" }, 2: { name: "comment.line.double-slash.js.jsx" }, 3: { name: "punctuation.definition.comment.js.jsx" }, 4: { name: "storage.type.internaldeclaration.js.jsx" }, 5: { name: "punctuation.decorator.internaldeclaration.js.jsx" } }, contentName: "comment.line.double-slash.js.jsx", end: "(?=$)" }] }, "control-statement": { patterns: [{ include: "#switch-statement" }, { include: "#for-loop" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.trycatch.js.jsx" }, { captures: { 1: { name: "keyword.control.loop.js.jsx" }, 2: { name: "entity.name.label.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.loop.js.jsx" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 0: { name: "keyword.control.flow.js.jsx" } }, end: "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#expression" }] }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.switch.js.jsx" }, { include: "#if-statement" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.conditional.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.with.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.other.debugger.js.jsx" }] }, "decl-block": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, name: "meta.block.js.jsx", patterns: [{ include: "#statements" }] }, declaration: { patterns: [{ include: "#decorator" }, { include: "#var-expr" }, { include: "#function-declaration" }, { include: "#class-declaration" }, { include: "#interface-declaration" }, { include: "#enum-declaration" }, { include: "#namespace-declaration" }, { include: "#type-alias-declaration" }, { include: "#import-equals-declaration" }, { include: "#import-declaration" }, { include: "#export-declaration" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.js.jsx" }] }, decorator: { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", beginCaptures: { 0: { name: "punctuation.decorator.js.jsx" } }, end: "(?=\\s)", name: "meta.decorator.js.jsx", patterns: [{ include: "#expression" }] }, "destructuring-const": { patterns: [{ begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.object-binding-pattern-variable.js.jsx", patterns: [{ include: "#object-binding-pattern-const" }, { include: "#type-annotation" }, { include: "#comment" }] }, { begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.array-binding-pattern-variable.js.jsx", patterns: [{ include: "#array-binding-pattern-const" }, { include: "#type-annotation" }, { include: "#comment" }] }] }, "destructuring-parameter": { patterns: [{ begin: "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "punctuation.definition.binding-pattern.object.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.js.jsx" } }, name: "meta.parameter.object-binding-pattern.js.jsx", patterns: [{ include: "#parameter-object-binding-element" }] }, { begin: "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "punctuation.definition.binding-pattern.array.js.jsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.js.jsx" } }, name: "meta.paramter.array-binding-pattern.js.jsx", patterns: [{ include: "#parameter-binding-element" }, { include: "#punctuation-comma" }] }] }, "destructuring-parameter-rest": { captures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "variable.parameter.js.jsx" } }, match: "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)" }, "destructuring-variable": { patterns: [{ begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.object-binding-pattern-variable.js.jsx", patterns: [{ include: "#object-binding-pattern" }, { include: "#type-annotation" }, { include: "#comment" }] }, { begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.array-binding-pattern-variable.js.jsx", patterns: [{ include: "#array-binding-pattern" }, { include: "#type-annotation" }, { include: "#comment" }] }] }, "destructuring-variable-rest": { captures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "meta.definition.variable.js.jsx variable.other.readwrite.js.jsx" } }, match: "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)" }, "destructuring-variable-rest-const": { captures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "meta.definition.variable.js.jsx variable.other.constant.js.jsx" } }, match: "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)" }, directives: { begin: "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", beginCaptures: { 1: { name: "punctuation.definition.comment.js.jsx" } }, end: "(?=$)", name: "comment.line.triple-slash.directive.js.jsx", patterns: [{ begin: "(<)(reference|amd-dependency|amd-module)", beginCaptures: { 1: { name: "punctuation.definition.tag.directive.js.jsx" }, 2: { name: "entity.name.tag.directive.js.jsx" } }, end: "/>", endCaptures: { 0: { name: "punctuation.definition.tag.directive.js.jsx" } }, name: "meta.tag.js.jsx", patterns: [{ match: "path|types|no-default-lib|lib|name|resolution-mode", name: "entity.other.attribute-name.directive.js.jsx" }, { match: "=", name: "keyword.operator.assignment.js.jsx" }, { include: "#string" }] }] }, docblock: { patterns: [{ captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "constant.language.access-type.jsdoc" } }, match: `(?x)
558
+ ((@)(?:access|api))
559
+ \\s+
560
+ (private|protected|public)
561
+ \\b` }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "entity.name.type.instance.jsdoc" }, 4: { name: "punctuation.definition.bracket.angle.begin.jsdoc" }, 5: { name: "constant.other.email.link.underline.jsdoc" }, 6: { name: "punctuation.definition.bracket.angle.end.jsdoc" } }, match: `(?x)
562
+ ((@)author)
563
+ \\s+
564
+ (
565
+ [^@\\s<>*/]
566
+ (?:[^@<>*/]|\\*[^/])*
567
+ )
568
+ (?:
569
+ \\s*
570
+ (<)
571
+ ([^>\\s]+)
572
+ (>)
573
+ )?` }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "entity.name.type.instance.jsdoc" }, 4: { name: "keyword.operator.control.jsdoc" }, 5: { name: "entity.name.type.instance.jsdoc" } }, match: `(?x)
574
+ ((@)borrows) \\s+
575
+ ((?:[^@\\s*/]|\\*[^/])+)
576
+ \\s+ (as) \\s+
577
+ ((?:[^@\\s*/]|\\*[^/])+)` }, { begin: "((@)example)\\s+", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=@|\\*/)", name: "meta.example.jsdoc", patterns: [{ match: "^\\s\\*\\s+" }, { begin: "\\G(<)caption(>)", beginCaptures: { 0: { name: "entity.name.tag.inline.jsdoc" }, 1: { name: "punctuation.definition.bracket.angle.begin.jsdoc" }, 2: { name: "punctuation.definition.bracket.angle.end.jsdoc" } }, contentName: "constant.other.description.jsdoc", end: "(</)caption(>)|(?=\\*/)", endCaptures: { 0: { name: "entity.name.tag.inline.jsdoc" }, 1: { name: "punctuation.definition.bracket.angle.begin.jsdoc" }, 2: { name: "punctuation.definition.bracket.angle.end.jsdoc" } } }, { captures: { 0: { name: "source.embedded.js.jsx" } }, match: "[^\\s@*](?:[^*]|\\*[^/])*" }] }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "constant.language.symbol-type.jsdoc" } }, match: "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b" }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.link.underline.jsdoc" }, 4: { name: "entity.name.type.instance.jsdoc" } }, match: `(?x)
578
+ ((@)see)
579
+ \\s+
580
+ (?:
581
+
582
+ (
583
+ (?=https?://)
584
+ (?:[^\\s*]|\\*[^/])+
585
+ )
586
+ |
587
+
588
+ (
589
+ (?!
590
+
591
+ https?://
592
+ |
593
+
594
+ (?:\\[[^\\[\\]]*\\])?
595
+ {@(?:link|linkcode|linkplain|tutorial)\\b
596
+ )
597
+
598
+ (?:[^@\\s*/]|\\*[^/])+
599
+ )
600
+ )` }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: `(?x)
601
+ ((@)template)
602
+ \\s+
603
+ # One or more valid identifiers
604
+ (
605
+ [A-Za-z_$]
606
+ [\\w$.\\[\\]]*
607
+ (?:
608
+ \\s* , \\s*
609
+ [A-Za-z_$]
610
+ [\\w$.\\[\\]]*
611
+ )*
612
+ )` }, { begin: "(?x)((@)template)\\s+(?={)", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }, { match: "([A-Za-z_$][\\w$.\\[\\]]*)", name: "variable.other.jsdoc" }] }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: `(?x)
613
+ (
614
+ (@)
615
+ (?:arg|argument|const|constant|member|namespace|param|var)
616
+ )
617
+ \\s+
618
+ (
619
+ [A-Za-z_$]
620
+ [\\w$.\\[\\]]*
621
+ )` }, { begin: "((@)typedef)\\s+(?={)", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }, { match: "(?:[^@\\s*/]|\\*[^/])+", name: "entity.name.type.instance.jsdoc" }] }, { begin: "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }, { match: "([A-Za-z_$][\\w$.\\[\\]]*)", name: "variable.other.jsdoc" }, { captures: { 1: { name: "punctuation.definition.optional-value.begin.bracket.square.jsdoc" }, 2: { name: "keyword.operator.assignment.jsdoc" }, 3: { name: "source.embedded.js.jsx" }, 4: { name: "punctuation.definition.optional-value.end.bracket.square.jsdoc" }, 5: { name: "invalid.illegal.syntax.jsdoc" } }, match: `(?x)
622
+ (\\[)\\s*
623
+ [\\w$]+
624
+ (?:
625
+ (?:\\[\\])?
626
+ \\.
627
+ [\\w$]+
628
+ )*
629
+ (?:
630
+ \\s*
631
+ (=)
632
+ \\s*
633
+ (
634
+
635
+ (?>
636
+ "(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" |
637
+ '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |
638
+ \\[ (?:(?:\\*(?!/))|[^*])*? \\] |
639
+ (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*
640
+ )*
641
+ )
642
+ )?
643
+ \\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`, name: "variable.other.jsdoc" }] }, { begin: `(?x)
644
+ (
645
+ (@)
646
+ (?:define|enum|exception|export|extends|lends|implements|modifies
647
+ |namespace|private|protected|returns?|satisfies|suppress|this|throws|type
648
+ |yields?)
649
+ )
650
+ \\s+(?={)`, beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }] }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "entity.name.type.instance.jsdoc" } }, match: `(?x)
651
+ (
652
+ (@)
653
+ (?:alias|augments|callback|constructs|emits|event|fires|exports?
654
+ |extends|external|function|func|host|lends|listens|interface|memberof!?
655
+ |method|module|mixes|mixin|name|requires|see|this|typedef|uses)
656
+ )
657
+ \\s+
658
+ (
659
+ (?:
660
+ [^{}@\\s*] | \\*[^/]
661
+ )+
662
+ )` }, { begin: `((@)(?:default(?:value)?|license|version))\\s+(([''"]))`, beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" }, 4: { name: "punctuation.definition.string.begin.jsdoc" } }, contentName: "variable.other.jsdoc", end: "(\\3)|(?=$|\\*/)", endCaptures: { 0: { name: "variable.other.jsdoc" }, 1: { name: "punctuation.definition.string.end.jsdoc" } } }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)" }, { captures: { 1: { name: "punctuation.definition.block.tag.jsdoc" } }, match: "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", name: "storage.type.class.jsdoc" }, { include: "#inline-tags" }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, match: "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)" }] }, "enum-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.modifier.js.jsx" }, 4: { name: "storage.type.enum.js.jsx" }, 5: { name: "entity.name.type.enum.js.jsx" } }, end: "(?<=\\})", name: "meta.enum.declaration.js.jsx", patterns: [{ include: "#comment" }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, patterns: [{ include: "#comment" }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)", beginCaptures: { 0: { name: "variable.other.enummember.js.jsx" } }, end: "(?=,|\\}|$)", patterns: [{ include: "#comment" }, { include: "#variable-initializer" }] }, { begin: "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", end: "(?=,|\\}|$)", patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#comment" }, { include: "#variable-initializer" }] }, { include: "#punctuation-comma" }] }] }, "export-declaration": { patterns: [{ captures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "keyword.control.as.js.jsx" }, 3: { name: "storage.type.namespace.js.jsx" }, 4: { name: "entity.name.type.module.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "keyword.control.type.js.jsx" }, 3: { name: "keyword.operator.assignment.js.jsx" }, 4: { name: "keyword.control.default.js.jsx" } }, end: "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.export.default.js.jsx", patterns: [{ include: "#interface-declaration" }, { include: "#expression" }] }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "keyword.control.type.js.jsx" } }, end: "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.export.js.jsx", patterns: [{ include: "#import-export-declaration" }] }] }, expression: { patterns: [{ include: "#expressionWithoutIdentifiers" }, { include: "#identifiers" }, { include: "#expressionPunctuations" }] }, "expression-inside-possibly-arrow-parens": { patterns: [{ include: "#expressionWithoutIdentifiers" }, { include: "#comment" }, { include: "#string" }, { include: "#decorator" }, { include: "#destructuring-parameter" }, { captures: { 1: { name: "storage.modifier.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)" }, { captures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "keyword.operator.rest.js.jsx" }, 3: { name: "entity.name.function.js.jsx variable.language.this.js.jsx" }, 4: { name: "entity.name.function.js.jsx" }, 5: { name: "keyword.operator.optional.js.jsx" } }, match: `(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*
663
+ # function assignment |
664
+ (=\\s*(
665
+ ((async\\s+)?(
666
+ (function\\s*[(<*]) |
667
+ (function\\s+) |
668
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
669
+ )) |
670
+ ((async\\s*)?(
671
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
672
+
673
+ (
674
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
675
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
676
+ (
677
+ ([)]\\s*:) |
678
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
679
+ )
680
+ ) |
681
+ (
682
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
683
+ ) |
684
+ # arrow function possible to detect only with => on same line
685
+ (
686
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
687
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
688
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
689
+ \\s*=>
690
+ )
691
+ ))
692
+ )) |
693
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
694
+ (:\\s*(
695
+ (<) |
696
+ ([(]\\s*(
697
+ ([)]) |
698
+ (\\.\\.\\.) |
699
+ ([_$[:alnum:]]+\\s*(
700
+ ([:,?=])|
701
+ ([)]\\s*=>)
702
+ ))
703
+ ))
704
+ )) |
705
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
706
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
707
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
708
+ ((async\\s+)?(
709
+ (function\\s*[(<*]) |
710
+ (function\\s+) |
711
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
712
+ )) |
713
+ ((async\\s*)?(
714
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
715
+
716
+ (
717
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
718
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
719
+ (
720
+ ([)]\\s*:) |
721
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
722
+ )
723
+ ) |
724
+ (
725
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
726
+ ) |
727
+ # arrow function possible to detect only with => on same line
728
+ (
729
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
730
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
731
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
732
+ \\s*=>
733
+ )
734
+ ))
735
+ )))` }, { captures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "keyword.operator.rest.js.jsx" }, 3: { name: "variable.parameter.js.jsx variable.language.this.js.jsx" }, 4: { name: "variable.parameter.js.jsx" }, 5: { name: "keyword.operator.optional.js.jsx" } }, match: "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)" }, { include: "#type-annotation" }, { include: "#variable-initializer" }, { match: ",", name: "punctuation.separator.parameter.js.jsx" }, { include: "#identifiers" }, { include: "#expressionPunctuations" }] }, "expression-operators": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.flow.js.jsx" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", beginCaptures: { 1: { name: "keyword.control.flow.js.jsx" } }, end: "\\*", endCaptures: { 0: { name: "keyword.generator.asterisk.js.jsx" } }, patterns: [{ include: "#comment" }] }, { captures: { 1: { name: "keyword.control.flow.js.jsx" }, 2: { name: "keyword.generator.asterisk.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.delete.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()", name: "keyword.operator.expression.in.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()", name: "keyword.operator.expression.of.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.instanceof.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.new.js.jsx" }, { include: "#typeof-operator" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.void.js.jsx" }, { captures: { 1: { name: "keyword.control.as.js.jsx" }, 2: { name: "storage.modifier.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", beginCaptures: { 1: { name: "keyword.control.as.js.jsx" }, 2: { name: "keyword.control.satisfies.js.jsx" } }, end: "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", patterns: [{ include: "#type" }] }, { match: "\\.\\.\\.", name: "keyword.operator.spread.js.jsx" }, { match: "\\*=|(?<!\\()/=|%=|\\+=|\\-=", name: "keyword.operator.assignment.compound.js.jsx" }, { match: "\\&=|\\^=|<<=|>>=|>>>=|\\|=", name: "keyword.operator.assignment.compound.bitwise.js.jsx" }, { match: "<<|>>>|>>", name: "keyword.operator.bitwise.shift.js.jsx" }, { match: "===|!==|==|!=", name: "keyword.operator.comparison.js.jsx" }, { match: "<=|>=|<>|<|>", name: "keyword.operator.relational.js.jsx" }, { captures: { 1: { name: "keyword.operator.logical.js.jsx" }, 2: { name: "keyword.operator.assignment.compound.js.jsx" }, 3: { name: "keyword.operator.arithmetic.js.jsx" } }, match: "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))" }, { match: "\\!|&&|\\|\\||\\?\\?", name: "keyword.operator.logical.js.jsx" }, { match: "\\&|~|\\^|\\|", name: "keyword.operator.bitwise.js.jsx" }, { match: "\\=", name: "keyword.operator.assignment.js.jsx" }, { match: "--", name: "keyword.operator.decrement.js.jsx" }, { match: "\\+\\+", name: "keyword.operator.increment.js.jsx" }, { match: "%|\\*|/|-|\\+", name: "keyword.operator.arithmetic.js.jsx" }, { begin: "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", end: "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", endCaptures: { 1: { name: "keyword.operator.assignment.compound.js.jsx" }, 2: { name: "keyword.operator.arithmetic.js.jsx" } }, patterns: [{ include: "#comment" }] }, { captures: { 1: { name: "keyword.operator.assignment.compound.js.jsx" }, 2: { name: "keyword.operator.arithmetic.js.jsx" } }, match: "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))" }] }, expressionPunctuations: { patterns: [{ include: "#punctuation-comma" }, { include: "#punctuation-accessor" }] }, expressionWithoutIdentifiers: { patterns: [{ include: "#jsx" }, { include: "#string" }, { include: "#regex" }, { include: "#comment" }, { include: "#function-expression" }, { include: "#class-expression" }, { include: "#arrow-function" }, { include: "#paren-expression-possibly-arrow" }, { include: "#cast" }, { include: "#ternary-expression" }, { include: "#new-expr" }, { include: "#instanceof-expr" }, { include: "#object-literal" }, { include: "#expression-operators" }, { include: "#function-call" }, { include: "#literal" }, { include: "#support-objects" }, { include: "#paren-expression" }] }, "field-declaration": { begin: `(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
736
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
737
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
738
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
739
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
740
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
741
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
742
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
743
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
744
+ )(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))`, beginCaptures: { 1: { name: "storage.modifier.js.jsx" } }, end: `(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
745
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
746
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
747
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
748
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
749
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
750
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
751
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
752
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
753
+ )(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})`, name: "meta.field.declaration.js.jsx", patterns: [{ include: "#variable-initializer" }, { include: "#type-annotation" }, { include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { include: "#comment" }, { captures: { 1: { name: "meta.definition.property.js.jsx entity.name.function.js.jsx" }, 2: { name: "keyword.operator.optional.js.jsx" }, 3: { name: "keyword.operator.definiteassignment.js.jsx" } }, match: `(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*
754
+ # function assignment |
755
+ (=\\s*(
756
+ ((async\\s+)?(
757
+ (function\\s*[(<*]) |
758
+ (function\\s+) |
759
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
760
+ )) |
761
+ ((async\\s*)?(
762
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
763
+
764
+ (
765
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
766
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
767
+ (
768
+ ([)]\\s*:) |
769
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
770
+ )
771
+ ) |
772
+ (
773
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
774
+ ) |
775
+ # arrow function possible to detect only with => on same line
776
+ (
777
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
778
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
779
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
780
+ \\s*=>
781
+ )
782
+ ))
783
+ )) |
784
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
785
+ (:\\s*(
786
+ (<) |
787
+ ([(]\\s*(
788
+ ([)]) |
789
+ (\\.\\.\\.) |
790
+ ([_$[:alnum:]]+\\s*(
791
+ ([:,?=])|
792
+ ([)]\\s*=>)
793
+ ))
794
+ ))
795
+ )) |
796
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
797
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
798
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
799
+ ((async\\s+)?(
800
+ (function\\s*[(<*]) |
801
+ (function\\s+) |
802
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
803
+ )) |
804
+ ((async\\s*)?(
805
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
806
+
807
+ (
808
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
809
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
810
+ (
811
+ ([)]\\s*:) |
812
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
813
+ )
814
+ ) |
815
+ (
816
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
817
+ ) |
818
+ # arrow function possible to detect only with => on same line
819
+ (
820
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
821
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
822
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
823
+ \\s*=>
824
+ )
825
+ ))
826
+ )))` }, { match: "\\#?[_$[:alpha:]][_$[:alnum:]]*", name: "meta.definition.property.js.jsx variable.object.property.js.jsx" }, { match: "\\?", name: "keyword.operator.optional.js.jsx" }, { match: "\\!", name: "keyword.operator.definiteassignment.js.jsx" }] }, "for-loop": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", beginCaptures: { 0: { name: "keyword.control.loop.js.jsx" } }, end: "(?<=\\))", patterns: [{ include: "#comment" }, { match: "await", name: "keyword.control.loop.js.jsx" }, { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, patterns: [{ include: "#var-expr" }, { include: "#expression" }, { include: "#punctuation-semicolon" }] }] }, "function-body": { patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { include: "#function-parameters" }, { include: "#return-type" }, { include: "#type-function-return-type" }, { include: "#decl-block" }, { match: "\\*", name: "keyword.generator.asterisk.js.jsx" }] }, "function-call": { patterns: [{ begin: "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", end: "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", end: "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", name: "meta.function-call.js.jsx", patterns: [{ include: "#function-call-target" }] }, { include: "#comment" }, { include: "#function-call-optionals" }, { include: "#type-arguments" }, { include: "#paren-expression" }] }, { begin: "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", end: "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", end: "(?=(<\\s*[\\{\\[\\(]\\s*$))", name: "meta.function-call.js.jsx", patterns: [{ include: "#function-call-target" }] }, { include: "#comment" }, { include: "#function-call-optionals" }, { include: "#type-arguments" }] }] }, "function-call-optionals": { patterns: [{ match: "\\?\\.", name: "meta.function-call.js.jsx punctuation.accessor.optional.js.jsx" }, { match: "\\!", name: "meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx" }] }, "function-call-target": { patterns: [{ include: "#support-function-call-identifiers" }, { match: "(\\#?[_$[:alpha:]][_$[:alnum:]]*)", name: "entity.name.function.js.jsx" }] }, "function-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.modifier.async.js.jsx" }, 4: { name: "storage.type.function.js.jsx" }, 5: { name: "keyword.generator.asterisk.js.jsx" }, 6: { name: "meta.definition.function.js.jsx entity.name.function.js.jsx" } }, end: "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", name: "meta.function.js.jsx", patterns: [{ include: "#function-name" }, { include: "#function-body" }] }, "function-expression": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", beginCaptures: { 1: { name: "storage.modifier.async.js.jsx" }, 2: { name: "storage.type.function.js.jsx" }, 3: { name: "keyword.generator.asterisk.js.jsx" }, 4: { name: "meta.definition.function.js.jsx entity.name.function.js.jsx" } }, end: "(?=;)|(?<=\\})", name: "meta.function.expression.js.jsx", patterns: [{ include: "#function-name" }, { include: "#single-line-comment-consuming-line-ending" }, { include: "#function-body" }] }, "function-name": { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "meta.definition.function.js.jsx entity.name.function.js.jsx" }, "function-parameters": { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.parameters.begin.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.parameters.end.js.jsx" } }, name: "meta.parameters.js.jsx", patterns: [{ include: "#function-parameters-body" }] }, "function-parameters-body": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#decorator" }, { include: "#destructuring-parameter" }, { include: "#parameter-name" }, { include: "#parameter-type-annotation" }, { include: "#variable-initializer" }, { match: ",", name: "punctuation.separator.parameter.js.jsx" }] }, identifiers: { patterns: [{ include: "#object-identifiers" }, { captures: { 1: { name: "punctuation.accessor.js.jsx" }, 2: { name: "punctuation.accessor.optional.js.jsx" }, 3: { name: "entity.name.function.js.jsx" } }, match: `(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(
827
+ ((async\\s+)?(
828
+ (function\\s*[(<*]) |
829
+ (function\\s+) |
830
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
831
+ )) |
832
+ ((async\\s*)?(
833
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
834
+
835
+ (
836
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
837
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
838
+ (
839
+ ([)]\\s*:) |
840
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
841
+ )
842
+ ) |
843
+ (
844
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
845
+ ) |
846
+ # arrow function possible to detect only with => on same line
847
+ (
848
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
849
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
850
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
851
+ \\s*=>
852
+ )
853
+ ))
854
+ ))` }, { captures: { 1: { name: "punctuation.accessor.js.jsx" }, 2: { name: "punctuation.accessor.optional.js.jsx" }, 3: { name: "variable.other.constant.property.js.jsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" }, { captures: { 1: { name: "punctuation.accessor.js.jsx" }, 2: { name: "punctuation.accessor.optional.js.jsx" }, 3: { name: "variable.other.property.js.jsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)" }, { match: "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", name: "variable.other.constant.js.jsx" }, { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "variable.other.readwrite.js.jsx" }] }, "if-statement": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", end: "(?=;|$|\\})", patterns: [{ include: "#comment" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", beginCaptures: { 1: { name: "keyword.control.conditional.js.jsx" }, 2: { name: "meta.brace.round.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, patterns: [{ include: "#expression" }] }, { begin: "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", beginCaptures: { 0: { name: "punctuation.definition.string.begin.js.jsx" } }, end: "(/)([dgimsuy]*)", endCaptures: { 1: { name: "punctuation.definition.string.end.js.jsx" }, 2: { name: "keyword.other.js.jsx" } }, name: "string.regexp.js.jsx", patterns: [{ include: "#regexp" }] }, { include: "#statements" }] }] }, "import-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "keyword.control.import.js.jsx" }, 4: { name: "keyword.control.type.js.jsx" } }, end: "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", name: "meta.import.js.jsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#string" }, { begin: `(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*["'])`, end: "\\bfrom\\b", endCaptures: { 0: { name: "keyword.control.from.js.jsx" } }, patterns: [{ include: "#import-export-declaration" }] }, { include: "#import-export-declaration" }] }, "import-equals-declaration": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "keyword.control.import.js.jsx" }, 4: { name: "keyword.control.type.js.jsx" }, 5: { name: "variable.other.readwrite.alias.js.jsx" }, 6: { name: "keyword.operator.assignment.js.jsx" }, 7: { name: "keyword.control.require.js.jsx" }, 8: { name: "meta.brace.round.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, name: "meta.import-equals.external.js.jsx", patterns: [{ include: "#comment" }, { include: "#string" }] }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "keyword.control.import.js.jsx" }, 4: { name: "keyword.control.type.js.jsx" }, 5: { name: "variable.other.readwrite.alias.js.jsx" }, 6: { name: "keyword.operator.assignment.js.jsx" } }, end: "(?=;|$|^)", name: "meta.import-equals.internal.js.jsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { captures: { 1: { name: "entity.name.type.module.js.jsx" }, 2: { name: "punctuation.accessor.js.jsx" }, 3: { name: "punctuation.accessor.optional.js.jsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "variable.other.readwrite.js.jsx" }] }] }, "import-export-assert-clause": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(with)|(assert))\\s*(\\{)", beginCaptures: { 1: { name: "keyword.control.with.js.jsx" }, 2: { name: "keyword.control.assert.js.jsx" }, 3: { name: "punctuation.definition.block.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, patterns: [{ include: "#comment" }, { include: "#string" }, { match: "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", name: "meta.object-literal.key.js.jsx" }, { match: ":", name: "punctuation.separator.key-value.js.jsx" }] }, "import-export-block": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, name: "meta.block.js.jsx", patterns: [{ include: "#import-export-clause" }] }, "import-export-clause": { patterns: [{ include: "#comment" }, { captures: { 1: { name: "keyword.control.type.js.jsx" }, 2: { name: "keyword.control.default.js.jsx" }, 3: { name: "constant.language.import-export-all.js.jsx" }, 4: { name: "variable.other.readwrite.js.jsx" }, 5: { name: "keyword.control.as.js.jsx" }, 6: { name: "keyword.control.default.js.jsx" }, 7: { name: "variable.other.readwrite.alias.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))" }, { include: "#punctuation-comma" }, { match: "\\*", name: "constant.language.import-export-all.js.jsx" }, { match: "\\b(default)\\b", name: "keyword.control.default.js.jsx" }, { captures: { 1: { name: "keyword.control.type.js.jsx" }, 2: { name: "variable.other.readwrite.alias.js.jsx" } }, match: "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)" }] }, "import-export-declaration": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#import-export-block" }, { match: "\\bfrom\\b", name: "keyword.control.from.js.jsx" }, { include: "#import-export-assert-clause" }, { include: "#import-export-clause" }] }, "indexer-declaration": { begin: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", beginCaptures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "meta.brace.square.js.jsx" }, 3: { name: "variable.parameter.js.jsx" } }, end: "(\\])\\s*(\\?\\s*)?|$", endCaptures: { 1: { name: "meta.brace.square.js.jsx" }, 2: { name: "keyword.operator.optional.js.jsx" } }, name: "meta.indexer.declaration.js.jsx", patterns: [{ include: "#type-annotation" }] }, "indexer-mapped-type-declaration": { begin: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", beginCaptures: { 1: { name: "keyword.operator.type.modifier.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "meta.brace.square.js.jsx" }, 4: { name: "entity.name.type.js.jsx" }, 5: { name: "keyword.operator.expression.in.js.jsx" } }, end: "(\\])([+-])?\\s*(\\?\\s*)?|$", endCaptures: { 1: { name: "meta.brace.square.js.jsx" }, 2: { name: "keyword.operator.type.modifier.js.jsx" }, 3: { name: "keyword.operator.optional.js.jsx" } }, name: "meta.indexer.mappedtype.declaration.js.jsx", patterns: [{ captures: { 1: { name: "keyword.control.as.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+" }, { include: "#type" }] }, "inline-tags": { patterns: [{ captures: { 1: { name: "punctuation.definition.bracket.square.begin.jsdoc" }, 2: { name: "punctuation.definition.bracket.square.end.jsdoc" } }, match: "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", name: "constant.other.description.jsdoc" }, { begin: "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", beginCaptures: { 1: { name: "punctuation.definition.bracket.curly.begin.jsdoc" }, 2: { name: "storage.type.class.jsdoc" }, 3: { name: "punctuation.definition.inline.tag.jsdoc" } }, end: "}|(?=\\*/)", endCaptures: { 0: { name: "punctuation.definition.bracket.curly.end.jsdoc" } }, name: "entity.name.type.instance.jsdoc", patterns: [{ captures: { 1: { name: "variable.other.link.underline.jsdoc" }, 2: { name: "punctuation.separator.pipe.jsdoc" } }, match: "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?" }, { captures: { 1: { name: "variable.other.description.jsdoc" }, 2: { name: "punctuation.separator.pipe.jsdoc" } }, match: "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?" }] }] }, "instanceof-expr": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.expression.instanceof.js.jsx" } }, end: "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", patterns: [{ include: "#type" }] }, "interface-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.modifier.js.jsx" }, 4: { name: "storage.type.interface.js.jsx" } }, end: "(?<=\\})", name: "meta.interface.js.jsx", patterns: [{ include: "#comment" }, { include: "#class-or-interface-heritage" }, { captures: { 0: { name: "entity.name.type.interface.js.jsx" } }, match: "[_$[:alpha:]][_$[:alnum:]]*" }, { include: "#type-parameters" }, { include: "#class-or-interface-body" }] }, jsdoctype: { patterns: [{ begin: "\\G({)", beginCaptures: { 0: { name: "entity.name.type.instance.jsdoc" }, 1: { name: "punctuation.definition.bracket.curly.begin.jsdoc" } }, contentName: "entity.name.type.instance.jsdoc", end: "((}))\\s*|(?=\\*/)", endCaptures: { 1: { name: "entity.name.type.instance.jsdoc" }, 2: { name: "punctuation.definition.bracket.curly.end.jsdoc" } }, patterns: [{ include: "#brackets" }] }] }, jsx: { patterns: [{ include: "#jsx-tag-without-attributes-in-expression" }, { include: "#jsx-tag-in-expression" }] }, "jsx-children": { patterns: [{ include: "#jsx-tag-without-attributes" }, { include: "#jsx-tag" }, { include: "#jsx-evaluated-code" }, { include: "#jsx-entities" }] }, "jsx-entities": { patterns: [{ captures: { 1: { name: "punctuation.definition.entity.js.jsx" }, 3: { name: "punctuation.definition.entity.js.jsx" } }, match: "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", name: "constant.character.entity.js.jsx" }] }, "jsx-evaluated-code": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.section.embedded.begin.js.jsx" } }, contentName: "meta.embedded.expression.js.jsx", end: "\\}", endCaptures: { 0: { name: "punctuation.section.embedded.end.js.jsx" } }, patterns: [{ include: "#expression" }] }, "jsx-string-double-quoted": { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.js.jsx" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.js.jsx" } }, name: "string.quoted.double.js.jsx", patterns: [{ include: "#jsx-entities" }] }, "jsx-string-single-quoted": { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.js.jsx" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.js.jsx" } }, name: "string.quoted.single.js.jsx", patterns: [{ include: "#jsx-entities" }] }, "jsx-tag": { begin: "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", end: "(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", endCaptures: { 1: { name: "punctuation.definition.tag.end.js.jsx" }, 2: { name: "punctuation.definition.tag.begin.js.jsx" }, 3: { name: "entity.name.tag.namespace.js.jsx" }, 4: { name: "punctuation.separator.namespace.js.jsx" }, 5: { name: "entity.name.tag.js.jsx" }, 6: { name: "support.class.component.js.jsx" }, 7: { name: "punctuation.definition.tag.end.js.jsx" } }, name: "meta.tag.js.jsx", patterns: [{ begin: "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.js.jsx" }, 2: { name: "entity.name.tag.namespace.js.jsx" }, 3: { name: "punctuation.separator.namespace.js.jsx" }, 4: { name: "entity.name.tag.js.jsx" }, 5: { name: "support.class.component.js.jsx" } }, end: "(?=[/]?>)", patterns: [{ include: "#comment" }, { include: "#type-arguments" }, { include: "#jsx-tag-attributes" }] }, { begin: "(>)", beginCaptures: { 1: { name: "punctuation.definition.tag.end.js.jsx" } }, contentName: "meta.jsx.children.js.jsx", end: "(?=</)", patterns: [{ include: "#jsx-children" }] }] }, "jsx-tag-attribute-assignment": { match: `=(?=\\s*(?:'|"|{|/\\*|//|\\n))`, name: "keyword.operator.assignment.js.jsx" }, "jsx-tag-attribute-name": { captures: { 1: { name: "entity.other.attribute-name.namespace.js.jsx" }, 2: { name: "punctuation.separator.namespace.js.jsx" }, 3: { name: "entity.other.attribute-name.js.jsx" } }, match: `(?x)
855
+ \\s*
856
+ (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?
857
+ ([_$[:alpha:]][-_$[:alnum:]]*)
858
+ (?=\\s|=|/?>|/\\*|//)` }, "jsx-tag-attributes": { begin: "\\s+", end: "(?=[/]?>)", name: "meta.tag.attributes.js.jsx", patterns: [{ include: "#comment" }, { include: "#jsx-tag-attribute-name" }, { include: "#jsx-tag-attribute-assignment" }, { include: "#jsx-string-double-quoted" }, { include: "#jsx-string-single-quoted" }, { include: "#jsx-evaluated-code" }, { include: "#jsx-tag-attributes-illegal" }] }, "jsx-tag-attributes-illegal": { match: "\\S+", name: "invalid.illegal.attribute.js.jsx" }, "jsx-tag-in-expression": { begin: `(?x)
859
+ (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*
860
+ (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,))
861
+ (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))`, end: "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", patterns: [{ include: "#jsx-tag" }] }, "jsx-tag-without-attributes": { begin: "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.js.jsx" }, 2: { name: "entity.name.tag.namespace.js.jsx" }, 3: { name: "punctuation.separator.namespace.js.jsx" }, 4: { name: "entity.name.tag.js.jsx" }, 5: { name: "support.class.component.js.jsx" }, 6: { name: "punctuation.definition.tag.end.js.jsx" } }, contentName: "meta.jsx.children.js.jsx", end: "(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.js.jsx" }, 2: { name: "entity.name.tag.namespace.js.jsx" }, 3: { name: "punctuation.separator.namespace.js.jsx" }, 4: { name: "entity.name.tag.js.jsx" }, 5: { name: "support.class.component.js.jsx" }, 6: { name: "punctuation.definition.tag.end.js.jsx" } }, name: "meta.tag.without-attributes.js.jsx", patterns: [{ include: "#jsx-children" }] }, "jsx-tag-without-attributes-in-expression": { begin: "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", end: "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", patterns: [{ include: "#jsx-tag-without-attributes" }] }, label: { patterns: [{ begin: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", beginCaptures: { 1: { name: "entity.name.label.js.jsx" }, 2: { name: "punctuation.separator.label.js.jsx" } }, end: "(?<=\\})", patterns: [{ include: "#decl-block" }] }, { captures: { 1: { name: "entity.name.label.js.jsx" }, 2: { name: "punctuation.separator.label.js.jsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)" }] }, literal: { patterns: [{ include: "#numeric-literal" }, { include: "#boolean-literal" }, { include: "#null-literal" }, { include: "#undefined-literal" }, { include: "#numericConstant-literal" }, { include: "#array-literal" }, { include: "#this-literal" }, { include: "#super-literal" }] }, "method-declaration": { patterns: [{ begin: "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.modifier.js.jsx" }, 4: { name: "storage.modifier.async.js.jsx" }, 5: { name: "storage.type.js.jsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", name: "meta.method.declaration.js.jsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }] }, { begin: "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", beginCaptures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.modifier.js.jsx" }, 4: { name: "storage.modifier.async.js.jsx" }, 5: { name: "keyword.operator.new.js.jsx" }, 6: { name: "keyword.generator.asterisk.js.jsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", name: "meta.method.declaration.js.jsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }] }, { begin: `(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
862
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
863
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
864
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
865
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
866
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
867
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
868
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
869
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
870
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`, beginCaptures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.modifier.js.jsx" }, 4: { name: "storage.modifier.async.js.jsx" }, 5: { name: "storage.type.property.js.jsx" }, 6: { name: "keyword.generator.asterisk.js.jsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", name: "meta.method.declaration.js.jsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }] }] }, "method-declaration-name": { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
871
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
872
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
873
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
874
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
875
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
876
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
877
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
878
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
879
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])`, end: "(?=\\(|\\<)", patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "meta.definition.method.js.jsx entity.name.function.js.jsx" }, { match: "\\?", name: "keyword.operator.optional.js.jsx" }] }, "namespace-declaration": { begin: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.type.namespace.js.jsx" } }, end: "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.namespace.declaration.js.jsx", patterns: [{ include: "#comment" }, { include: "#string" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "entity.name.type.module.js.jsx" }, { include: "#punctuation-accessor" }, { include: "#decl-block" }] }, "new-expr": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.new.js.jsx" } }, end: "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", name: "new.expr.js.jsx", patterns: [{ include: "#expression" }] }, "null-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.null.js.jsx" }, "numeric-literal": { patterns: [{ captures: { 1: { name: "storage.type.numeric.bigint.js.jsx" } }, match: "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", name: "constant.numeric.hex.js.jsx" }, { captures: { 1: { name: "storage.type.numeric.bigint.js.jsx" } }, match: "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", name: "constant.numeric.binary.js.jsx" }, { captures: { 1: { name: "storage.type.numeric.bigint.js.jsx" } }, match: "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", name: "constant.numeric.octal.js.jsx" }, { captures: { 0: { name: "constant.numeric.decimal.js.jsx" }, 1: { name: "meta.delimiter.decimal.period.js.jsx" }, 2: { name: "storage.type.numeric.bigint.js.jsx" }, 3: { name: "meta.delimiter.decimal.period.js.jsx" }, 4: { name: "storage.type.numeric.bigint.js.jsx" }, 5: { name: "meta.delimiter.decimal.period.js.jsx" }, 6: { name: "storage.type.numeric.bigint.js.jsx" }, 7: { name: "storage.type.numeric.bigint.js.jsx" }, 8: { name: "meta.delimiter.decimal.period.js.jsx" }, 9: { name: "storage.type.numeric.bigint.js.jsx" }, 10: { name: "meta.delimiter.decimal.period.js.jsx" }, 11: { name: "storage.type.numeric.bigint.js.jsx" }, 12: { name: "meta.delimiter.decimal.period.js.jsx" }, 13: { name: "storage.type.numeric.bigint.js.jsx" }, 14: { name: "storage.type.numeric.bigint.js.jsx" } }, match: `(?x)
880
+ (?<!\\$)(?:
881
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
882
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
883
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
884
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
885
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
886
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
887
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
888
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
889
+ )(?!\\$)` }] }, "numericConstant-literal": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.nan.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.infinity.js.jsx" }] }, "object-binding-element": { patterns: [{ include: "#comment" }, { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
890
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
891
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
892
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
893
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
894
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
895
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
896
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
897
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
898
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(?=,|\\})", patterns: [{ include: "#object-binding-element-propertyName" }, { include: "#binding-element" }] }, { include: "#object-binding-pattern" }, { include: "#destructuring-variable-rest" }, { include: "#variable-initializer" }, { include: "#punctuation-comma" }] }, "object-binding-element-const": { patterns: [{ include: "#comment" }, { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
899
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
900
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
901
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
902
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
903
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
904
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
905
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
906
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
907
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(?=,|\\})", patterns: [{ include: "#object-binding-element-propertyName" }, { include: "#binding-element-const" }] }, { include: "#object-binding-pattern-const" }, { include: "#destructuring-variable-rest-const" }, { include: "#variable-initializer" }, { include: "#punctuation-comma" }] }, "object-binding-element-propertyName": { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
908
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
909
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
910
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
911
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
912
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
913
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
914
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
915
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
916
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(:)", endCaptures: { 0: { name: "punctuation.destructuring.js.jsx" } }, patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "variable.object.property.js.jsx" }] }, "object-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "punctuation.definition.binding-pattern.object.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.js.jsx" } }, patterns: [{ include: "#object-binding-element" }] }, "object-binding-pattern-const": { begin: "(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "punctuation.definition.binding-pattern.object.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.js.jsx" } }, patterns: [{ include: "#object-binding-element-const" }] }, "object-identifiers": { patterns: [{ match: "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))", name: "support.class.js.jsx" }, { captures: { 1: { name: "punctuation.accessor.js.jsx" }, 2: { name: "punctuation.accessor.optional.js.jsx" }, 3: { name: "variable.other.constant.object.property.js.jsx" }, 4: { name: "variable.other.object.property.js.jsx" } }, match: `(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:
917
+ (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |
918
+ (\\#?[_$[:alpha:]][_$[:alnum:]]*)
919
+ )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)` }, { captures: { 1: { name: "variable.other.constant.object.js.jsx" }, 2: { name: "variable.other.object.js.jsx" } }, match: `(?x)(?:
920
+ ([[:upper:]][_$[:digit:][:upper:]]*) |
921
+ ([_$[:alpha:]][_$[:alnum:]]*)
922
+ )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)` }] }, "object-literal": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, name: "meta.objectliteral.js.jsx", patterns: [{ include: "#object-member" }] }, "object-literal-method-declaration": { begin: `(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
923
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
924
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
925
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
926
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
927
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
928
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
929
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
930
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
931
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`, beginCaptures: { 1: { name: "storage.modifier.async.js.jsx" }, 2: { name: "storage.type.property.js.jsx" }, 3: { name: "keyword.generator.asterisk.js.jsx" } }, end: "(?=\\}|;|,)|(?<=\\})", name: "meta.method.declaration.js.jsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }, { begin: `(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
932
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
933
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
934
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
935
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
936
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
937
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
938
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
939
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
940
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`, beginCaptures: { 1: { name: "storage.modifier.async.js.jsx" }, 2: { name: "storage.type.property.js.jsx" }, 3: { name: "keyword.generator.asterisk.js.jsx" } }, end: "(?=\\(|\\<)", patterns: [{ include: "#method-declaration-name" }] }] }, "object-member": { patterns: [{ include: "#comment" }, { include: "#object-literal-method-declaration" }, { begin: "(?=\\[)", end: "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", name: "meta.object.member.js.jsx meta.object-literal.key.js.jsx", patterns: [{ include: "#comment" }, { include: "#array-literal" }] }, { begin: "(?=[\\'\\\"\\`])", end: "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", name: "meta.object.member.js.jsx meta.object-literal.key.js.jsx", patterns: [{ include: "#comment" }, { include: "#string" }] }, { begin: `(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
941
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
942
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
943
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
944
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
945
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
946
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
947
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
948
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
949
+ )(?!\\$)))`, end: "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", name: "meta.object.member.js.jsx meta.object-literal.key.js.jsx", patterns: [{ include: "#comment" }, { include: "#numeric-literal" }] }, { begin: "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", end: "(?=\\}|;|,)|(?<=\\})", name: "meta.method.declaration.js.jsx", patterns: [{ include: "#function-body" }] }, { captures: { 0: { name: "meta.object-literal.key.js.jsx" }, 1: { name: "constant.numeric.decimal.js.jsx" } }, match: "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", name: "meta.object.member.js.jsx" }, { captures: { 0: { name: "meta.object-literal.key.js.jsx" }, 1: { name: "entity.name.function.js.jsx" } }, match: `(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(
950
+ ((async\\s+)?(
951
+ (function\\s*[(<*]) |
952
+ (function\\s+) |
953
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
954
+ )) |
955
+ ((async\\s*)?(
956
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
957
+
958
+ (
959
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
960
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
961
+ (
962
+ ([)]\\s*:) |
963
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
964
+ )
965
+ ) |
966
+ (
967
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
968
+ ) |
969
+ # arrow function possible to detect only with => on same line
970
+ (
971
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
972
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
973
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
974
+ \\s*=>
975
+ )
976
+ ))
977
+ )))`, name: "meta.object.member.js.jsx" }, { captures: { 0: { name: "meta.object-literal.key.js.jsx" } }, match: "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", name: "meta.object.member.js.jsx" }, { begin: "\\.\\.\\.", beginCaptures: { 0: { name: "keyword.operator.spread.js.jsx" } }, end: "(?=,|\\})", name: "meta.object.member.js.jsx", patterns: [{ include: "#expression" }] }, { captures: { 1: { name: "variable.other.readwrite.js.jsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", name: "meta.object.member.js.jsx" }, { captures: { 1: { name: "keyword.control.as.js.jsx" }, 2: { name: "storage.modifier.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", name: "meta.object.member.js.jsx" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", beginCaptures: { 1: { name: "keyword.control.as.js.jsx" }, 2: { name: "keyword.control.satisfies.js.jsx" } }, end: "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", name: "meta.object.member.js.jsx", patterns: [{ include: "#type" }] }, { begin: "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", end: "(?=,|\\}|$|\\/\\/|\\/\\*)", name: "meta.object.member.js.jsx", patterns: [{ include: "#expression" }] }, { begin: ":", beginCaptures: { 0: { name: "meta.object-literal.key.js.jsx punctuation.separator.key-value.js.jsx" } }, end: "(?=,|\\})", name: "meta.object.member.js.jsx", patterns: [{ begin: "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "storage.modifier.async.js.jsx" } }, end: "(?<=\\))", patterns: [{ include: "#type-parameters" }, { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }] }, { begin: "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "storage.modifier.async.js.jsx" }, 2: { name: "meta.brace.round.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }, { begin: "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", beginCaptures: { 1: { name: "storage.modifier.async.js.jsx" } }, end: "(?<=\\>)", patterns: [{ include: "#type-parameters" }] }, { begin: "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "meta.brace.round.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }, { include: "#possibly-arrow-return-type" }, { include: "#expression" }] }, { include: "#punctuation-comma" }, { include: "#decl-block" }] }, "parameter-array-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "punctuation.definition.binding-pattern.array.js.jsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.js.jsx" } }, patterns: [{ include: "#parameter-binding-element" }, { include: "#punctuation-comma" }] }, "parameter-binding-element": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#numeric-literal" }, { include: "#regex" }, { include: "#parameter-object-binding-pattern" }, { include: "#parameter-array-binding-pattern" }, { include: "#destructuring-parameter-rest" }, { include: "#variable-initializer" }] }, "parameter-name": { patterns: [{ captures: { 1: { name: "storage.modifier.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)" }, { captures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "keyword.operator.rest.js.jsx" }, 3: { name: "entity.name.function.js.jsx variable.language.this.js.jsx" }, 4: { name: "entity.name.function.js.jsx" }, 5: { name: "keyword.operator.optional.js.jsx" } }, match: `(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*
978
+ # function assignment |
979
+ (=\\s*(
980
+ ((async\\s+)?(
981
+ (function\\s*[(<*]) |
982
+ (function\\s+) |
983
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
984
+ )) |
985
+ ((async\\s*)?(
986
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
987
+
988
+ (
989
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
990
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
991
+ (
992
+ ([)]\\s*:) |
993
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
994
+ )
995
+ ) |
996
+ (
997
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
998
+ ) |
999
+ # arrow function possible to detect only with => on same line
1000
+ (
1001
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1002
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1003
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1004
+ \\s*=>
1005
+ )
1006
+ ))
1007
+ )) |
1008
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
1009
+ (:\\s*(
1010
+ (<) |
1011
+ ([(]\\s*(
1012
+ ([)]) |
1013
+ (\\.\\.\\.) |
1014
+ ([_$[:alnum:]]+\\s*(
1015
+ ([:,?=])|
1016
+ ([)]\\s*=>)
1017
+ ))
1018
+ ))
1019
+ )) |
1020
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
1021
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
1022
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
1023
+ ((async\\s+)?(
1024
+ (function\\s*[(<*]) |
1025
+ (function\\s+) |
1026
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1027
+ )) |
1028
+ ((async\\s*)?(
1029
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1030
+
1031
+ (
1032
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1033
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1034
+ (
1035
+ ([)]\\s*:) |
1036
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1037
+ )
1038
+ ) |
1039
+ (
1040
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1041
+ ) |
1042
+ # arrow function possible to detect only with => on same line
1043
+ (
1044
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1045
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1046
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1047
+ \\s*=>
1048
+ )
1049
+ ))
1050
+ )))` }, { captures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "keyword.operator.rest.js.jsx" }, 3: { name: "variable.parameter.js.jsx variable.language.this.js.jsx" }, 4: { name: "variable.parameter.js.jsx" }, 5: { name: "keyword.operator.optional.js.jsx" } }, match: "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)" }] }, "parameter-object-binding-element": { patterns: [{ include: "#comment" }, { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1051
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1052
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1053
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1054
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1055
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1056
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1057
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1058
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1059
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(?=,|\\})", patterns: [{ include: "#object-binding-element-propertyName" }, { include: "#parameter-binding-element" }, { include: "#paren-expression" }] }, { include: "#parameter-object-binding-pattern" }, { include: "#destructuring-parameter-rest" }, { include: "#variable-initializer" }, { include: "#punctuation-comma" }] }, "parameter-object-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.js.jsx" }, 2: { name: "punctuation.definition.binding-pattern.object.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.js.jsx" } }, patterns: [{ include: "#parameter-object-binding-element" }] }, "parameter-type-annotation": { patterns: [{ begin: "(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.js.jsx" } }, end: "(?=[,)])|(?==[^>])", name: "meta.type.annotation.js.jsx", patterns: [{ include: "#type" }] }] }, "paren-expression": { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, patterns: [{ include: "#expression" }] }, "paren-expression-possibly-arrow": { patterns: [{ begin: "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "storage.modifier.async.js.jsx" } }, end: "(?<=\\))", patterns: [{ include: "#paren-expression-possibly-arrow-with-typeparameters" }] }, { begin: "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", beginCaptures: { 1: { name: "storage.modifier.async.js.jsx" } }, end: "(?<=\\))", patterns: [{ include: "#paren-expression-possibly-arrow-with-typeparameters" }] }, { include: "#possibly-arrow-return-type" }] }, "paren-expression-possibly-arrow-with-typeparameters": { patterns: [{ include: "#type-parameters" }, { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }] }, "possibly-arrow-return-type": { begin: "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", beginCaptures: { 1: { name: "meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx" } }, contentName: "meta.arrow.js.jsx meta.return.type.arrow.js.jsx", end: "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", patterns: [{ include: "#arrow-return-type-body" }] }, "property-accessor": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.type.property.js.jsx" }, "punctuation-accessor": { captures: { 1: { name: "punctuation.accessor.js.jsx" }, 2: { name: "punctuation.accessor.optional.js.jsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))" }, "punctuation-comma": { match: ",", name: "punctuation.separator.comma.js.jsx" }, "punctuation-semicolon": { match: ";", name: "punctuation.terminator.statement.js.jsx" }, "qstring-double": { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.js.jsx" } }, end: '(")|((?:[^\\\\\\n])$)', endCaptures: { 1: { name: "punctuation.definition.string.end.js.jsx" }, 2: { name: "invalid.illegal.newline.js.jsx" } }, name: "string.quoted.double.js.jsx", patterns: [{ include: "#string-character-escape" }] }, "qstring-single": { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.js.jsx" } }, end: "(\\')|((?:[^\\\\\\n])$)", endCaptures: { 1: { name: "punctuation.definition.string.end.js.jsx" }, 2: { name: "invalid.illegal.newline.js.jsx" } }, name: "string.quoted.single.js.jsx", patterns: [{ include: "#string-character-escape" }] }, regex: { patterns: [{ begin: "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", beginCaptures: { 1: { name: "punctuation.definition.string.begin.js.jsx" } }, end: "(/)([dgimsuy]*)", endCaptures: { 1: { name: "punctuation.definition.string.end.js.jsx" }, 2: { name: "keyword.other.js.jsx" } }, name: "string.regexp.js.jsx", patterns: [{ include: "#regexp" }] }, { begin: "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", beginCaptures: { 0: { name: "punctuation.definition.string.begin.js.jsx" } }, end: "(/)([dgimsuy]*)", endCaptures: { 1: { name: "punctuation.definition.string.end.js.jsx" }, 2: { name: "keyword.other.js.jsx" } }, name: "string.regexp.js.jsx", patterns: [{ include: "#regexp" }] }] }, "regex-character-class": { patterns: [{ match: "\\\\[wWsSdDtrnvf]|\\.", name: "constant.other.character-class.regexp" }, { match: "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})", name: "constant.character.numeric.regexp" }, { match: "\\\\c[A-Z]", name: "constant.character.control.regexp" }, { match: "\\\\.", name: "constant.character.escape.backslash.regexp" }] }, regexp: { patterns: [{ match: "\\\\[bB]|\\^|\\$", name: "keyword.control.anchor.regexp" }, { captures: { 0: { name: "keyword.other.back-reference.regexp" }, 1: { name: "variable.other.regexp" } }, match: "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>" }, { match: "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??", name: "keyword.operator.quantifier.regexp" }, { match: "\\|", name: "keyword.operator.or.regexp" }, { begin: "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))", beginCaptures: { 1: { name: "punctuation.definition.group.regexp" }, 2: { name: "punctuation.definition.group.assertion.regexp" }, 3: { name: "meta.assertion.look-ahead.regexp" }, 4: { name: "meta.assertion.negative-look-ahead.regexp" }, 5: { name: "meta.assertion.look-behind.regexp" }, 6: { name: "meta.assertion.negative-look-behind.regexp" } }, end: "(\\))", endCaptures: { 1: { name: "punctuation.definition.group.regexp" } }, name: "meta.group.assertion.regexp", patterns: [{ include: "#regexp" }] }, { begin: "\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?", beginCaptures: { 0: { name: "punctuation.definition.group.regexp" }, 1: { name: "punctuation.definition.group.no-capture.regexp" }, 2: { name: "variable.other.regexp" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.regexp" } }, name: "meta.group.regexp", patterns: [{ include: "#regexp" }] }, { begin: "(\\[)(\\^)?", beginCaptures: { 1: { name: "punctuation.definition.character-class.regexp" }, 2: { name: "keyword.operator.negation.regexp" } }, end: "(\\])", endCaptures: { 1: { name: "punctuation.definition.character-class.regexp" } }, name: "constant.other.character-class.set.regexp", patterns: [{ captures: { 1: { name: "constant.character.numeric.regexp" }, 2: { name: "constant.character.control.regexp" }, 3: { name: "constant.character.escape.backslash.regexp" }, 4: { name: "constant.character.numeric.regexp" }, 5: { name: "constant.character.control.regexp" }, 6: { name: "constant.character.escape.backslash.regexp" } }, match: "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", name: "constant.other.character-class.range.regexp" }, { include: "#regex-character-class" }] }, { include: "#regex-character-class" }] }, "return-type": { patterns: [{ begin: "(?<=\\))\\s*(:)(?=\\s*\\S)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.js.jsx" } }, end: "(?<![:|&])(?=$|^|[{};,]|//)", name: "meta.return.type.js.jsx", patterns: [{ include: "#return-type-core" }] }, { begin: "(?<=\\))\\s*(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.js.jsx" } }, end: "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", name: "meta.return.type.js.jsx", patterns: [{ include: "#return-type-core" }] }] }, "return-type-core": { patterns: [{ include: "#comment" }, { begin: "(?<=[:|&])(?=\\s*\\{)", end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { include: "#type-predicate-operator" }, { include: "#type" }] }, shebang: { captures: { 1: { name: "punctuation.definition.comment.js.jsx" } }, match: "\\A(#!).*(?=$)", name: "comment.line.shebang.js.jsx" }, "single-line-comment-consuming-line-ending": { begin: "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.js.jsx" }, 2: { name: "comment.line.double-slash.js.jsx" }, 3: { name: "punctuation.definition.comment.js.jsx" }, 4: { name: "storage.type.internaldeclaration.js.jsx" }, 5: { name: "punctuation.decorator.internaldeclaration.js.jsx" } }, contentName: "comment.line.double-slash.js.jsx", end: "(?=^)" }, statements: { patterns: [{ include: "#declaration" }, { include: "#control-statement" }, { include: "#after-operator-block-as-object-literal" }, { include: "#decl-block" }, { include: "#label" }, { include: "#expression" }, { include: "#punctuation-semicolon" }, { include: "#string" }, { include: "#comment" }] }, string: { patterns: [{ include: "#qstring-single" }, { include: "#qstring-double" }, { include: "#template" }] }, "string-character-escape": { match: "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)", name: "constant.character.escape.js.jsx" }, "super-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)", name: "variable.language.super.js.jsx" }, "support-function-call-identifiers": { patterns: [{ include: "#literal" }, { include: "#support-objects" }, { include: "#object-identifiers" }, { include: "#punctuation-accessor" }, { match: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))", name: "keyword.operator.expression.import.js.jsx" }] }, "support-objects": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)", name: "variable.language.arguments.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)", name: "support.class.promise.js.jsx" }, { captures: { 1: { name: "keyword.control.import.js.jsx" }, 2: { name: "punctuation.accessor.js.jsx" }, 3: { name: "punctuation.accessor.optional.js.jsx" }, 4: { name: "support.variable.property.importmeta.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)" }, { captures: { 1: { name: "keyword.operator.new.js.jsx" }, 2: { name: "punctuation.accessor.js.jsx" }, 3: { name: "punctuation.accessor.optional.js.jsx" }, 4: { name: "support.variable.property.target.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)" }, { captures: { 1: { name: "punctuation.accessor.js.jsx" }, 2: { name: "punctuation.accessor.optional.js.jsx" }, 3: { name: "support.variable.property.js.jsx" }, 4: { name: "support.constant.js.jsx" } }, match: `(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:
1060
+ (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())
1061
+ |
1062
+ (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))` }, { captures: { 1: { name: "support.type.object.module.js.jsx" }, 2: { name: "support.type.object.module.js.jsx" }, 3: { name: "punctuation.accessor.js.jsx" }, 4: { name: "punctuation.accessor.optional.js.jsx" }, 5: { name: "support.type.object.module.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)" }] }, "switch-statement": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, name: "switch-statement.expr.js.jsx", patterns: [{ include: "#comment" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", beginCaptures: { 1: { name: "keyword.control.switch.js.jsx" }, 2: { name: "meta.brace.round.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, name: "switch-expression.expr.js.jsx", patterns: [{ include: "#expression" }] }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, end: "(?=\\})", name: "switch-block.expr.js.jsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.control.switch.js.jsx" } }, end: "(?=:)", name: "case-clause.expr.js.jsx", patterns: [{ include: "#expression" }] }, { begin: "(:)\\s*(\\{)", beginCaptures: { 1: { name: "case-clause.expr.js.jsx punctuation.definition.section.case-statement.js.jsx" }, 2: { name: "meta.block.js.jsx punctuation.definition.block.js.jsx" } }, contentName: "meta.block.js.jsx", end: "\\}", endCaptures: { 0: { name: "meta.block.js.jsx punctuation.definition.block.js.jsx" } }, patterns: [{ include: "#statements" }] }, { captures: { 0: { name: "case-clause.expr.js.jsx punctuation.definition.section.case-statement.js.jsx" } }, match: "(:)" }, { include: "#statements" }] }] }, template: { patterns: [{ include: "#template-call" }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)?(`)", beginCaptures: { 1: { name: "entity.name.function.tagged-template.js.jsx" }, 2: { name: "string.template.js.jsx punctuation.definition.string.template.begin.js.jsx" } }, contentName: "string.template.js.jsx", end: "`", endCaptures: { 0: { name: "string.template.js.jsx punctuation.definition.string.template.end.js.jsx" } }, patterns: [{ include: "#template-substitution-element" }, { include: "#string-character-escape" }] }] }, "template-call": { patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", end: "(?=`)", patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", end: "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", patterns: [{ include: "#support-function-call-identifiers" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "entity.name.function.tagged-template.js.jsx" }] }, { include: "#type-arguments" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", beginCaptures: { 1: { name: "entity.name.function.tagged-template.js.jsx" } }, end: "(?=`)", patterns: [{ include: "#type-arguments" }] }] }, "template-substitution-element": { begin: "\\$\\{", beginCaptures: { 0: { name: "punctuation.definition.template-expression.begin.js.jsx" } }, contentName: "meta.embedded.line.js.jsx", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.template-expression.end.js.jsx" } }, name: "meta.template.expression.js.jsx", patterns: [{ include: "#expression" }] }, "template-type": { patterns: [{ include: "#template-call" }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)?(`)", beginCaptures: { 1: { name: "entity.name.function.tagged-template.js.jsx" }, 2: { name: "string.template.js.jsx punctuation.definition.string.template.begin.js.jsx" } }, contentName: "string.template.js.jsx", end: "`", endCaptures: { 0: { name: "string.template.js.jsx punctuation.definition.string.template.end.js.jsx" } }, patterns: [{ include: "#template-type-substitution-element" }, { include: "#string-character-escape" }] }] }, "template-type-substitution-element": { begin: "\\$\\{", beginCaptures: { 0: { name: "punctuation.definition.template-expression.begin.js.jsx" } }, contentName: "meta.embedded.line.js.jsx", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.template-expression.end.js.jsx" } }, name: "meta.template.expression.js.jsx", patterns: [{ include: "#type" }] }, "ternary-expression": { begin: "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", beginCaptures: { 1: { name: "keyword.operator.ternary.js.jsx" } }, end: "\\s*(:)", endCaptures: { 1: { name: "keyword.operator.ternary.js.jsx" } }, patterns: [{ include: "#expression" }] }, "this-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)", name: "variable.language.this.js.jsx" }, type: { patterns: [{ include: "#comment" }, { include: "#type-string" }, { include: "#numeric-literal" }, { include: "#type-primitive" }, { include: "#type-builtin-literals" }, { include: "#type-parameters" }, { include: "#type-tuple" }, { include: "#type-object" }, { include: "#type-operators" }, { include: "#type-conditional" }, { include: "#type-fn-type-parameters" }, { include: "#type-paren-or-function-parameters" }, { include: "#type-function-return-type" }, { captures: { 1: { name: "storage.modifier.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*" }, { include: "#type-name" }] }, "type-alias-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.type.type.js.jsx" }, 4: { name: "entity.name.type.alias.js.jsx" } }, end: "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.type.declaration.js.jsx", patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { begin: "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.assignment.js.jsx" }, 2: { name: "keyword.control.intrinsic.js.jsx" } }, end: "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#type" }] }, { begin: "(=)\\s*", beginCaptures: { 1: { name: "keyword.operator.assignment.js.jsx" } }, end: "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#type" }] }] }, "type-annotation": { patterns: [{ begin: "(:)(?=\\s*\\S)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.js.jsx" } }, end: "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", name: "meta.type.annotation.js.jsx", patterns: [{ include: "#type" }] }, { begin: "(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.js.jsx" } }, end: "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", name: "meta.type.annotation.js.jsx", patterns: [{ include: "#type" }] }] }, "type-arguments": { begin: "\\<", beginCaptures: { 0: { name: "punctuation.definition.typeparameters.begin.js.jsx" } }, end: "\\>", endCaptures: { 0: { name: "punctuation.definition.typeparameters.end.js.jsx" } }, name: "meta.type.parameters.js.jsx", patterns: [{ include: "#type-arguments-body" }] }, "type-arguments-body": { patterns: [{ captures: { 0: { name: "keyword.operator.type.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { include: "#type" }, { include: "#punctuation-comma" }] }, "type-builtin-literals": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "support.type.builtin.js.jsx" }, "type-conditional": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", beginCaptures: { 1: { name: "storage.modifier.js.jsx" } }, end: "(?<=:)", patterns: [{ begin: "\\?", beginCaptures: { 0: { name: "keyword.operator.ternary.js.jsx" } }, end: ":", endCaptures: { 0: { name: "keyword.operator.ternary.js.jsx" } }, patterns: [{ include: "#type" }] }, { include: "#type" }] }] }, "type-fn-type-parameters": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", beginCaptures: { 1: { name: "meta.type.constructor.js.jsx storage.modifier.js.jsx" }, 2: { name: "meta.type.constructor.js.jsx keyword.control.new.js.jsx" } }, end: "(?<=>)", patterns: [{ include: "#comment" }, { include: "#type-parameters" }] }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", beginCaptures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "keyword.control.new.js.jsx" } }, end: "(?<=\\))", name: "meta.type.constructor.js.jsx", patterns: [{ include: "#function-parameters" }] }, { begin: `(?x)(
1063
+ (?=
1064
+ [(]\\s*(
1065
+ ([)]) |
1066
+ (\\.\\.\\.) |
1067
+ ([_$[:alnum:]]+\\s*(
1068
+ ([:,?=])|
1069
+ ([)]\\s*=>)
1070
+ ))
1071
+ )
1072
+ )
1073
+ )`, end: "(?<=\\))", name: "meta.type.function.js.jsx", patterns: [{ include: "#function-parameters" }] }] }, "type-function-return-type": { patterns: [{ begin: "(=>)(?=\\s*\\S)", beginCaptures: { 1: { name: "storage.type.function.arrow.js.jsx" } }, end: "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", name: "meta.type.function.return.js.jsx", patterns: [{ include: "#type-function-return-type-core" }] }, { begin: "=>", beginCaptures: { 0: { name: "storage.type.function.arrow.js.jsx" } }, end: "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", name: "meta.type.function.return.js.jsx", patterns: [{ include: "#type-function-return-type-core" }] }] }, "type-function-return-type-core": { patterns: [{ include: "#comment" }, { begin: "(?<==>)(?=\\s*\\{)", end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { include: "#type-predicate-operator" }, { include: "#type" }] }, "type-infer": { patterns: [{ captures: { 1: { name: "keyword.operator.expression.infer.js.jsx" }, 2: { name: "entity.name.type.js.jsx" }, 3: { name: "keyword.operator.expression.extends.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", name: "meta.type.infer.js.jsx" }] }, "type-name": { patterns: [{ begin: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", captures: { 1: { name: "entity.name.type.module.js.jsx" }, 2: { name: "punctuation.accessor.js.jsx" }, 3: { name: "punctuation.accessor.optional.js.jsx" }, 4: { name: "meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx" } }, contentName: "meta.type.parameters.js.jsx", end: "(>)", endCaptures: { 1: { name: "meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx" } }, patterns: [{ include: "#type-arguments-body" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", beginCaptures: { 1: { name: "entity.name.type.js.jsx" }, 2: { name: "meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx" } }, contentName: "meta.type.parameters.js.jsx", end: "(>)", endCaptures: { 1: { name: "meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx" } }, patterns: [{ include: "#type-arguments-body" }] }, { captures: { 1: { name: "entity.name.type.module.js.jsx" }, 2: { name: "punctuation.accessor.js.jsx" }, 3: { name: "punctuation.accessor.optional.js.jsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))" }, { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "entity.name.type.js.jsx" }] }, "type-object": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, name: "meta.object.type.js.jsx", patterns: [{ include: "#comment" }, { include: "#method-declaration" }, { include: "#indexer-declaration" }, { include: "#indexer-mapped-type-declaration" }, { include: "#field-declaration" }, { include: "#type-annotation" }, { begin: "\\.\\.\\.", beginCaptures: { 0: { name: "keyword.operator.spread.js.jsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", patterns: [{ include: "#type" }] }, { include: "#punctuation-comma" }, { include: "#punctuation-semicolon" }, { include: "#type" }] }, "type-operators": { patterns: [{ include: "#typeof-operator" }, { include: "#type-infer" }, { begin: "([&|])(?=\\s*\\{)", beginCaptures: { 0: { name: "keyword.operator.type.js.jsx" } }, end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { begin: "[&|]", beginCaptures: { 0: { name: "keyword.operator.type.js.jsx" } }, end: "(?=\\S)" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.keyof.js.jsx" }, { match: "(\\?|\\:)", name: "keyword.operator.ternary.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()", name: "keyword.operator.expression.import.js.jsx" }] }, "type-parameters": { begin: "(<)", beginCaptures: { 1: { name: "punctuation.definition.typeparameters.begin.js.jsx" } }, end: "(>)", endCaptures: { 1: { name: "punctuation.definition.typeparameters.end.js.jsx" } }, name: "meta.type.parameters.js.jsx", patterns: [{ include: "#comment" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.js.jsx" }, { include: "#type" }, { include: "#punctuation-comma" }, { match: "(=)(?!>)", name: "keyword.operator.assignment.js.jsx" }] }, "type-paren-or-function-parameters": { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.js.jsx" } }, name: "meta.type.paren.cover.js.jsx", patterns: [{ captures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "keyword.operator.rest.js.jsx" }, 3: { name: "entity.name.function.js.jsx variable.language.this.js.jsx" }, 4: { name: "entity.name.function.js.jsx" }, 5: { name: "keyword.operator.optional.js.jsx" } }, match: `(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(
1074
+ (<) |
1075
+ ([(]\\s*(
1076
+ ([)]) |
1077
+ (\\.\\.\\.) |
1078
+ ([_$[:alnum:]]+\\s*(
1079
+ ([:,?=])|
1080
+ ([)]\\s*=>)
1081
+ ))
1082
+ ))
1083
+ )) |
1084
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
1085
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))` }, { captures: { 1: { name: "storage.modifier.js.jsx" }, 2: { name: "keyword.operator.rest.js.jsx" }, 3: { name: "variable.parameter.js.jsx variable.language.this.js.jsx" }, 4: { name: "variable.parameter.js.jsx" }, 5: { name: "keyword.operator.optional.js.jsx" } }, match: "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)" }, { include: "#type-annotation" }, { match: ",", name: "punctuation.separator.parameter.js.jsx" }, { include: "#type" }] }, "type-predicate-operator": { patterns: [{ captures: { 1: { name: "keyword.operator.type.asserts.js.jsx" }, 2: { name: "variable.parameter.js.jsx variable.language.this.js.jsx" }, 3: { name: "variable.parameter.js.jsx" }, 4: { name: "keyword.operator.expression.is.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { captures: { 1: { name: "keyword.operator.type.asserts.js.jsx" }, 2: { name: "variable.parameter.js.jsx variable.language.this.js.jsx" }, 3: { name: "variable.parameter.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.type.asserts.js.jsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.is.js.jsx" }] }, "type-primitive": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "support.type.primitive.js.jsx" }, "type-string": { patterns: [{ include: "#qstring-single" }, { include: "#qstring-double" }, { include: "#template-type" }] }, "type-tuple": { begin: "\\[", beginCaptures: { 0: { name: "meta.brace.square.js.jsx" } }, end: "\\]", endCaptures: { 0: { name: "meta.brace.square.js.jsx" } }, name: "meta.type.tuple.js.jsx", patterns: [{ match: "\\.\\.\\.", name: "keyword.operator.rest.js.jsx" }, { captures: { 1: { name: "entity.name.label.js.jsx" }, 2: { name: "keyword.operator.optional.js.jsx" }, 3: { name: "punctuation.separator.label.js.jsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)" }, { include: "#type" }, { include: "#punctuation-comma" }] }, "typeof-operator": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 0: { name: "keyword.operator.expression.typeof.js.jsx" } }, end: "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#type-arguments" }, { include: "#expression" }] }, "undefined-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.undefined.js.jsx" }, "var-expr": { patterns: [{ begin: "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", end: "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", name: "meta.var.expr.js.jsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.type.js.jsx" } }, end: "(?=\\S)" }, { include: "#destructuring-variable" }, { include: "#var-single-variable" }, { include: "#variable-initializer" }, { include: "#comment" }, { begin: "(,)\\s*(?=$|\\/\\/)", beginCaptures: { 1: { name: "punctuation.separator.comma.js.jsx" } }, end: "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#destructuring-variable" }, { include: "#var-single-variable" }, { include: "#punctuation-comma" }] }, { include: "#punctuation-comma" }] }, { begin: "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.type.js.jsx" } }, end: "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", name: "meta.var.expr.js.jsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.type.js.jsx" } }, end: "(?=\\S)" }, { include: "#destructuring-const" }, { include: "#var-single-const" }, { include: "#variable-initializer" }, { include: "#comment" }, { begin: "(,)\\s*(?=$|\\/\\/)", beginCaptures: { 1: { name: "punctuation.separator.comma.js.jsx" } }, end: "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#destructuring-const" }, { include: "#var-single-const" }, { include: "#punctuation-comma" }] }, { include: "#punctuation-comma" }] }, { begin: "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.type.js.jsx" } }, end: "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", name: "meta.var.expr.js.jsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.type.js.jsx" } }, end: "(?=\\S)" }, { include: "#var-single-const" }, { include: "#variable-initializer" }, { include: "#comment" }, { begin: "(,)\\s*((?!\\S)|(?=\\/\\/))", beginCaptures: { 1: { name: "punctuation.separator.comma.js.jsx" } }, end: "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#var-single-const" }, { include: "#punctuation-comma" }] }, { include: "#punctuation-comma" }] }] }, "var-single-const": { patterns: [{ begin: `(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*
1086
+ # function assignment |
1087
+ (=\\s*(
1088
+ ((async\\s+)?(
1089
+ (function\\s*[(<*]) |
1090
+ (function\\s+) |
1091
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1092
+ )) |
1093
+ ((async\\s*)?(
1094
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1095
+
1096
+ (
1097
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1098
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1099
+ (
1100
+ ([)]\\s*:) |
1101
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1102
+ )
1103
+ ) |
1104
+ (
1105
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1106
+ ) |
1107
+ # arrow function possible to detect only with => on same line
1108
+ (
1109
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1110
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1111
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1112
+ \\s*=>
1113
+ )
1114
+ ))
1115
+ )) |
1116
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
1117
+ (:\\s*(
1118
+ (<) |
1119
+ ([(]\\s*(
1120
+ ([)]) |
1121
+ (\\.\\.\\.) |
1122
+ ([_$[:alnum:]]+\\s*(
1123
+ ([:,?=])|
1124
+ ([)]\\s*=>)
1125
+ ))
1126
+ ))
1127
+ )) |
1128
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
1129
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
1130
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
1131
+ ((async\\s+)?(
1132
+ (function\\s*[(<*]) |
1133
+ (function\\s+) |
1134
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1135
+ )) |
1136
+ ((async\\s*)?(
1137
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1138
+
1139
+ (
1140
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1141
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1142
+ (
1143
+ ([)]\\s*:) |
1144
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1145
+ )
1146
+ ) |
1147
+ (
1148
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1149
+ ) |
1150
+ # arrow function possible to detect only with => on same line
1151
+ (
1152
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1153
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1154
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1155
+ \\s*=>
1156
+ )
1157
+ ))
1158
+ )))`, beginCaptures: { 1: { name: "meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.js.jsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)", beginCaptures: { 1: { name: "meta.definition.variable.js.jsx variable.other.constant.js.jsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.js.jsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }] }, "var-single-variable": { patterns: [{ begin: `(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*
1159
+ # function assignment |
1160
+ (=\\s*(
1161
+ ((async\\s+)?(
1162
+ (function\\s*[(<*]) |
1163
+ (function\\s+) |
1164
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1165
+ )) |
1166
+ ((async\\s*)?(
1167
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1168
+
1169
+ (
1170
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1171
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1172
+ (
1173
+ ([)]\\s*:) |
1174
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1175
+ )
1176
+ ) |
1177
+ (
1178
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1179
+ ) |
1180
+ # arrow function possible to detect only with => on same line
1181
+ (
1182
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1183
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1184
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1185
+ \\s*=>
1186
+ )
1187
+ ))
1188
+ )) |
1189
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
1190
+ (:\\s*(
1191
+ (<) |
1192
+ ([(]\\s*(
1193
+ ([)]) |
1194
+ (\\.\\.\\.) |
1195
+ ([_$[:alnum:]]+\\s*(
1196
+ ([:,?=])|
1197
+ ([)]\\s*=>)
1198
+ ))
1199
+ ))
1200
+ )) |
1201
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
1202
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
1203
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
1204
+ ((async\\s+)?(
1205
+ (function\\s*[(<*]) |
1206
+ (function\\s+) |
1207
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1208
+ )) |
1209
+ ((async\\s*)?(
1210
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1211
+
1212
+ (
1213
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1214
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1215
+ (
1216
+ ([)]\\s*:) |
1217
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1218
+ )
1219
+ ) |
1220
+ (
1221
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1222
+ ) |
1223
+ # arrow function possible to detect only with => on same line
1224
+ (
1225
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1226
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1227
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1228
+ \\s*=>
1229
+ )
1230
+ ))
1231
+ )))`, beginCaptures: { 1: { name: "meta.definition.variable.js.jsx entity.name.function.js.jsx" }, 2: { name: "keyword.operator.definiteassignment.js.jsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.js.jsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", beginCaptures: { 1: { name: "meta.definition.variable.js.jsx variable.other.constant.js.jsx" }, 2: { name: "keyword.operator.definiteassignment.js.jsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.js.jsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", beginCaptures: { 1: { name: "meta.definition.variable.js.jsx variable.other.readwrite.js.jsx" }, 2: { name: "keyword.operator.definiteassignment.js.jsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.js.jsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }] }, "var-single-variable-type-annotation": { patterns: [{ include: "#type-annotation" }, { include: "#string" }, { include: "#comment" }] }, "variable-initializer": { patterns: [{ begin: "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", beginCaptures: { 1: { name: "keyword.operator.assignment.js.jsx" } }, end: "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", patterns: [{ include: "#expression" }] }, { begin: "(?<!=|!)(=)(?!=)", beginCaptures: { 1: { name: "keyword.operator.assignment.js.jsx" } }, end: "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", patterns: [{ include: "#expression" }] }] } }, scopeName: "source.js.jsx" });
1232
+ var c = [
1233
+ k
1234
+ ];
1235
+ const j = Object.freeze({ displayName: "TSX", name: "tsx", patterns: [{ include: "#directives" }, { include: "#statements" }, { include: "#shebang" }], repository: { "access-modifier": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.tsx" }, "after-operator-block-as-object-literal": { begin: "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", beginCaptures: { 1: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "meta.objectliteral.tsx", patterns: [{ include: "#object-member" }] }, "array-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.array.tsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.tsx" } }, patterns: [{ include: "#binding-element" }, { include: "#punctuation-comma" }] }, "array-binding-pattern-const": { begin: "(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.array.tsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.tsx" } }, patterns: [{ include: "#binding-element-const" }, { include: "#punctuation-comma" }] }, "array-literal": { begin: "\\s*(\\[)", beginCaptures: { 1: { name: "meta.brace.square.tsx" } }, end: "\\]", endCaptures: { 0: { name: "meta.brace.square.tsx" } }, name: "meta.array.literal.tsx", patterns: [{ include: "#expression" }, { include: "#punctuation-comma" }] }, "arrow-function": { patterns: [{ captures: { 1: { name: "storage.modifier.async.tsx" }, 2: { name: "variable.parameter.tsx" } }, match: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", name: "meta.arrow.tsx" }, { begin: `(?x) (?:
1236
+ (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)
1237
+ )? ((?<![})!\\]])\\s*
1238
+ (?=
1239
+
1240
+ (
1241
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1242
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1243
+ (
1244
+ ([)]\\s*:) |
1245
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1246
+ )
1247
+ ) |
1248
+ (
1249
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1250
+ ) |
1251
+ # arrow function possible to detect only with => on same line
1252
+ (
1253
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1254
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1255
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1256
+ \\s*=>
1257
+ )
1258
+ )
1259
+ )`, beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", name: "meta.arrow.tsx", patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { include: "#function-parameters" }, { include: "#arrow-return-type" }, { include: "#possibly-arrow-return-type" }] }, { begin: "=>", beginCaptures: { 0: { name: "storage.type.function.arrow.tsx" } }, end: "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", name: "meta.arrow.tsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#decl-block" }, { include: "#expression" }] }] }, "arrow-return-type": { begin: "(?<=\\))\\s*(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", name: "meta.return.type.arrow.tsx", patterns: [{ include: "#arrow-return-type-body" }] }, "arrow-return-type-body": { patterns: [{ begin: "(?<=[:])(?=\\s*\\{)", end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { include: "#type-predicate-operator" }, { include: "#type" }] }, "async-modifier": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.async.tsx" }, "binding-element": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#numeric-literal" }, { include: "#regex" }, { include: "#object-binding-pattern" }, { include: "#array-binding-pattern" }, { include: "#destructuring-variable-rest" }, { include: "#variable-initializer" }] }, "binding-element-const": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#numeric-literal" }, { include: "#regex" }, { include: "#object-binding-pattern-const" }, { include: "#array-binding-pattern-const" }, { include: "#destructuring-variable-rest-const" }, { include: "#variable-initializer" }] }, "boolean-literal": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.boolean.true.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.boolean.false.tsx" }] }, brackets: { patterns: [{ begin: "{", end: "}|(?=\\*/)", patterns: [{ include: "#brackets" }] }, { begin: "\\[", end: "\\]|(?=\\*/)", patterns: [{ include: "#brackets" }] }] }, cast: { patterns: [{ include: "#jsx" }] }, "class-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.type.class.tsx" } }, end: "(?<=\\})", name: "meta.class.tsx", patterns: [{ include: "#class-declaration-or-expression-patterns" }] }, "class-declaration-or-expression-patterns": { patterns: [{ include: "#comment" }, { include: "#class-or-interface-heritage" }, { captures: { 0: { name: "entity.name.type.class.tsx" } }, match: "[_$[:alpha:]][_$[:alnum:]]*" }, { include: "#type-parameters" }, { include: "#class-or-interface-body" }] }, "class-expression": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "storage.type.class.tsx" } }, end: "(?<=\\})", name: "meta.class.tsx", patterns: [{ include: "#class-declaration-or-expression-patterns" }] }, "class-or-interface-body": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, patterns: [{ include: "#comment" }, { include: "#decorator" }, { begin: "(?<=:)\\s*", end: "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#expression" }] }, { include: "#method-declaration" }, { include: "#indexer-declaration" }, { include: "#field-declaration" }, { include: "#string" }, { include: "#type-annotation" }, { include: "#variable-initializer" }, { include: "#access-modifier" }, { include: "#property-accessor" }, { include: "#async-modifier" }, { include: "#after-operator-block-as-object-literal" }, { include: "#decl-block" }, { include: "#expression" }, { include: "#punctuation-comma" }, { include: "#punctuation-semicolon" }] }, "class-or-interface-heritage": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "storage.modifier.tsx" } }, end: "(?=\\{)", patterns: [{ include: "#comment" }, { include: "#class-or-interface-heritage" }, { include: "#type-parameters" }, { include: "#expressionWithoutIdentifiers" }, { captures: { 1: { name: "entity.name.type.module.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)" }, { captures: { 1: { name: "entity.other.inherited-class.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)" }, { include: "#expressionPunctuations" }] }, comment: { patterns: [{ begin: "/\\*\\*(?!/)", beginCaptures: { 0: { name: "punctuation.definition.comment.tsx" } }, end: "\\*/", endCaptures: { 0: { name: "punctuation.definition.comment.tsx" } }, name: "comment.block.documentation.tsx", patterns: [{ include: "#docblock" }] }, { begin: "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", beginCaptures: { 1: { name: "punctuation.definition.comment.tsx" }, 2: { name: "storage.type.internaldeclaration.tsx" }, 3: { name: "punctuation.decorator.internaldeclaration.tsx" } }, end: "\\*/", endCaptures: { 0: { name: "punctuation.definition.comment.tsx" } }, name: "comment.block.tsx" }, { begin: "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.tsx" }, 2: { name: "comment.line.double-slash.tsx" }, 3: { name: "punctuation.definition.comment.tsx" }, 4: { name: "storage.type.internaldeclaration.tsx" }, 5: { name: "punctuation.decorator.internaldeclaration.tsx" } }, contentName: "comment.line.double-slash.tsx", end: "(?=$)" }] }, "control-statement": { patterns: [{ include: "#switch-statement" }, { include: "#for-loop" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.trycatch.tsx" }, { captures: { 1: { name: "keyword.control.loop.tsx" }, 2: { name: "entity.name.label.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.loop.tsx" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 0: { name: "keyword.control.flow.tsx" } }, end: "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#expression" }] }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.switch.tsx" }, { include: "#if-statement" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.conditional.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.with.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.other.debugger.tsx" }] }, "decl-block": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "meta.block.tsx", patterns: [{ include: "#statements" }] }, declaration: { patterns: [{ include: "#decorator" }, { include: "#var-expr" }, { include: "#function-declaration" }, { include: "#class-declaration" }, { include: "#interface-declaration" }, { include: "#enum-declaration" }, { include: "#namespace-declaration" }, { include: "#type-alias-declaration" }, { include: "#import-equals-declaration" }, { include: "#import-declaration" }, { include: "#export-declaration" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.tsx" }] }, decorator: { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", beginCaptures: { 0: { name: "punctuation.decorator.tsx" } }, end: "(?=\\s)", name: "meta.decorator.tsx", patterns: [{ include: "#expression" }] }, "destructuring-const": { patterns: [{ begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.object-binding-pattern-variable.tsx", patterns: [{ include: "#object-binding-pattern-const" }, { include: "#type-annotation" }, { include: "#comment" }] }, { begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.array-binding-pattern-variable.tsx", patterns: [{ include: "#array-binding-pattern-const" }, { include: "#type-annotation" }, { include: "#comment" }] }] }, "destructuring-parameter": { patterns: [{ begin: "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.object.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.tsx" } }, name: "meta.parameter.object-binding-pattern.tsx", patterns: [{ include: "#parameter-object-binding-element" }] }, { begin: "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.array.tsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.tsx" } }, name: "meta.paramter.array-binding-pattern.tsx", patterns: [{ include: "#parameter-binding-element" }, { include: "#punctuation-comma" }] }] }, "destructuring-parameter-rest": { captures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "variable.parameter.tsx" } }, match: "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)" }, "destructuring-variable": { patterns: [{ begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.object-binding-pattern-variable.tsx", patterns: [{ include: "#object-binding-pattern" }, { include: "#type-annotation" }, { include: "#comment" }] }, { begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.array-binding-pattern-variable.tsx", patterns: [{ include: "#array-binding-pattern" }, { include: "#type-annotation" }, { include: "#comment" }] }] }, "destructuring-variable-rest": { captures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "meta.definition.variable.tsx variable.other.readwrite.tsx" } }, match: "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)" }, "destructuring-variable-rest-const": { captures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "meta.definition.variable.tsx variable.other.constant.tsx" } }, match: "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)" }, directives: { begin: "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", beginCaptures: { 1: { name: "punctuation.definition.comment.tsx" } }, end: "(?=$)", name: "comment.line.triple-slash.directive.tsx", patterns: [{ begin: "(<)(reference|amd-dependency|amd-module)", beginCaptures: { 1: { name: "punctuation.definition.tag.directive.tsx" }, 2: { name: "entity.name.tag.directive.tsx" } }, end: "/>", endCaptures: { 0: { name: "punctuation.definition.tag.directive.tsx" } }, name: "meta.tag.tsx", patterns: [{ match: "path|types|no-default-lib|lib|name|resolution-mode", name: "entity.other.attribute-name.directive.tsx" }, { match: "=", name: "keyword.operator.assignment.tsx" }, { include: "#string" }] }] }, docblock: { patterns: [{ captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "constant.language.access-type.jsdoc" } }, match: `(?x)
1260
+ ((@)(?:access|api))
1261
+ \\s+
1262
+ (private|protected|public)
1263
+ \\b` }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "entity.name.type.instance.jsdoc" }, 4: { name: "punctuation.definition.bracket.angle.begin.jsdoc" }, 5: { name: "constant.other.email.link.underline.jsdoc" }, 6: { name: "punctuation.definition.bracket.angle.end.jsdoc" } }, match: `(?x)
1264
+ ((@)author)
1265
+ \\s+
1266
+ (
1267
+ [^@\\s<>*/]
1268
+ (?:[^@<>*/]|\\*[^/])*
1269
+ )
1270
+ (?:
1271
+ \\s*
1272
+ (<)
1273
+ ([^>\\s]+)
1274
+ (>)
1275
+ )?` }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "entity.name.type.instance.jsdoc" }, 4: { name: "keyword.operator.control.jsdoc" }, 5: { name: "entity.name.type.instance.jsdoc" } }, match: `(?x)
1276
+ ((@)borrows) \\s+
1277
+ ((?:[^@\\s*/]|\\*[^/])+)
1278
+ \\s+ (as) \\s+
1279
+ ((?:[^@\\s*/]|\\*[^/])+)` }, { begin: "((@)example)\\s+", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=@|\\*/)", name: "meta.example.jsdoc", patterns: [{ match: "^\\s\\*\\s+" }, { begin: "\\G(<)caption(>)", beginCaptures: { 0: { name: "entity.name.tag.inline.jsdoc" }, 1: { name: "punctuation.definition.bracket.angle.begin.jsdoc" }, 2: { name: "punctuation.definition.bracket.angle.end.jsdoc" } }, contentName: "constant.other.description.jsdoc", end: "(</)caption(>)|(?=\\*/)", endCaptures: { 0: { name: "entity.name.tag.inline.jsdoc" }, 1: { name: "punctuation.definition.bracket.angle.begin.jsdoc" }, 2: { name: "punctuation.definition.bracket.angle.end.jsdoc" } } }, { captures: { 0: { name: "source.embedded.tsx" } }, match: "[^\\s@*](?:[^*]|\\*[^/])*" }] }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "constant.language.symbol-type.jsdoc" } }, match: "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b" }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.link.underline.jsdoc" }, 4: { name: "entity.name.type.instance.jsdoc" } }, match: `(?x)
1280
+ ((@)see)
1281
+ \\s+
1282
+ (?:
1283
+
1284
+ (
1285
+ (?=https?://)
1286
+ (?:[^\\s*]|\\*[^/])+
1287
+ )
1288
+ |
1289
+
1290
+ (
1291
+ (?!
1292
+
1293
+ https?://
1294
+ |
1295
+
1296
+ (?:\\[[^\\[\\]]*\\])?
1297
+ {@(?:link|linkcode|linkplain|tutorial)\\b
1298
+ )
1299
+
1300
+ (?:[^@\\s*/]|\\*[^/])+
1301
+ )
1302
+ )` }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: `(?x)
1303
+ ((@)template)
1304
+ \\s+
1305
+ # One or more valid identifiers
1306
+ (
1307
+ [A-Za-z_$]
1308
+ [\\w$.\\[\\]]*
1309
+ (?:
1310
+ \\s* , \\s*
1311
+ [A-Za-z_$]
1312
+ [\\w$.\\[\\]]*
1313
+ )*
1314
+ )` }, { begin: "(?x)((@)template)\\s+(?={)", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }, { match: "([A-Za-z_$][\\w$.\\[\\]]*)", name: "variable.other.jsdoc" }] }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: `(?x)
1315
+ (
1316
+ (@)
1317
+ (?:arg|argument|const|constant|member|namespace|param|var)
1318
+ )
1319
+ \\s+
1320
+ (
1321
+ [A-Za-z_$]
1322
+ [\\w$.\\[\\]]*
1323
+ )` }, { begin: "((@)typedef)\\s+(?={)", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }, { match: "(?:[^@\\s*/]|\\*[^/])+", name: "entity.name.type.instance.jsdoc" }] }, { begin: "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }, { match: "([A-Za-z_$][\\w$.\\[\\]]*)", name: "variable.other.jsdoc" }, { captures: { 1: { name: "punctuation.definition.optional-value.begin.bracket.square.jsdoc" }, 2: { name: "keyword.operator.assignment.jsdoc" }, 3: { name: "source.embedded.tsx" }, 4: { name: "punctuation.definition.optional-value.end.bracket.square.jsdoc" }, 5: { name: "invalid.illegal.syntax.jsdoc" } }, match: `(?x)
1324
+ (\\[)\\s*
1325
+ [\\w$]+
1326
+ (?:
1327
+ (?:\\[\\])?
1328
+ \\.
1329
+ [\\w$]+
1330
+ )*
1331
+ (?:
1332
+ \\s*
1333
+ (=)
1334
+ \\s*
1335
+ (
1336
+
1337
+ (?>
1338
+ "(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" |
1339
+ '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |
1340
+ \\[ (?:(?:\\*(?!/))|[^*])*? \\] |
1341
+ (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*
1342
+ )*
1343
+ )
1344
+ )?
1345
+ \\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`, name: "variable.other.jsdoc" }] }, { begin: `(?x)
1346
+ (
1347
+ (@)
1348
+ (?:define|enum|exception|export|extends|lends|implements|modifies
1349
+ |namespace|private|protected|returns?|satisfies|suppress|this|throws|type
1350
+ |yields?)
1351
+ )
1352
+ \\s+(?={)`, beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }] }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "entity.name.type.instance.jsdoc" } }, match: `(?x)
1353
+ (
1354
+ (@)
1355
+ (?:alias|augments|callback|constructs|emits|event|fires|exports?
1356
+ |extends|external|function|func|host|lends|listens|interface|memberof!?
1357
+ |method|module|mixes|mixin|name|requires|see|this|typedef|uses)
1358
+ )
1359
+ \\s+
1360
+ (
1361
+ (?:
1362
+ [^{}@\\s*] | \\*[^/]
1363
+ )+
1364
+ )` }, { begin: `((@)(?:default(?:value)?|license|version))\\s+(([''"]))`, beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" }, 4: { name: "punctuation.definition.string.begin.jsdoc" } }, contentName: "variable.other.jsdoc", end: "(\\3)|(?=$|\\*/)", endCaptures: { 0: { name: "variable.other.jsdoc" }, 1: { name: "punctuation.definition.string.end.jsdoc" } } }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)" }, { captures: { 1: { name: "punctuation.definition.block.tag.jsdoc" } }, match: "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", name: "storage.type.class.jsdoc" }, { include: "#inline-tags" }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, match: "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)" }] }, "enum-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.type.enum.tsx" }, 5: { name: "entity.name.type.enum.tsx" } }, end: "(?<=\\})", name: "meta.enum.declaration.tsx", patterns: [{ include: "#comment" }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, patterns: [{ include: "#comment" }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)", beginCaptures: { 0: { name: "variable.other.enummember.tsx" } }, end: "(?=,|\\}|$)", patterns: [{ include: "#comment" }, { include: "#variable-initializer" }] }, { begin: "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", end: "(?=,|\\}|$)", patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#comment" }, { include: "#variable-initializer" }] }, { include: "#punctuation-comma" }] }] }, "export-declaration": { patterns: [{ captures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "keyword.control.as.tsx" }, 3: { name: "storage.type.namespace.tsx" }, 4: { name: "entity.name.type.module.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "keyword.control.type.tsx" }, 3: { name: "keyword.operator.assignment.tsx" }, 4: { name: "keyword.control.default.tsx" } }, end: "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.export.default.tsx", patterns: [{ include: "#interface-declaration" }, { include: "#expression" }] }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "keyword.control.type.tsx" } }, end: "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.export.tsx", patterns: [{ include: "#import-export-declaration" }] }] }, expression: { patterns: [{ include: "#expressionWithoutIdentifiers" }, { include: "#identifiers" }, { include: "#expressionPunctuations" }] }, "expression-inside-possibly-arrow-parens": { patterns: [{ include: "#expressionWithoutIdentifiers" }, { include: "#comment" }, { include: "#string" }, { include: "#decorator" }, { include: "#destructuring-parameter" }, { captures: { 1: { name: "storage.modifier.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)" }, { captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "entity.name.function.tsx variable.language.this.tsx" }, 4: { name: "entity.name.function.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: `(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*
1365
+ # function assignment |
1366
+ (=\\s*(
1367
+ ((async\\s+)?(
1368
+ (function\\s*[(<*]) |
1369
+ (function\\s+) |
1370
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1371
+ )) |
1372
+ ((async\\s*)?(
1373
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1374
+
1375
+ (
1376
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1377
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1378
+ (
1379
+ ([)]\\s*:) |
1380
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1381
+ )
1382
+ ) |
1383
+ (
1384
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1385
+ ) |
1386
+ # arrow function possible to detect only with => on same line
1387
+ (
1388
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1389
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1390
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1391
+ \\s*=>
1392
+ )
1393
+ ))
1394
+ )) |
1395
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
1396
+ (:\\s*(
1397
+ (<) |
1398
+ ([(]\\s*(
1399
+ ([)]) |
1400
+ (\\.\\.\\.) |
1401
+ ([_$[:alnum:]]+\\s*(
1402
+ ([:,?=])|
1403
+ ([)]\\s*=>)
1404
+ ))
1405
+ ))
1406
+ )) |
1407
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
1408
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
1409
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
1410
+ ((async\\s+)?(
1411
+ (function\\s*[(<*]) |
1412
+ (function\\s+) |
1413
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1414
+ )) |
1415
+ ((async\\s*)?(
1416
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1417
+
1418
+ (
1419
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1420
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1421
+ (
1422
+ ([)]\\s*:) |
1423
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1424
+ )
1425
+ ) |
1426
+ (
1427
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1428
+ ) |
1429
+ # arrow function possible to detect only with => on same line
1430
+ (
1431
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1432
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1433
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1434
+ \\s*=>
1435
+ )
1436
+ ))
1437
+ )))` }, { captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "variable.parameter.tsx variable.language.this.tsx" }, 4: { name: "variable.parameter.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)" }, { include: "#type-annotation" }, { include: "#variable-initializer" }, { match: ",", name: "punctuation.separator.parameter.tsx" }, { include: "#identifiers" }, { include: "#expressionPunctuations" }] }, "expression-operators": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.flow.tsx" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", beginCaptures: { 1: { name: "keyword.control.flow.tsx" } }, end: "\\*", endCaptures: { 0: { name: "keyword.generator.asterisk.tsx" } }, patterns: [{ include: "#comment" }] }, { captures: { 1: { name: "keyword.control.flow.tsx" }, 2: { name: "keyword.generator.asterisk.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.delete.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()", name: "keyword.operator.expression.in.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()", name: "keyword.operator.expression.of.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.instanceof.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.new.tsx" }, { include: "#typeof-operator" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.void.tsx" }, { captures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "storage.modifier.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", beginCaptures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "keyword.control.satisfies.tsx" } }, end: "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", patterns: [{ include: "#type" }] }, { match: "\\.\\.\\.", name: "keyword.operator.spread.tsx" }, { match: "\\*=|(?<!\\()/=|%=|\\+=|\\-=", name: "keyword.operator.assignment.compound.tsx" }, { match: "\\&=|\\^=|<<=|>>=|>>>=|\\|=", name: "keyword.operator.assignment.compound.bitwise.tsx" }, { match: "<<|>>>|>>", name: "keyword.operator.bitwise.shift.tsx" }, { match: "===|!==|==|!=", name: "keyword.operator.comparison.tsx" }, { match: "<=|>=|<>|<|>", name: "keyword.operator.relational.tsx" }, { captures: { 1: { name: "keyword.operator.logical.tsx" }, 2: { name: "keyword.operator.assignment.compound.tsx" }, 3: { name: "keyword.operator.arithmetic.tsx" } }, match: "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))" }, { match: "\\!|&&|\\|\\||\\?\\?", name: "keyword.operator.logical.tsx" }, { match: "\\&|~|\\^|\\|", name: "keyword.operator.bitwise.tsx" }, { match: "\\=", name: "keyword.operator.assignment.tsx" }, { match: "--", name: "keyword.operator.decrement.tsx" }, { match: "\\+\\+", name: "keyword.operator.increment.tsx" }, { match: "%|\\*|/|-|\\+", name: "keyword.operator.arithmetic.tsx" }, { begin: "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", end: "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", endCaptures: { 1: { name: "keyword.operator.assignment.compound.tsx" }, 2: { name: "keyword.operator.arithmetic.tsx" } }, patterns: [{ include: "#comment" }] }, { captures: { 1: { name: "keyword.operator.assignment.compound.tsx" }, 2: { name: "keyword.operator.arithmetic.tsx" } }, match: "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))" }] }, expressionPunctuations: { patterns: [{ include: "#punctuation-comma" }, { include: "#punctuation-accessor" }] }, expressionWithoutIdentifiers: { patterns: [{ include: "#jsx" }, { include: "#string" }, { include: "#regex" }, { include: "#comment" }, { include: "#function-expression" }, { include: "#class-expression" }, { include: "#arrow-function" }, { include: "#paren-expression-possibly-arrow" }, { include: "#cast" }, { include: "#ternary-expression" }, { include: "#new-expr" }, { include: "#instanceof-expr" }, { include: "#object-literal" }, { include: "#expression-operators" }, { include: "#function-call" }, { include: "#literal" }, { include: "#support-objects" }, { include: "#paren-expression" }] }, "field-declaration": { begin: `(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1438
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1439
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1440
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1441
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1442
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1443
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1444
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1445
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1446
+ )(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))`, beginCaptures: { 1: { name: "storage.modifier.tsx" } }, end: `(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1447
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1448
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1449
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1450
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1451
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1452
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1453
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1454
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1455
+ )(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})`, name: "meta.field.declaration.tsx", patterns: [{ include: "#variable-initializer" }, { include: "#type-annotation" }, { include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { include: "#comment" }, { captures: { 1: { name: "meta.definition.property.tsx entity.name.function.tsx" }, 2: { name: "keyword.operator.optional.tsx" }, 3: { name: "keyword.operator.definiteassignment.tsx" } }, match: `(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*
1456
+ # function assignment |
1457
+ (=\\s*(
1458
+ ((async\\s+)?(
1459
+ (function\\s*[(<*]) |
1460
+ (function\\s+) |
1461
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1462
+ )) |
1463
+ ((async\\s*)?(
1464
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1465
+
1466
+ (
1467
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1468
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1469
+ (
1470
+ ([)]\\s*:) |
1471
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1472
+ )
1473
+ ) |
1474
+ (
1475
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1476
+ ) |
1477
+ # arrow function possible to detect only with => on same line
1478
+ (
1479
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1480
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1481
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1482
+ \\s*=>
1483
+ )
1484
+ ))
1485
+ )) |
1486
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
1487
+ (:\\s*(
1488
+ (<) |
1489
+ ([(]\\s*(
1490
+ ([)]) |
1491
+ (\\.\\.\\.) |
1492
+ ([_$[:alnum:]]+\\s*(
1493
+ ([:,?=])|
1494
+ ([)]\\s*=>)
1495
+ ))
1496
+ ))
1497
+ )) |
1498
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
1499
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
1500
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
1501
+ ((async\\s+)?(
1502
+ (function\\s*[(<*]) |
1503
+ (function\\s+) |
1504
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1505
+ )) |
1506
+ ((async\\s*)?(
1507
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1508
+
1509
+ (
1510
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1511
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1512
+ (
1513
+ ([)]\\s*:) |
1514
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1515
+ )
1516
+ ) |
1517
+ (
1518
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1519
+ ) |
1520
+ # arrow function possible to detect only with => on same line
1521
+ (
1522
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1523
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1524
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1525
+ \\s*=>
1526
+ )
1527
+ ))
1528
+ )))` }, { match: "\\#?[_$[:alpha:]][_$[:alnum:]]*", name: "meta.definition.property.tsx variable.object.property.tsx" }, { match: "\\?", name: "keyword.operator.optional.tsx" }, { match: "\\!", name: "keyword.operator.definiteassignment.tsx" }] }, "for-loop": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", beginCaptures: { 0: { name: "keyword.control.loop.tsx" } }, end: "(?<=\\))", patterns: [{ include: "#comment" }, { match: "await", name: "keyword.control.loop.tsx" }, { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#var-expr" }, { include: "#expression" }, { include: "#punctuation-semicolon" }] }] }, "function-body": { patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { include: "#function-parameters" }, { include: "#return-type" }, { include: "#type-function-return-type" }, { include: "#decl-block" }, { match: "\\*", name: "keyword.generator.asterisk.tsx" }] }, "function-call": { patterns: [{ begin: "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", end: "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", end: "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", name: "meta.function-call.tsx", patterns: [{ include: "#function-call-target" }] }, { include: "#comment" }, { include: "#function-call-optionals" }, { include: "#type-arguments" }, { include: "#paren-expression" }] }, { begin: "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", end: "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", end: "(?=(<\\s*[\\{\\[\\(]\\s*$))", name: "meta.function-call.tsx", patterns: [{ include: "#function-call-target" }] }, { include: "#comment" }, { include: "#function-call-optionals" }, { include: "#type-arguments" }] }] }, "function-call-optionals": { patterns: [{ match: "\\?\\.", name: "meta.function-call.tsx punctuation.accessor.optional.tsx" }, { match: "\\!", name: "meta.function-call.tsx keyword.operator.definiteassignment.tsx" }] }, "function-call-target": { patterns: [{ include: "#support-function-call-identifiers" }, { match: "(\\#?[_$[:alpha:]][_$[:alnum:]]*)", name: "entity.name.function.tsx" }] }, "function-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.async.tsx" }, 4: { name: "storage.type.function.tsx" }, 5: { name: "keyword.generator.asterisk.tsx" }, 6: { name: "meta.definition.function.tsx entity.name.function.tsx" } }, end: "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", name: "meta.function.tsx", patterns: [{ include: "#function-name" }, { include: "#function-body" }] }, "function-expression": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", beginCaptures: { 1: { name: "storage.modifier.async.tsx" }, 2: { name: "storage.type.function.tsx" }, 3: { name: "keyword.generator.asterisk.tsx" }, 4: { name: "meta.definition.function.tsx entity.name.function.tsx" } }, end: "(?=;)|(?<=\\})", name: "meta.function.expression.tsx", patterns: [{ include: "#function-name" }, { include: "#single-line-comment-consuming-line-ending" }, { include: "#function-body" }] }, "function-name": { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "meta.definition.function.tsx entity.name.function.tsx" }, "function-parameters": { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.parameters.begin.tsx" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.parameters.end.tsx" } }, name: "meta.parameters.tsx", patterns: [{ include: "#function-parameters-body" }] }, "function-parameters-body": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#decorator" }, { include: "#destructuring-parameter" }, { include: "#parameter-name" }, { include: "#parameter-type-annotation" }, { include: "#variable-initializer" }, { match: ",", name: "punctuation.separator.parameter.tsx" }] }, identifiers: { patterns: [{ include: "#object-identifiers" }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "entity.name.function.tsx" } }, match: `(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(
1529
+ ((async\\s+)?(
1530
+ (function\\s*[(<*]) |
1531
+ (function\\s+) |
1532
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1533
+ )) |
1534
+ ((async\\s*)?(
1535
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1536
+
1537
+ (
1538
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1539
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1540
+ (
1541
+ ([)]\\s*:) |
1542
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1543
+ )
1544
+ ) |
1545
+ (
1546
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1547
+ ) |
1548
+ # arrow function possible to detect only with => on same line
1549
+ (
1550
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1551
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1552
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1553
+ \\s*=>
1554
+ )
1555
+ ))
1556
+ ))` }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "variable.other.constant.property.tsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "variable.other.property.tsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)" }, { match: "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", name: "variable.other.constant.tsx" }, { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "variable.other.readwrite.tsx" }] }, "if-statement": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", end: "(?=;|$|\\})", patterns: [{ include: "#comment" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", beginCaptures: { 1: { name: "keyword.control.conditional.tsx" }, 2: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression" }] }, { begin: "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: "(/)([dgimsuy]*)", endCaptures: { 1: { name: "punctuation.definition.string.end.tsx" }, 2: { name: "keyword.other.tsx" } }, name: "string.regexp.tsx", patterns: [{ include: "#regexp" }] }, { include: "#statements" }] }] }, "import-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "keyword.control.import.tsx" }, 4: { name: "keyword.control.type.tsx" } }, end: "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", name: "meta.import.tsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#string" }, { begin: `(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*["'])`, end: "\\bfrom\\b", endCaptures: { 0: { name: "keyword.control.from.tsx" } }, patterns: [{ include: "#import-export-declaration" }] }, { include: "#import-export-declaration" }] }, "import-equals-declaration": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "keyword.control.import.tsx" }, 4: { name: "keyword.control.type.tsx" }, 5: { name: "variable.other.readwrite.alias.tsx" }, 6: { name: "keyword.operator.assignment.tsx" }, 7: { name: "keyword.control.require.tsx" }, 8: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, name: "meta.import-equals.external.tsx", patterns: [{ include: "#comment" }, { include: "#string" }] }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "keyword.control.import.tsx" }, 4: { name: "keyword.control.type.tsx" }, 5: { name: "variable.other.readwrite.alias.tsx" }, 6: { name: "keyword.operator.assignment.tsx" } }, end: "(?=;|$|^)", name: "meta.import-equals.internal.tsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { captures: { 1: { name: "entity.name.type.module.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "variable.other.readwrite.tsx" }] }] }, "import-export-assert-clause": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(with)|(assert))\\s*(\\{)", beginCaptures: { 1: { name: "keyword.control.with.tsx" }, 2: { name: "keyword.control.assert.tsx" }, 3: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, patterns: [{ include: "#comment" }, { include: "#string" }, { match: "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", name: "meta.object-literal.key.tsx" }, { match: ":", name: "punctuation.separator.key-value.tsx" }] }, "import-export-block": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "meta.block.tsx", patterns: [{ include: "#import-export-clause" }] }, "import-export-clause": { patterns: [{ include: "#comment" }, { captures: { 1: { name: "keyword.control.type.tsx" }, 2: { name: "keyword.control.default.tsx" }, 3: { name: "constant.language.import-export-all.tsx" }, 4: { name: "variable.other.readwrite.tsx" }, 5: { name: "keyword.control.as.tsx" }, 6: { name: "keyword.control.default.tsx" }, 7: { name: "variable.other.readwrite.alias.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))" }, { include: "#punctuation-comma" }, { match: "\\*", name: "constant.language.import-export-all.tsx" }, { match: "\\b(default)\\b", name: "keyword.control.default.tsx" }, { captures: { 1: { name: "keyword.control.type.tsx" }, 2: { name: "variable.other.readwrite.alias.tsx" } }, match: "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)" }] }, "import-export-declaration": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#import-export-block" }, { match: "\\bfrom\\b", name: "keyword.control.from.tsx" }, { include: "#import-export-assert-clause" }, { include: "#import-export-clause" }] }, "indexer-declaration": { begin: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "meta.brace.square.tsx" }, 3: { name: "variable.parameter.tsx" } }, end: "(\\])\\s*(\\?\\s*)?|$", endCaptures: { 1: { name: "meta.brace.square.tsx" }, 2: { name: "keyword.operator.optional.tsx" } }, name: "meta.indexer.declaration.tsx", patterns: [{ include: "#type-annotation" }] }, "indexer-mapped-type-declaration": { begin: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", beginCaptures: { 1: { name: "keyword.operator.type.modifier.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "meta.brace.square.tsx" }, 4: { name: "entity.name.type.tsx" }, 5: { name: "keyword.operator.expression.in.tsx" } }, end: "(\\])([+-])?\\s*(\\?\\s*)?|$", endCaptures: { 1: { name: "meta.brace.square.tsx" }, 2: { name: "keyword.operator.type.modifier.tsx" }, 3: { name: "keyword.operator.optional.tsx" } }, name: "meta.indexer.mappedtype.declaration.tsx", patterns: [{ captures: { 1: { name: "keyword.control.as.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+" }, { include: "#type" }] }, "inline-tags": { patterns: [{ captures: { 1: { name: "punctuation.definition.bracket.square.begin.jsdoc" }, 2: { name: "punctuation.definition.bracket.square.end.jsdoc" } }, match: "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", name: "constant.other.description.jsdoc" }, { begin: "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", beginCaptures: { 1: { name: "punctuation.definition.bracket.curly.begin.jsdoc" }, 2: { name: "storage.type.class.jsdoc" }, 3: { name: "punctuation.definition.inline.tag.jsdoc" } }, end: "}|(?=\\*/)", endCaptures: { 0: { name: "punctuation.definition.bracket.curly.end.jsdoc" } }, name: "entity.name.type.instance.jsdoc", patterns: [{ captures: { 1: { name: "variable.other.link.underline.jsdoc" }, 2: { name: "punctuation.separator.pipe.jsdoc" } }, match: "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?" }, { captures: { 1: { name: "variable.other.description.jsdoc" }, 2: { name: "punctuation.separator.pipe.jsdoc" } }, match: "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?" }] }] }, "instanceof-expr": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.expression.instanceof.tsx" } }, end: "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", patterns: [{ include: "#type" }] }, "interface-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.type.interface.tsx" } }, end: "(?<=\\})", name: "meta.interface.tsx", patterns: [{ include: "#comment" }, { include: "#class-or-interface-heritage" }, { captures: { 0: { name: "entity.name.type.interface.tsx" } }, match: "[_$[:alpha:]][_$[:alnum:]]*" }, { include: "#type-parameters" }, { include: "#class-or-interface-body" }] }, jsdoctype: { patterns: [{ begin: "\\G({)", beginCaptures: { 0: { name: "entity.name.type.instance.jsdoc" }, 1: { name: "punctuation.definition.bracket.curly.begin.jsdoc" } }, contentName: "entity.name.type.instance.jsdoc", end: "((}))\\s*|(?=\\*/)", endCaptures: { 1: { name: "entity.name.type.instance.jsdoc" }, 2: { name: "punctuation.definition.bracket.curly.end.jsdoc" } }, patterns: [{ include: "#brackets" }] }] }, jsx: { patterns: [{ include: "#jsx-tag-without-attributes-in-expression" }, { include: "#jsx-tag-in-expression" }] }, "jsx-children": { patterns: [{ include: "#jsx-tag-without-attributes" }, { include: "#jsx-tag" }, { include: "#jsx-evaluated-code" }, { include: "#jsx-entities" }] }, "jsx-entities": { patterns: [{ captures: { 1: { name: "punctuation.definition.entity.tsx" }, 3: { name: "punctuation.definition.entity.tsx" } }, match: "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", name: "constant.character.entity.tsx" }] }, "jsx-evaluated-code": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.section.embedded.begin.tsx" } }, contentName: "meta.embedded.expression.tsx", end: "\\}", endCaptures: { 0: { name: "punctuation.section.embedded.end.tsx" } }, patterns: [{ include: "#expression" }] }, "jsx-string-double-quoted": { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.tsx" } }, name: "string.quoted.double.tsx", patterns: [{ include: "#jsx-entities" }] }, "jsx-string-single-quoted": { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.tsx" } }, name: "string.quoted.single.tsx", patterns: [{ include: "#jsx-entities" }] }, "jsx-tag": { begin: "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", end: "(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", endCaptures: { 1: { name: "punctuation.definition.tag.end.tsx" }, 2: { name: "punctuation.definition.tag.begin.tsx" }, 3: { name: "entity.name.tag.namespace.tsx" }, 4: { name: "punctuation.separator.namespace.tsx" }, 5: { name: "entity.name.tag.tsx" }, 6: { name: "support.class.component.tsx" }, 7: { name: "punctuation.definition.tag.end.tsx" } }, name: "meta.tag.tsx", patterns: [{ begin: "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.tsx" }, 2: { name: "entity.name.tag.namespace.tsx" }, 3: { name: "punctuation.separator.namespace.tsx" }, 4: { name: "entity.name.tag.tsx" }, 5: { name: "support.class.component.tsx" } }, end: "(?=[/]?>)", patterns: [{ include: "#comment" }, { include: "#type-arguments" }, { include: "#jsx-tag-attributes" }] }, { begin: "(>)", beginCaptures: { 1: { name: "punctuation.definition.tag.end.tsx" } }, contentName: "meta.jsx.children.tsx", end: "(?=</)", patterns: [{ include: "#jsx-children" }] }] }, "jsx-tag-attribute-assignment": { match: `=(?=\\s*(?:'|"|{|/\\*|//|\\n))`, name: "keyword.operator.assignment.tsx" }, "jsx-tag-attribute-name": { captures: { 1: { name: "entity.other.attribute-name.namespace.tsx" }, 2: { name: "punctuation.separator.namespace.tsx" }, 3: { name: "entity.other.attribute-name.tsx" } }, match: `(?x)
1557
+ \\s*
1558
+ (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?
1559
+ ([_$[:alpha:]][-_$[:alnum:]]*)
1560
+ (?=\\s|=|/?>|/\\*|//)` }, "jsx-tag-attributes": { begin: "\\s+", end: "(?=[/]?>)", name: "meta.tag.attributes.tsx", patterns: [{ include: "#comment" }, { include: "#jsx-tag-attribute-name" }, { include: "#jsx-tag-attribute-assignment" }, { include: "#jsx-string-double-quoted" }, { include: "#jsx-string-single-quoted" }, { include: "#jsx-evaluated-code" }, { include: "#jsx-tag-attributes-illegal" }] }, "jsx-tag-attributes-illegal": { match: "\\S+", name: "invalid.illegal.attribute.tsx" }, "jsx-tag-in-expression": { begin: `(?x)
1561
+ (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*
1562
+ (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,))
1563
+ (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))`, end: "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", patterns: [{ include: "#jsx-tag" }] }, "jsx-tag-without-attributes": { begin: "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.tsx" }, 2: { name: "entity.name.tag.namespace.tsx" }, 3: { name: "punctuation.separator.namespace.tsx" }, 4: { name: "entity.name.tag.tsx" }, 5: { name: "support.class.component.tsx" }, 6: { name: "punctuation.definition.tag.end.tsx" } }, contentName: "meta.jsx.children.tsx", end: "(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.tsx" }, 2: { name: "entity.name.tag.namespace.tsx" }, 3: { name: "punctuation.separator.namespace.tsx" }, 4: { name: "entity.name.tag.tsx" }, 5: { name: "support.class.component.tsx" }, 6: { name: "punctuation.definition.tag.end.tsx" } }, name: "meta.tag.without-attributes.tsx", patterns: [{ include: "#jsx-children" }] }, "jsx-tag-without-attributes-in-expression": { begin: "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", end: "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", patterns: [{ include: "#jsx-tag-without-attributes" }] }, label: { patterns: [{ begin: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", beginCaptures: { 1: { name: "entity.name.label.tsx" }, 2: { name: "punctuation.separator.label.tsx" } }, end: "(?<=\\})", patterns: [{ include: "#decl-block" }] }, { captures: { 1: { name: "entity.name.label.tsx" }, 2: { name: "punctuation.separator.label.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)" }] }, literal: { patterns: [{ include: "#numeric-literal" }, { include: "#boolean-literal" }, { include: "#null-literal" }, { include: "#undefined-literal" }, { include: "#numericConstant-literal" }, { include: "#array-literal" }, { include: "#this-literal" }, { include: "#super-literal" }] }, "method-declaration": { patterns: [{ begin: "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.modifier.async.tsx" }, 5: { name: "storage.type.tsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", name: "meta.method.declaration.tsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }] }, { begin: "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.modifier.async.tsx" }, 5: { name: "keyword.operator.new.tsx" }, 6: { name: "keyword.generator.asterisk.tsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", name: "meta.method.declaration.tsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }] }, { begin: `(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1564
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1565
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1566
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1567
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1568
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1569
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1570
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1571
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1572
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`, beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.modifier.async.tsx" }, 5: { name: "storage.type.property.tsx" }, 6: { name: "keyword.generator.asterisk.tsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", name: "meta.method.declaration.tsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }] }] }, "method-declaration-name": { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1573
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1574
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1575
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1576
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1577
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1578
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1579
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1580
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1581
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])`, end: "(?=\\(|\\<)", patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "meta.definition.method.tsx entity.name.function.tsx" }, { match: "\\?", name: "keyword.operator.optional.tsx" }] }, "namespace-declaration": { begin: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.namespace.tsx" } }, end: "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.namespace.declaration.tsx", patterns: [{ include: "#comment" }, { include: "#string" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "entity.name.type.module.tsx" }, { include: "#punctuation-accessor" }, { include: "#decl-block" }] }, "new-expr": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.new.tsx" } }, end: "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", name: "new.expr.tsx", patterns: [{ include: "#expression" }] }, "null-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.null.tsx" }, "numeric-literal": { patterns: [{ captures: { 1: { name: "storage.type.numeric.bigint.tsx" } }, match: "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", name: "constant.numeric.hex.tsx" }, { captures: { 1: { name: "storage.type.numeric.bigint.tsx" } }, match: "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", name: "constant.numeric.binary.tsx" }, { captures: { 1: { name: "storage.type.numeric.bigint.tsx" } }, match: "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", name: "constant.numeric.octal.tsx" }, { captures: { 0: { name: "constant.numeric.decimal.tsx" }, 1: { name: "meta.delimiter.decimal.period.tsx" }, 2: { name: "storage.type.numeric.bigint.tsx" }, 3: { name: "meta.delimiter.decimal.period.tsx" }, 4: { name: "storage.type.numeric.bigint.tsx" }, 5: { name: "meta.delimiter.decimal.period.tsx" }, 6: { name: "storage.type.numeric.bigint.tsx" }, 7: { name: "storage.type.numeric.bigint.tsx" }, 8: { name: "meta.delimiter.decimal.period.tsx" }, 9: { name: "storage.type.numeric.bigint.tsx" }, 10: { name: "meta.delimiter.decimal.period.tsx" }, 11: { name: "storage.type.numeric.bigint.tsx" }, 12: { name: "meta.delimiter.decimal.period.tsx" }, 13: { name: "storage.type.numeric.bigint.tsx" }, 14: { name: "storage.type.numeric.bigint.tsx" } }, match: `(?x)
1582
+ (?<!\\$)(?:
1583
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1584
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1585
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1586
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1587
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1588
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1589
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1590
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1591
+ )(?!\\$)` }] }, "numericConstant-literal": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.nan.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.infinity.tsx" }] }, "object-binding-element": { patterns: [{ include: "#comment" }, { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1592
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1593
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1594
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1595
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1596
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1597
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1598
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1599
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1600
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(?=,|\\})", patterns: [{ include: "#object-binding-element-propertyName" }, { include: "#binding-element" }] }, { include: "#object-binding-pattern" }, { include: "#destructuring-variable-rest" }, { include: "#variable-initializer" }, { include: "#punctuation-comma" }] }, "object-binding-element-const": { patterns: [{ include: "#comment" }, { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1601
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1602
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1603
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1604
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1605
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1606
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1607
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1608
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1609
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(?=,|\\})", patterns: [{ include: "#object-binding-element-propertyName" }, { include: "#binding-element-const" }] }, { include: "#object-binding-pattern-const" }, { include: "#destructuring-variable-rest-const" }, { include: "#variable-initializer" }, { include: "#punctuation-comma" }] }, "object-binding-element-propertyName": { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1610
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1611
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1612
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1613
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1614
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1615
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1616
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1617
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1618
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(:)", endCaptures: { 0: { name: "punctuation.destructuring.tsx" } }, patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "variable.object.property.tsx" }] }, "object-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.object.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.tsx" } }, patterns: [{ include: "#object-binding-element" }] }, "object-binding-pattern-const": { begin: "(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.object.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.tsx" } }, patterns: [{ include: "#object-binding-element-const" }] }, "object-identifiers": { patterns: [{ match: "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))", name: "support.class.tsx" }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "variable.other.constant.object.property.tsx" }, 4: { name: "variable.other.object.property.tsx" } }, match: `(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:
1619
+ (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |
1620
+ (\\#?[_$[:alpha:]][_$[:alnum:]]*)
1621
+ )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)` }, { captures: { 1: { name: "variable.other.constant.object.tsx" }, 2: { name: "variable.other.object.tsx" } }, match: `(?x)(?:
1622
+ ([[:upper:]][_$[:digit:][:upper:]]*) |
1623
+ ([_$[:alpha:]][_$[:alnum:]]*)
1624
+ )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)` }] }, "object-literal": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "meta.objectliteral.tsx", patterns: [{ include: "#object-member" }] }, "object-literal-method-declaration": { begin: `(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1625
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1626
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1627
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1628
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1629
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1630
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1631
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1632
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1633
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`, beginCaptures: { 1: { name: "storage.modifier.async.tsx" }, 2: { name: "storage.type.property.tsx" }, 3: { name: "keyword.generator.asterisk.tsx" } }, end: "(?=\\}|;|,)|(?<=\\})", name: "meta.method.declaration.tsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }, { begin: `(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1634
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1635
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1636
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1637
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1638
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1639
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1640
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1641
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1642
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`, beginCaptures: { 1: { name: "storage.modifier.async.tsx" }, 2: { name: "storage.type.property.tsx" }, 3: { name: "keyword.generator.asterisk.tsx" } }, end: "(?=\\(|\\<)", patterns: [{ include: "#method-declaration-name" }] }] }, "object-member": { patterns: [{ include: "#comment" }, { include: "#object-literal-method-declaration" }, { begin: "(?=\\[)", end: "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", name: "meta.object.member.tsx meta.object-literal.key.tsx", patterns: [{ include: "#comment" }, { include: "#array-literal" }] }, { begin: "(?=[\\'\\\"\\`])", end: "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", name: "meta.object.member.tsx meta.object-literal.key.tsx", patterns: [{ include: "#comment" }, { include: "#string" }] }, { begin: `(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1643
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1644
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1645
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1646
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1647
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1648
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1649
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1650
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1651
+ )(?!\\$)))`, end: "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", name: "meta.object.member.tsx meta.object-literal.key.tsx", patterns: [{ include: "#comment" }, { include: "#numeric-literal" }] }, { begin: "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", end: "(?=\\}|;|,)|(?<=\\})", name: "meta.method.declaration.tsx", patterns: [{ include: "#function-body" }] }, { captures: { 0: { name: "meta.object-literal.key.tsx" }, 1: { name: "constant.numeric.decimal.tsx" } }, match: "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", name: "meta.object.member.tsx" }, { captures: { 0: { name: "meta.object-literal.key.tsx" }, 1: { name: "entity.name.function.tsx" } }, match: `(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(
1652
+ ((async\\s+)?(
1653
+ (function\\s*[(<*]) |
1654
+ (function\\s+) |
1655
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1656
+ )) |
1657
+ ((async\\s*)?(
1658
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1659
+
1660
+ (
1661
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1662
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1663
+ (
1664
+ ([)]\\s*:) |
1665
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1666
+ )
1667
+ ) |
1668
+ (
1669
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1670
+ ) |
1671
+ # arrow function possible to detect only with => on same line
1672
+ (
1673
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1674
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1675
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1676
+ \\s*=>
1677
+ )
1678
+ ))
1679
+ )))`, name: "meta.object.member.tsx" }, { captures: { 0: { name: "meta.object-literal.key.tsx" } }, match: "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", name: "meta.object.member.tsx" }, { begin: "\\.\\.\\.", beginCaptures: { 0: { name: "keyword.operator.spread.tsx" } }, end: "(?=,|\\})", name: "meta.object.member.tsx", patterns: [{ include: "#expression" }] }, { captures: { 1: { name: "variable.other.readwrite.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", name: "meta.object.member.tsx" }, { captures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "storage.modifier.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", name: "meta.object.member.tsx" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", beginCaptures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "keyword.control.satisfies.tsx" } }, end: "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", name: "meta.object.member.tsx", patterns: [{ include: "#type" }] }, { begin: "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", end: "(?=,|\\}|$|\\/\\/|\\/\\*)", name: "meta.object.member.tsx", patterns: [{ include: "#expression" }] }, { begin: ":", beginCaptures: { 0: { name: "meta.object-literal.key.tsx punctuation.separator.key-value.tsx" } }, end: "(?=,|\\})", name: "meta.object.member.tsx", patterns: [{ begin: "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?<=\\))", patterns: [{ include: "#type-parameters" }, { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }] }, { begin: "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "storage.modifier.async.tsx" }, 2: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }, { begin: "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?<=\\>)", patterns: [{ include: "#type-parameters" }] }, { begin: "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }, { include: "#possibly-arrow-return-type" }, { include: "#expression" }] }, { include: "#punctuation-comma" }, { include: "#decl-block" }] }, "parameter-array-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.array.tsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.tsx" } }, patterns: [{ include: "#parameter-binding-element" }, { include: "#punctuation-comma" }] }, "parameter-binding-element": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#numeric-literal" }, { include: "#regex" }, { include: "#parameter-object-binding-pattern" }, { include: "#parameter-array-binding-pattern" }, { include: "#destructuring-parameter-rest" }, { include: "#variable-initializer" }] }, "parameter-name": { patterns: [{ captures: { 1: { name: "storage.modifier.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)" }, { captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "entity.name.function.tsx variable.language.this.tsx" }, 4: { name: "entity.name.function.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: `(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*
1680
+ # function assignment |
1681
+ (=\\s*(
1682
+ ((async\\s+)?(
1683
+ (function\\s*[(<*]) |
1684
+ (function\\s+) |
1685
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1686
+ )) |
1687
+ ((async\\s*)?(
1688
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1689
+
1690
+ (
1691
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1692
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1693
+ (
1694
+ ([)]\\s*:) |
1695
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1696
+ )
1697
+ ) |
1698
+ (
1699
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1700
+ ) |
1701
+ # arrow function possible to detect only with => on same line
1702
+ (
1703
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1704
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1705
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1706
+ \\s*=>
1707
+ )
1708
+ ))
1709
+ )) |
1710
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
1711
+ (:\\s*(
1712
+ (<) |
1713
+ ([(]\\s*(
1714
+ ([)]) |
1715
+ (\\.\\.\\.) |
1716
+ ([_$[:alnum:]]+\\s*(
1717
+ ([:,?=])|
1718
+ ([)]\\s*=>)
1719
+ ))
1720
+ ))
1721
+ )) |
1722
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
1723
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
1724
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
1725
+ ((async\\s+)?(
1726
+ (function\\s*[(<*]) |
1727
+ (function\\s+) |
1728
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1729
+ )) |
1730
+ ((async\\s*)?(
1731
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1732
+
1733
+ (
1734
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1735
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1736
+ (
1737
+ ([)]\\s*:) |
1738
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1739
+ )
1740
+ ) |
1741
+ (
1742
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1743
+ ) |
1744
+ # arrow function possible to detect only with => on same line
1745
+ (
1746
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1747
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1748
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1749
+ \\s*=>
1750
+ )
1751
+ ))
1752
+ )))` }, { captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "variable.parameter.tsx variable.language.this.tsx" }, 4: { name: "variable.parameter.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)" }] }, "parameter-object-binding-element": { patterns: [{ include: "#comment" }, { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
1753
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1754
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1755
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1756
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
1757
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
1758
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
1759
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
1760
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
1761
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(?=,|\\})", patterns: [{ include: "#object-binding-element-propertyName" }, { include: "#parameter-binding-element" }, { include: "#paren-expression" }] }, { include: "#parameter-object-binding-pattern" }, { include: "#destructuring-parameter-rest" }, { include: "#variable-initializer" }, { include: "#punctuation-comma" }] }, "parameter-object-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.object.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.tsx" } }, patterns: [{ include: "#parameter-object-binding-element" }] }, "parameter-type-annotation": { patterns: [{ begin: "(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?=[,)])|(?==[^>])", name: "meta.type.annotation.tsx", patterns: [{ include: "#type" }] }] }, "paren-expression": { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression" }] }, "paren-expression-possibly-arrow": { patterns: [{ begin: "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?<=\\))", patterns: [{ include: "#paren-expression-possibly-arrow-with-typeparameters" }] }, { begin: "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?<=\\))", patterns: [{ include: "#paren-expression-possibly-arrow-with-typeparameters" }] }, { include: "#possibly-arrow-return-type" }] }, "paren-expression-possibly-arrow-with-typeparameters": { patterns: [{ include: "#type-parameters" }, { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }] }, "possibly-arrow-return-type": { begin: "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", beginCaptures: { 1: { name: "meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx" } }, contentName: "meta.arrow.tsx meta.return.type.arrow.tsx", end: "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", patterns: [{ include: "#arrow-return-type-body" }] }, "property-accessor": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.type.property.tsx" }, "punctuation-accessor": { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))" }, "punctuation-comma": { match: ",", name: "punctuation.separator.comma.tsx" }, "punctuation-semicolon": { match: ";", name: "punctuation.terminator.statement.tsx" }, "qstring-double": { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: '(")|((?:[^\\\\\\n])$)', endCaptures: { 1: { name: "punctuation.definition.string.end.tsx" }, 2: { name: "invalid.illegal.newline.tsx" } }, name: "string.quoted.double.tsx", patterns: [{ include: "#string-character-escape" }] }, "qstring-single": { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: "(\\')|((?:[^\\\\\\n])$)", endCaptures: { 1: { name: "punctuation.definition.string.end.tsx" }, 2: { name: "invalid.illegal.newline.tsx" } }, name: "string.quoted.single.tsx", patterns: [{ include: "#string-character-escape" }] }, regex: { patterns: [{ begin: "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", beginCaptures: { 1: { name: "punctuation.definition.string.begin.tsx" } }, end: "(/)([dgimsuy]*)", endCaptures: { 1: { name: "punctuation.definition.string.end.tsx" }, 2: { name: "keyword.other.tsx" } }, name: "string.regexp.tsx", patterns: [{ include: "#regexp" }] }, { begin: "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: "(/)([dgimsuy]*)", endCaptures: { 1: { name: "punctuation.definition.string.end.tsx" }, 2: { name: "keyword.other.tsx" } }, name: "string.regexp.tsx", patterns: [{ include: "#regexp" }] }] }, "regex-character-class": { patterns: [{ match: "\\\\[wWsSdDtrnvf]|\\.", name: "constant.other.character-class.regexp" }, { match: "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})", name: "constant.character.numeric.regexp" }, { match: "\\\\c[A-Z]", name: "constant.character.control.regexp" }, { match: "\\\\.", name: "constant.character.escape.backslash.regexp" }] }, regexp: { patterns: [{ match: "\\\\[bB]|\\^|\\$", name: "keyword.control.anchor.regexp" }, { captures: { 0: { name: "keyword.other.back-reference.regexp" }, 1: { name: "variable.other.regexp" } }, match: "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>" }, { match: "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??", name: "keyword.operator.quantifier.regexp" }, { match: "\\|", name: "keyword.operator.or.regexp" }, { begin: "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))", beginCaptures: { 1: { name: "punctuation.definition.group.regexp" }, 2: { name: "punctuation.definition.group.assertion.regexp" }, 3: { name: "meta.assertion.look-ahead.regexp" }, 4: { name: "meta.assertion.negative-look-ahead.regexp" }, 5: { name: "meta.assertion.look-behind.regexp" }, 6: { name: "meta.assertion.negative-look-behind.regexp" } }, end: "(\\))", endCaptures: { 1: { name: "punctuation.definition.group.regexp" } }, name: "meta.group.assertion.regexp", patterns: [{ include: "#regexp" }] }, { begin: "\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?", beginCaptures: { 0: { name: "punctuation.definition.group.regexp" }, 1: { name: "punctuation.definition.group.no-capture.regexp" }, 2: { name: "variable.other.regexp" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.regexp" } }, name: "meta.group.regexp", patterns: [{ include: "#regexp" }] }, { begin: "(\\[)(\\^)?", beginCaptures: { 1: { name: "punctuation.definition.character-class.regexp" }, 2: { name: "keyword.operator.negation.regexp" } }, end: "(\\])", endCaptures: { 1: { name: "punctuation.definition.character-class.regexp" } }, name: "constant.other.character-class.set.regexp", patterns: [{ captures: { 1: { name: "constant.character.numeric.regexp" }, 2: { name: "constant.character.control.regexp" }, 3: { name: "constant.character.escape.backslash.regexp" }, 4: { name: "constant.character.numeric.regexp" }, 5: { name: "constant.character.control.regexp" }, 6: { name: "constant.character.escape.backslash.regexp" } }, match: "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", name: "constant.other.character-class.range.regexp" }, { include: "#regex-character-class" }] }, { include: "#regex-character-class" }] }, "return-type": { patterns: [{ begin: "(?<=\\))\\s*(:)(?=\\s*\\S)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?<![:|&])(?=$|^|[{};,]|//)", name: "meta.return.type.tsx", patterns: [{ include: "#return-type-core" }] }, { begin: "(?<=\\))\\s*(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", name: "meta.return.type.tsx", patterns: [{ include: "#return-type-core" }] }] }, "return-type-core": { patterns: [{ include: "#comment" }, { begin: "(?<=[:|&])(?=\\s*\\{)", end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { include: "#type-predicate-operator" }, { include: "#type" }] }, shebang: { captures: { 1: { name: "punctuation.definition.comment.tsx" } }, match: "\\A(#!).*(?=$)", name: "comment.line.shebang.tsx" }, "single-line-comment-consuming-line-ending": { begin: "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.tsx" }, 2: { name: "comment.line.double-slash.tsx" }, 3: { name: "punctuation.definition.comment.tsx" }, 4: { name: "storage.type.internaldeclaration.tsx" }, 5: { name: "punctuation.decorator.internaldeclaration.tsx" } }, contentName: "comment.line.double-slash.tsx", end: "(?=^)" }, statements: { patterns: [{ include: "#declaration" }, { include: "#control-statement" }, { include: "#after-operator-block-as-object-literal" }, { include: "#decl-block" }, { include: "#label" }, { include: "#expression" }, { include: "#punctuation-semicolon" }, { include: "#string" }, { include: "#comment" }] }, string: { patterns: [{ include: "#qstring-single" }, { include: "#qstring-double" }, { include: "#template" }] }, "string-character-escape": { match: "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)", name: "constant.character.escape.tsx" }, "super-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)", name: "variable.language.super.tsx" }, "support-function-call-identifiers": { patterns: [{ include: "#literal" }, { include: "#support-objects" }, { include: "#object-identifiers" }, { include: "#punctuation-accessor" }, { match: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))", name: "keyword.operator.expression.import.tsx" }] }, "support-objects": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)", name: "variable.language.arguments.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)", name: "support.class.promise.tsx" }, { captures: { 1: { name: "keyword.control.import.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" }, 4: { name: "support.variable.property.importmeta.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)" }, { captures: { 1: { name: "keyword.operator.new.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" }, 4: { name: "support.variable.property.target.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)" }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "support.variable.property.tsx" }, 4: { name: "support.constant.tsx" } }, match: `(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:
1762
+ (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())
1763
+ |
1764
+ (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))` }, { captures: { 1: { name: "support.type.object.module.tsx" }, 2: { name: "support.type.object.module.tsx" }, 3: { name: "punctuation.accessor.tsx" }, 4: { name: "punctuation.accessor.optional.tsx" }, 5: { name: "support.type.object.module.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)" }] }, "switch-statement": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "switch-statement.expr.tsx", patterns: [{ include: "#comment" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", beginCaptures: { 1: { name: "keyword.control.switch.tsx" }, 2: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, name: "switch-expression.expr.tsx", patterns: [{ include: "#expression" }] }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "(?=\\})", name: "switch-block.expr.tsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.control.switch.tsx" } }, end: "(?=:)", name: "case-clause.expr.tsx", patterns: [{ include: "#expression" }] }, { begin: "(:)\\s*(\\{)", beginCaptures: { 1: { name: "case-clause.expr.tsx punctuation.definition.section.case-statement.tsx" }, 2: { name: "meta.block.tsx punctuation.definition.block.tsx" } }, contentName: "meta.block.tsx", end: "\\}", endCaptures: { 0: { name: "meta.block.tsx punctuation.definition.block.tsx" } }, patterns: [{ include: "#statements" }] }, { captures: { 0: { name: "case-clause.expr.tsx punctuation.definition.section.case-statement.tsx" } }, match: "(:)" }, { include: "#statements" }] }] }, template: { patterns: [{ include: "#template-call" }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)?(`)", beginCaptures: { 1: { name: "entity.name.function.tagged-template.tsx" }, 2: { name: "string.template.tsx punctuation.definition.string.template.begin.tsx" } }, contentName: "string.template.tsx", end: "`", endCaptures: { 0: { name: "string.template.tsx punctuation.definition.string.template.end.tsx" } }, patterns: [{ include: "#template-substitution-element" }, { include: "#string-character-escape" }] }] }, "template-call": { patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", end: "(?=`)", patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", end: "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", patterns: [{ include: "#support-function-call-identifiers" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "entity.name.function.tagged-template.tsx" }] }, { include: "#type-arguments" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", beginCaptures: { 1: { name: "entity.name.function.tagged-template.tsx" } }, end: "(?=`)", patterns: [{ include: "#type-arguments" }] }] }, "template-substitution-element": { begin: "\\$\\{", beginCaptures: { 0: { name: "punctuation.definition.template-expression.begin.tsx" } }, contentName: "meta.embedded.line.tsx", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.template-expression.end.tsx" } }, name: "meta.template.expression.tsx", patterns: [{ include: "#expression" }] }, "template-type": { patterns: [{ include: "#template-call" }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)?(`)", beginCaptures: { 1: { name: "entity.name.function.tagged-template.tsx" }, 2: { name: "string.template.tsx punctuation.definition.string.template.begin.tsx" } }, contentName: "string.template.tsx", end: "`", endCaptures: { 0: { name: "string.template.tsx punctuation.definition.string.template.end.tsx" } }, patterns: [{ include: "#template-type-substitution-element" }, { include: "#string-character-escape" }] }] }, "template-type-substitution-element": { begin: "\\$\\{", beginCaptures: { 0: { name: "punctuation.definition.template-expression.begin.tsx" } }, contentName: "meta.embedded.line.tsx", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.template-expression.end.tsx" } }, name: "meta.template.expression.tsx", patterns: [{ include: "#type" }] }, "ternary-expression": { begin: "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", beginCaptures: { 1: { name: "keyword.operator.ternary.tsx" } }, end: "\\s*(:)", endCaptures: { 1: { name: "keyword.operator.ternary.tsx" } }, patterns: [{ include: "#expression" }] }, "this-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)", name: "variable.language.this.tsx" }, type: { patterns: [{ include: "#comment" }, { include: "#type-string" }, { include: "#numeric-literal" }, { include: "#type-primitive" }, { include: "#type-builtin-literals" }, { include: "#type-parameters" }, { include: "#type-tuple" }, { include: "#type-object" }, { include: "#type-operators" }, { include: "#type-conditional" }, { include: "#type-fn-type-parameters" }, { include: "#type-paren-or-function-parameters" }, { include: "#type-function-return-type" }, { captures: { 1: { name: "storage.modifier.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*" }, { include: "#type-name" }] }, "type-alias-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.type.tsx" }, 4: { name: "entity.name.type.alias.tsx" } }, end: "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.type.declaration.tsx", patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { begin: "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.assignment.tsx" }, 2: { name: "keyword.control.intrinsic.tsx" } }, end: "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#type" }] }, { begin: "(=)\\s*", beginCaptures: { 1: { name: "keyword.operator.assignment.tsx" } }, end: "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#type" }] }] }, "type-annotation": { patterns: [{ begin: "(:)(?=\\s*\\S)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", name: "meta.type.annotation.tsx", patterns: [{ include: "#type" }] }, { begin: "(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", name: "meta.type.annotation.tsx", patterns: [{ include: "#type" }] }] }, "type-arguments": { begin: "\\<", beginCaptures: { 0: { name: "punctuation.definition.typeparameters.begin.tsx" } }, end: "\\>", endCaptures: { 0: { name: "punctuation.definition.typeparameters.end.tsx" } }, name: "meta.type.parameters.tsx", patterns: [{ include: "#type-arguments-body" }] }, "type-arguments-body": { patterns: [{ captures: { 0: { name: "keyword.operator.type.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { include: "#type" }, { include: "#punctuation-comma" }] }, "type-builtin-literals": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "support.type.builtin.tsx" }, "type-conditional": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", beginCaptures: { 1: { name: "storage.modifier.tsx" } }, end: "(?<=:)", patterns: [{ begin: "\\?", beginCaptures: { 0: { name: "keyword.operator.ternary.tsx" } }, end: ":", endCaptures: { 0: { name: "keyword.operator.ternary.tsx" } }, patterns: [{ include: "#type" }] }, { include: "#type" }] }] }, "type-fn-type-parameters": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", beginCaptures: { 1: { name: "meta.type.constructor.tsx storage.modifier.tsx" }, 2: { name: "meta.type.constructor.tsx keyword.control.new.tsx" } }, end: "(?<=>)", patterns: [{ include: "#comment" }, { include: "#type-parameters" }] }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.control.new.tsx" } }, end: "(?<=\\))", name: "meta.type.constructor.tsx", patterns: [{ include: "#function-parameters" }] }, { begin: `(?x)(
1765
+ (?=
1766
+ [(]\\s*(
1767
+ ([)]) |
1768
+ (\\.\\.\\.) |
1769
+ ([_$[:alnum:]]+\\s*(
1770
+ ([:,?=])|
1771
+ ([)]\\s*=>)
1772
+ ))
1773
+ )
1774
+ )
1775
+ )`, end: "(?<=\\))", name: "meta.type.function.tsx", patterns: [{ include: "#function-parameters" }] }] }, "type-function-return-type": { patterns: [{ begin: "(=>)(?=\\s*\\S)", beginCaptures: { 1: { name: "storage.type.function.arrow.tsx" } }, end: "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", name: "meta.type.function.return.tsx", patterns: [{ include: "#type-function-return-type-core" }] }, { begin: "=>", beginCaptures: { 0: { name: "storage.type.function.arrow.tsx" } }, end: "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", name: "meta.type.function.return.tsx", patterns: [{ include: "#type-function-return-type-core" }] }] }, "type-function-return-type-core": { patterns: [{ include: "#comment" }, { begin: "(?<==>)(?=\\s*\\{)", end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { include: "#type-predicate-operator" }, { include: "#type" }] }, "type-infer": { patterns: [{ captures: { 1: { name: "keyword.operator.expression.infer.tsx" }, 2: { name: "entity.name.type.tsx" }, 3: { name: "keyword.operator.expression.extends.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", name: "meta.type.infer.tsx" }] }, "type-name": { patterns: [{ begin: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", captures: { 1: { name: "entity.name.type.module.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" }, 4: { name: "meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx" } }, contentName: "meta.type.parameters.tsx", end: "(>)", endCaptures: { 1: { name: "meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx" } }, patterns: [{ include: "#type-arguments-body" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", beginCaptures: { 1: { name: "entity.name.type.tsx" }, 2: { name: "meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx" } }, contentName: "meta.type.parameters.tsx", end: "(>)", endCaptures: { 1: { name: "meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx" } }, patterns: [{ include: "#type-arguments-body" }] }, { captures: { 1: { name: "entity.name.type.module.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))" }, { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "entity.name.type.tsx" }] }, "type-object": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "meta.object.type.tsx", patterns: [{ include: "#comment" }, { include: "#method-declaration" }, { include: "#indexer-declaration" }, { include: "#indexer-mapped-type-declaration" }, { include: "#field-declaration" }, { include: "#type-annotation" }, { begin: "\\.\\.\\.", beginCaptures: { 0: { name: "keyword.operator.spread.tsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", patterns: [{ include: "#type" }] }, { include: "#punctuation-comma" }, { include: "#punctuation-semicolon" }, { include: "#type" }] }, "type-operators": { patterns: [{ include: "#typeof-operator" }, { include: "#type-infer" }, { begin: "([&|])(?=\\s*\\{)", beginCaptures: { 0: { name: "keyword.operator.type.tsx" } }, end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { begin: "[&|]", beginCaptures: { 0: { name: "keyword.operator.type.tsx" } }, end: "(?=\\S)" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.keyof.tsx" }, { match: "(\\?|\\:)", name: "keyword.operator.ternary.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()", name: "keyword.operator.expression.import.tsx" }] }, "type-parameters": { begin: "(<)", beginCaptures: { 1: { name: "punctuation.definition.typeparameters.begin.tsx" } }, end: "(>)", endCaptures: { 1: { name: "punctuation.definition.typeparameters.end.tsx" } }, name: "meta.type.parameters.tsx", patterns: [{ include: "#comment" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.tsx" }, { include: "#type" }, { include: "#punctuation-comma" }, { match: "(=)(?!>)", name: "keyword.operator.assignment.tsx" }] }, "type-paren-or-function-parameters": { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, name: "meta.type.paren.cover.tsx", patterns: [{ captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "entity.name.function.tsx variable.language.this.tsx" }, 4: { name: "entity.name.function.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: `(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(
1776
+ (<) |
1777
+ ([(]\\s*(
1778
+ ([)]) |
1779
+ (\\.\\.\\.) |
1780
+ ([_$[:alnum:]]+\\s*(
1781
+ ([:,?=])|
1782
+ ([)]\\s*=>)
1783
+ ))
1784
+ ))
1785
+ )) |
1786
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
1787
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))` }, { captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "variable.parameter.tsx variable.language.this.tsx" }, 4: { name: "variable.parameter.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)" }, { include: "#type-annotation" }, { match: ",", name: "punctuation.separator.parameter.tsx" }, { include: "#type" }] }, "type-predicate-operator": { patterns: [{ captures: { 1: { name: "keyword.operator.type.asserts.tsx" }, 2: { name: "variable.parameter.tsx variable.language.this.tsx" }, 3: { name: "variable.parameter.tsx" }, 4: { name: "keyword.operator.expression.is.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { captures: { 1: { name: "keyword.operator.type.asserts.tsx" }, 2: { name: "variable.parameter.tsx variable.language.this.tsx" }, 3: { name: "variable.parameter.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.type.asserts.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.is.tsx" }] }, "type-primitive": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "support.type.primitive.tsx" }, "type-string": { patterns: [{ include: "#qstring-single" }, { include: "#qstring-double" }, { include: "#template-type" }] }, "type-tuple": { begin: "\\[", beginCaptures: { 0: { name: "meta.brace.square.tsx" } }, end: "\\]", endCaptures: { 0: { name: "meta.brace.square.tsx" } }, name: "meta.type.tuple.tsx", patterns: [{ match: "\\.\\.\\.", name: "keyword.operator.rest.tsx" }, { captures: { 1: { name: "entity.name.label.tsx" }, 2: { name: "keyword.operator.optional.tsx" }, 3: { name: "punctuation.separator.label.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)" }, { include: "#type" }, { include: "#punctuation-comma" }] }, "typeof-operator": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 0: { name: "keyword.operator.expression.typeof.tsx" } }, end: "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#type-arguments" }, { include: "#expression" }] }, "undefined-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.undefined.tsx" }, "var-expr": { patterns: [{ begin: "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", end: "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", name: "meta.var.expr.tsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?=\\S)" }, { include: "#destructuring-variable" }, { include: "#var-single-variable" }, { include: "#variable-initializer" }, { include: "#comment" }, { begin: "(,)\\s*(?=$|\\/\\/)", beginCaptures: { 1: { name: "punctuation.separator.comma.tsx" } }, end: "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#destructuring-variable" }, { include: "#var-single-variable" }, { include: "#punctuation-comma" }] }, { include: "#punctuation-comma" }] }, { begin: "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", name: "meta.var.expr.tsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?=\\S)" }, { include: "#destructuring-const" }, { include: "#var-single-const" }, { include: "#variable-initializer" }, { include: "#comment" }, { begin: "(,)\\s*(?=$|\\/\\/)", beginCaptures: { 1: { name: "punctuation.separator.comma.tsx" } }, end: "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#destructuring-const" }, { include: "#var-single-const" }, { include: "#punctuation-comma" }] }, { include: "#punctuation-comma" }] }, { begin: "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", name: "meta.var.expr.tsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?=\\S)" }, { include: "#var-single-const" }, { include: "#variable-initializer" }, { include: "#comment" }, { begin: "(,)\\s*((?!\\S)|(?=\\/\\/))", beginCaptures: { 1: { name: "punctuation.separator.comma.tsx" } }, end: "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#var-single-const" }, { include: "#punctuation-comma" }] }, { include: "#punctuation-comma" }] }] }, "var-single-const": { patterns: [{ begin: `(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*
1788
+ # function assignment |
1789
+ (=\\s*(
1790
+ ((async\\s+)?(
1791
+ (function\\s*[(<*]) |
1792
+ (function\\s+) |
1793
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1794
+ )) |
1795
+ ((async\\s*)?(
1796
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1797
+
1798
+ (
1799
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1800
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1801
+ (
1802
+ ([)]\\s*:) |
1803
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1804
+ )
1805
+ ) |
1806
+ (
1807
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1808
+ ) |
1809
+ # arrow function possible to detect only with => on same line
1810
+ (
1811
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1812
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1813
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1814
+ \\s*=>
1815
+ )
1816
+ ))
1817
+ )) |
1818
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
1819
+ (:\\s*(
1820
+ (<) |
1821
+ ([(]\\s*(
1822
+ ([)]) |
1823
+ (\\.\\.\\.) |
1824
+ ([_$[:alnum:]]+\\s*(
1825
+ ([:,?=])|
1826
+ ([)]\\s*=>)
1827
+ ))
1828
+ ))
1829
+ )) |
1830
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
1831
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
1832
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
1833
+ ((async\\s+)?(
1834
+ (function\\s*[(<*]) |
1835
+ (function\\s+) |
1836
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1837
+ )) |
1838
+ ((async\\s*)?(
1839
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1840
+
1841
+ (
1842
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1843
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1844
+ (
1845
+ ([)]\\s*:) |
1846
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1847
+ )
1848
+ ) |
1849
+ (
1850
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1851
+ ) |
1852
+ # arrow function possible to detect only with => on same line
1853
+ (
1854
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1855
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1856
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1857
+ \\s*=>
1858
+ )
1859
+ ))
1860
+ )))`, beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)", beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.constant.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }] }, "var-single-variable": { patterns: [{ begin: `(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*
1861
+ # function assignment |
1862
+ (=\\s*(
1863
+ ((async\\s+)?(
1864
+ (function\\s*[(<*]) |
1865
+ (function\\s+) |
1866
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1867
+ )) |
1868
+ ((async\\s*)?(
1869
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1870
+
1871
+ (
1872
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1873
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1874
+ (
1875
+ ([)]\\s*:) |
1876
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1877
+ )
1878
+ ) |
1879
+ (
1880
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1881
+ ) |
1882
+ # arrow function possible to detect only with => on same line
1883
+ (
1884
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1885
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1886
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1887
+ \\s*=>
1888
+ )
1889
+ ))
1890
+ )) |
1891
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
1892
+ (:\\s*(
1893
+ (<) |
1894
+ ([(]\\s*(
1895
+ ([)]) |
1896
+ (\\.\\.\\.) |
1897
+ ([_$[:alnum:]]+\\s*(
1898
+ ([:,?=])|
1899
+ ([)]\\s*=>)
1900
+ ))
1901
+ ))
1902
+ )) |
1903
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
1904
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
1905
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
1906
+ ((async\\s+)?(
1907
+ (function\\s*[(<*]) |
1908
+ (function\\s+) |
1909
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
1910
+ )) |
1911
+ ((async\\s*)?(
1912
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
1913
+
1914
+ (
1915
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1916
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
1917
+ (
1918
+ ([)]\\s*:) |
1919
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
1920
+ )
1921
+ ) |
1922
+ (
1923
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
1924
+ ) |
1925
+ # arrow function possible to detect only with => on same line
1926
+ (
1927
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
1928
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
1929
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
1930
+ \\s*=>
1931
+ )
1932
+ ))
1933
+ )))`, beginCaptures: { 1: { name: "meta.definition.variable.tsx entity.name.function.tsx" }, 2: { name: "keyword.operator.definiteassignment.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.constant.tsx" }, 2: { name: "keyword.operator.definiteassignment.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.readwrite.tsx" }, 2: { name: "keyword.operator.definiteassignment.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }] }, "var-single-variable-type-annotation": { patterns: [{ include: "#type-annotation" }, { include: "#string" }, { include: "#comment" }] }, "variable-initializer": { patterns: [{ begin: "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", beginCaptures: { 1: { name: "keyword.operator.assignment.tsx" } }, end: "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", patterns: [{ include: "#expression" }] }, { begin: "(?<!=|!)(=)(?!=)", beginCaptures: { 1: { name: "keyword.operator.assignment.tsx" } }, end: "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", patterns: [{ include: "#expression" }] }] } }, scopeName: "source.tsx" });
1934
+ var l = [
1935
+ j
1936
+ ];
1937
+ const w = Object.freeze({ displayName: "JSON with Comments", name: "jsonc", patterns: [{ include: "#value" }], repository: { array: { begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.array.begin.json.comments" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.array.end.json.comments" } }, name: "meta.structure.array.json.comments", patterns: [{ include: "#value" }, { match: ",", name: "punctuation.separator.array.json.comments" }, { match: "[^\\s\\]]", name: "invalid.illegal.expected-array-separator.json.comments" }] }, comments: { patterns: [{ begin: "/\\*\\*(?!/)", captures: { 0: { name: "punctuation.definition.comment.json.comments" } }, end: "\\*/", name: "comment.block.documentation.json.comments" }, { begin: "/\\*", captures: { 0: { name: "punctuation.definition.comment.json.comments" } }, end: "\\*/", name: "comment.block.json.comments" }, { captures: { 1: { name: "punctuation.definition.comment.json.comments" } }, match: "(//).*$\\n?", name: "comment.line.double-slash.js" }] }, constant: { match: "\\b(?:true|false|null)\\b", name: "constant.language.json.comments" }, number: { match: `(?x)
1938
+ -?
1939
+ (?:
1940
+ 0
1941
+ |
1942
+ [1-9]
1943
+ \\d*
1944
+ )
1945
+ (?:
1946
+ (?:
1947
+ \\.
1948
+ \\d+
1949
+ )?
1950
+ (?:
1951
+ [eE]
1952
+ [+-]?
1953
+ \\d+
1954
+ )?
1955
+ )?`, name: "constant.numeric.json.comments" }, object: { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.dictionary.begin.json.comments" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.dictionary.end.json.comments" } }, name: "meta.structure.dictionary.json.comments", patterns: [{ comment: "the JSON object key", include: "#objectkey" }, { include: "#comments" }, { begin: ":", beginCaptures: { 0: { name: "punctuation.separator.dictionary.key-value.json.comments" } }, end: "(,)|(?=\\})", endCaptures: { 1: { name: "punctuation.separator.dictionary.pair.json.comments" } }, name: "meta.structure.dictionary.value.json.comments", patterns: [{ comment: "the JSON object value", include: "#value" }, { match: "[^\\s,]", name: "invalid.illegal.expected-dictionary-separator.json.comments" }] }, { match: "[^\\s\\}]", name: "invalid.illegal.expected-dictionary-separator.json.comments" }] }, objectkey: { begin: '"', beginCaptures: { 0: { name: "punctuation.support.type.property-name.begin.json.comments" } }, end: '"', endCaptures: { 0: { name: "punctuation.support.type.property-name.end.json.comments" } }, name: "string.json.comments support.type.property-name.json.comments", patterns: [{ include: "#stringcontent" }] }, string: { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.json.comments" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.json.comments" } }, name: "string.quoted.double.json.comments", patterns: [{ include: "#stringcontent" }] }, stringcontent: { patterns: [{ match: `(?x)
1956
+ \\\\
1957
+ (?:
1958
+ ["\\\\/bfnrt]
1959
+ |
1960
+ u
1961
+ [0-9a-fA-F]{4})`, name: "constant.character.escape.json.comments" }, { match: "\\\\.", name: "invalid.illegal.unrecognized-string-escape.json.comments" }] }, value: { patterns: [{ include: "#constant" }, { include: "#number" }, { include: "#string" }, { include: "#array" }, { include: "#object" }, { include: "#comments" }] } }, scopeName: "source.json.comments" });
1962
+ var v = [
1963
+ w
1964
+ ];
1965
+ const C = Object.freeze({ displayName: "JSON5", fileTypes: ["json5"], name: "json5", patterns: [{ include: "#comments" }, { include: "#value" }], repository: { array: { begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.array.begin.json5" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.array.end.json5" } }, name: "meta.structure.array.json5", patterns: [{ include: "#comments" }, { include: "#value" }, { match: ",", name: "punctuation.separator.array.json5" }, { match: "[^\\s\\]]", name: "invalid.illegal.expected-array-separator.json5" }] }, comments: { patterns: [{ match: "/{2}.*", name: "comment.single.json5" }, { begin: "/\\*\\*(?!/)", captures: { 0: { name: "punctuation.definition.comment.json5" } }, end: "\\*/", name: "comment.block.documentation.json5" }, { begin: "/\\*", captures: { 0: { name: "punctuation.definition.comment.json5" } }, end: "\\*/", name: "comment.block.json5" }] }, constant: { match: "\\b(?:true|false|null|Infinity|NaN)\\b", name: "constant.language.json5" }, infinity: { match: "(-)*\\b(?:Infinity|NaN)\\b", name: "constant.language.json5" }, key: { name: "string.key.json5", patterns: [{ include: "#stringSingle" }, { include: "#stringDouble" }, { match: "[a-zA-Z0-9_-]", name: "string.key.json5" }] }, number: { patterns: [{ comment: "handles hexadecimal numbers", match: "(0x)[0-9a-fA-f]*", name: "constant.hex.numeric.json5" }, { comment: "handles integer and decimal numbers", match: "[+-.]?(?=[1-9]|0(?!\\d))\\d+(\\.\\d+)?([eE][+-]?\\d+)?", name: "constant.dec.numeric.json5" }] }, object: { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.dictionary.begin.json5" } }, comment: "a json5 object", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.dictionary.end.json5" } }, name: "meta.structure.dictionary.json5", patterns: [{ include: "#comments" }, { comment: "the json5 object key", include: "#key" }, { begin: ":", beginCaptures: { 0: { name: "punctuation.separator.dictionary.key-value.json5" } }, end: "(,)|(?=\\})", endCaptures: { 1: { name: "punctuation.separator.dictionary.pair.json5" } }, name: "meta.structure.dictionary.value.json5", patterns: [{ comment: "the json5 object value", include: "#value" }, { match: "[^\\s,]", name: "invalid.illegal.expected-dictionary-separator.json5" }] }, { match: "[^\\s\\}]", name: "invalid.illegal.expected-dictionary-separator.json5" }] }, stringDouble: { begin: '["]', beginCaptures: { 0: { name: "punctuation.definition.string.begin.json5" } }, end: '["]', endCaptures: { 0: { name: "punctuation.definition.string.end.json5" } }, name: "string.quoted.json5", patterns: [{ match: `(?x:
1966
+ \\\\
1967
+ (?:
1968
+ ["\\\\/bfnrt]
1969
+ |
1970
+ u
1971
+ [0-9a-fA-F]{4}
1972
+ )
1973
+ )`, name: "constant.character.escape.json5" }, { match: "\\\\.", name: "invalid.illegal.unrecognized-string-escape.json5" }] }, stringSingle: { begin: "[']", beginCaptures: { 0: { name: "punctuation.definition.string.begin.json5" } }, end: "[']", endCaptures: { 0: { name: "punctuation.definition.string.end.json5" } }, name: "string.quoted.json5", patterns: [{ match: `(?x:
1974
+ \\\\
1975
+ (?:
1976
+ ["\\\\/bfnrt]
1977
+ |
1978
+ u
1979
+ [0-9a-fA-F]{4}
1980
+ )
1981
+ )`, name: "constant.character.escape.json5" }, { match: "\\\\.", name: "invalid.illegal.unrecognized-string-escape.json5" }] }, value: { comment: "the 'value' diagram at http://json.org", patterns: [{ include: "#constant" }, { include: "#infinity" }, { include: "#number" }, { include: "#stringSingle" }, { include: "#stringDouble" }, { include: "#array" }, { include: "#object" }] } }, scopeName: "source.json5" });
1982
+ var q = [
1983
+ C
1984
+ ];
1985
+ const z = Object.freeze({ displayName: "TOML", fileTypes: ["toml"], name: "toml", patterns: [{ include: "#comments" }, { include: "#groups" }, { include: "#key_pair" }, { include: "#invalid" }], repository: { comments: { begin: "(^[ \\t]+)?(?=#)", beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.toml" } }, end: "(?!\\G)", patterns: [{ begin: "#", beginCaptures: { 0: { name: "punctuation.definition.comment.toml" } }, end: "\\n", name: "comment.line.number-sign.toml" }] }, groups: { patterns: [{ captures: { 1: { name: "punctuation.definition.section.begin.toml" }, 2: { patterns: [{ match: "[^\\s.]+", name: "entity.name.section.toml" }] }, 3: { name: "punctuation.definition.section.begin.toml" } }, match: "^\\s*(\\[)([^\\[\\]]*)(\\])", name: "meta.group.toml" }, { captures: { 1: { name: "punctuation.definition.section.begin.toml" }, 2: { patterns: [{ match: "[^\\s.]+", name: "entity.name.section.toml" }] }, 3: { name: "punctuation.definition.section.begin.toml" } }, match: "^\\s*(\\[\\[)([^\\[\\]]*)(\\]\\])", name: "meta.group.double.toml" }] }, invalid: { match: "\\S+(\\s*(?=\\S))?", name: "invalid.illegal.not-allowed-here.toml" }, key_pair: { patterns: [{ begin: "([A-Za-z0-9_-]+)\\s*(=)\\s*", captures: { 1: { name: "variable.other.key.toml" }, 2: { name: "punctuation.separator.key-value.toml" } }, end: "(?<=\\S)(?<!=)|$", patterns: [{ include: "#primatives" }] }, { begin: '((")(.*?)("))\\s*(=)\\s*', captures: { 1: { name: "variable.other.key.toml" }, 2: { name: "punctuation.definition.variable.begin.toml" }, 3: { patterns: [{ match: '\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})', name: "constant.character.escape.toml" }, { match: '\\\\[^btnfr"\\\\]', name: "invalid.illegal.escape.toml" }, { match: '"', name: "invalid.illegal.not-allowed-here.toml" }] }, 4: { name: "punctuation.definition.variable.end.toml" }, 5: { name: "punctuation.separator.key-value.toml" } }, end: "(?<=\\S)(?<!=)|$", patterns: [{ include: "#primatives" }] }, { begin: "((')([^']*)('))\\s*(=)\\s*", captures: { 1: { name: "variable.other.key.toml" }, 2: { name: "punctuation.definition.variable.begin.toml" }, 4: { name: "punctuation.definition.variable.end.toml" }, 5: { name: "punctuation.separator.key-value.toml" } }, end: "(?<=\\S)(?<!=)|$", patterns: [{ include: "#primatives" }] }, { begin: `(?x)
1986
+ (
1987
+ (
1988
+ (?:
1989
+ [A-Za-z0-9_-]+
1990
+ | " (?:[^"\\\\]|\\\\.)* "
1991
+ | ' [^']* '
1992
+ )
1993
+ (?:
1994
+ \\s* \\. \\s*
1995
+ | (?= \\s* =)
1996
+ )
1997
+ ){2,}
1998
+ )
1999
+ \\s*(=)\\s*
2000
+ `, captures: { 1: { name: "variable.other.key.toml", patterns: [{ match: "\\.", name: "punctuation.separator.variable.toml" }, { captures: { 1: { name: "punctuation.definition.variable.begin.toml" }, 2: { patterns: [{ match: '\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})', name: "constant.character.escape.toml" }, { match: '\\\\[^btnfr"\\\\]', name: "invalid.illegal.escape.toml" }] }, 3: { name: "punctuation.definition.variable.end.toml" } }, match: '(")((?:[^"\\\\]|\\\\.)*)(")' }, { captures: { 1: { name: "punctuation.definition.variable.begin.toml" }, 2: { name: "punctuation.definition.variable.end.toml" } }, match: "(')[^']*(')" }] }, 3: { name: "punctuation.separator.key-value.toml" } }, comment: "Dotted key", end: "(?<=\\S)(?<!=)|$", patterns: [{ include: "#primatives" }] }] }, primatives: { patterns: [{ begin: '\\G"""', beginCaptures: { 0: { name: "punctuation.definition.string.begin.toml" } }, end: '"{3,5}', endCaptures: { 0: { name: "punctuation.definition.string.end.toml" } }, name: "string.quoted.triple.double.toml", patterns: [{ match: '\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})', name: "constant.character.escape.toml" }, { match: '\\\\[^btnfr"\\\\\\n]', name: "invalid.illegal.escape.toml" }] }, { begin: '\\G"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.toml" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.toml" } }, name: "string.quoted.double.toml", patterns: [{ match: '\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})', name: "constant.character.escape.toml" }, { match: '\\\\[^btnfr"\\\\]', name: "invalid.illegal.escape.toml" }] }, { begin: "\\G'''", beginCaptures: { 0: { name: "punctuation.definition.string.begin.toml" } }, end: "'{3,5}", endCaptures: { 0: { name: "punctuation.definition.string.end.toml" } }, name: "string.quoted.triple.single.toml" }, { begin: "\\G'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.toml" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.toml" } }, name: "string.quoted.single.toml" }, { match: `\\G(?x)
2001
+ [0-9]{4}
2002
+ -
2003
+ (0[1-9]|1[012])
2004
+ -
2005
+ (?!00|3[2-9])[0-3][0-9]
2006
+ (
2007
+ [Tt ]
2008
+ (?!2[5-9])[0-2][0-9]
2009
+ :
2010
+ [0-5][0-9]
2011
+ :
2012
+ (?!6[1-9])[0-6][0-9]
2013
+ (\\.[0-9]+)?
2014
+ (
2015
+ Z
2016
+ | [+-](?!2[5-9])[0-2][0-9]:[0-5][0-9]
2017
+ )?
2018
+ )?
2019
+ `, name: "constant.other.date.toml" }, { match: `\\G(?x)
2020
+ (?!2[5-9])[0-2][0-9]
2021
+ :
2022
+ [0-5][0-9]
2023
+ :
2024
+ (?!6[1-9])[0-6][0-9]
2025
+ (\\.[0-9]+)?
2026
+ `, name: "constant.other.time.toml" }, { match: "\\G(true|false)", name: "constant.language.boolean.toml" }, { match: "\\G0x\\h(\\h|_\\h)*", name: "constant.numeric.hex.toml" }, { match: "\\G0o[0-7]([0-7]|_[0-7])*", name: "constant.numeric.octal.toml" }, { match: "\\G0b[01]([01]|_[01])*", name: "constant.numeric.binary.toml" }, { match: "\\G[+-]?(inf|nan)", name: "constant.numeric.toml" }, { match: `(?x)
2027
+ \\G
2028
+ (
2029
+ [+-]?
2030
+ (
2031
+ 0
2032
+ | ([1-9](([0-9]|_[0-9])+)?)
2033
+ )
2034
+ )
2035
+ (?=[.eE])
2036
+ (
2037
+ \\.
2038
+ ([0-9](([0-9]|_[0-9])+)?)
2039
+ )?
2040
+ (
2041
+ [eE]
2042
+ ([+-]?[0-9](([0-9]|_[0-9])+)?)
2043
+ )?
2044
+ `, name: "constant.numeric.float.toml" }, { match: `(?x)
2045
+ \\G
2046
+ (
2047
+ [+-]?
2048
+ (
2049
+ 0
2050
+ | ([1-9](([0-9]|_[0-9])+)?)
2051
+ )
2052
+ )
2053
+ `, name: "constant.numeric.integer.toml" }, { begin: "\\G\\[", beginCaptures: { 0: { name: "punctuation.definition.array.begin.toml" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.array.end.toml" } }, name: "meta.array.toml", patterns: [{ begin: `(?=["'']|[+-]?[0-9]|[+-]?(inf|nan)|true|false|\\[|\\{)`, end: ",|(?=])", endCaptures: { 0: { name: "punctuation.separator.array.toml" } }, patterns: [{ include: "#primatives" }, { include: "#comments" }, { include: "#invalid" }] }, { include: "#comments" }, { include: "#invalid" }] }, { begin: "\\G\\{", beginCaptures: { 0: { name: "punctuation.definition.inline-table.begin.toml" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.inline-table.end.toml" } }, name: "meta.inline-table.toml", patterns: [{ begin: "(?=\\S)", end: ",|(?=})", endCaptures: { 0: { name: "punctuation.separator.inline-table.toml" } }, patterns: [{ include: "#key_pair" }] }, { include: "#comments" }] }] } }, scopeName: "source.toml" });
2054
+ var A = [
2055
+ z
2056
+ ];
2057
+ const G = Object.freeze({ displayName: "GraphQL", fileTypes: ["graphql", "graphqls", "gql", "graphcool"], name: "graphql", patterns: [{ include: "#graphql" }], repository: { graphql: { patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-fragment-definition" }, { include: "#graphql-directive-definition" }, { include: "#graphql-type-interface" }, { include: "#graphql-enum" }, { include: "#graphql-scalar" }, { include: "#graphql-union" }, { include: "#graphql-schema" }, { include: "#graphql-operation-def" }, { include: "#literal-quasi-embedded" }] }, "graphql-ampersand": { captures: { 1: { name: "keyword.operator.logical.graphql" } }, match: "\\s*(&)" }, "graphql-arguments": { begin: "\\s*(\\()", beginCaptures: { 1: { name: "meta.brace.round.directive.graphql" } }, end: "\\s*(\\))", endCaptures: { 1: { name: "meta.brace.round.directive.graphql" } }, name: "meta.arguments.graphql", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { begin: "\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(:))", beginCaptures: { 1: { name: "variable.parameter.graphql" }, 2: { name: "punctuation.colon.graphql" } }, end: "(?=\\s*(?:(?:([_A-Za-z][_0-9A-Za-z]*)\\s*(:))|\\)))|\\s*(,)", endCaptures: { 3: { name: "punctuation.comma.graphql" } }, patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-directive" }, { include: "#graphql-value" }, { include: "#graphql-skip-newlines" }] }, { include: "#literal-quasi-embedded" }] }, "graphql-boolean-value": { captures: { 1: { name: "constant.language.boolean.graphql" } }, match: "\\s*\\b(true|false)\\b" }, "graphql-colon": { captures: { 1: { name: "punctuation.colon.graphql" } }, match: "\\s*(:)" }, "graphql-comma": { captures: { 1: { name: "punctuation.comma.graphql" } }, match: "\\s*(,)" }, "graphql-comment": { patterns: [{ captures: { 1: { name: "punctuation.whitespace.comment.leading.graphql" } }, comment: "need to prefix comment space with a scope else Atom's reflow cmd doesn't work", match: "(\\s*)(#).*", name: "comment.line.graphql.js" }, { begin: '(""")', beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.graphql" } }, end: '(""")', name: "comment.line.graphql.js" }, { begin: '(")', beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.graphql" } }, end: '(")', name: "comment.line.graphql.js" }] }, "graphql-description-docstring": { begin: '"""', end: '"""', name: "comment.block.graphql" }, "graphql-description-singleline": { match: '#(?=([^"]*"[^"]*")*[^"]*$).*$', name: "comment.line.number-sign.graphql" }, "graphql-directive": { applyEndPatternLast: 1, begin: "\\s*((@)\\s*([_A-Za-z][_0-9A-Za-z]*))", beginCaptures: { 1: { name: "entity.name.function.directive.graphql" } }, end: "(?=.)", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-arguments" }, { include: "#literal-quasi-embedded" }, { include: "#graphql-skip-newlines" }] }, "graphql-directive-definition": { applyEndPatternLast: 1, begin: "\\s*(\\bdirective\\b)\\s*(@[_A-Za-z][_0-9A-Za-z]*)", beginCaptures: { 1: { name: "keyword.directive.graphql" }, 2: { name: "entity.name.function.directive.graphql" }, 3: { name: "keyword.on.graphql" }, 4: { name: "support.type.graphql" } }, end: "(?=.)", patterns: [{ include: "#graphql-variable-definitions" }, { applyEndPatternLast: 1, begin: "\\s*(\\bon\\b)\\s*([_A-Za-z]*)", beginCaptures: { 1: { name: "keyword.on.graphql" }, 2: { name: "support.type.location.graphql" } }, end: "(?=.)", patterns: [{ include: "#graphql-skip-newlines" }, { include: "#graphql-comment" }, { include: "#literal-quasi-embedded" }, { captures: { 2: { name: "support.type.location.graphql" } }, match: "\\s*(\\|)\\s*([_A-Za-z]*)" }] }, { include: "#graphql-skip-newlines" }, { include: "#graphql-comment" }, { include: "#literal-quasi-embedded" }] }, "graphql-enum": { begin: "\\s*+\\b(enum)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)", beginCaptures: { 1: { name: "keyword.enum.graphql" }, 2: { name: "support.type.enum.graphql" } }, end: "(?<=})", name: "meta.enum.graphql", patterns: [{ begin: "\\s*({)", beginCaptures: { 1: { name: "punctuation.operation.graphql" } }, end: "\\s*(})", endCaptures: { 1: { name: "punctuation.operation.graphql" } }, name: "meta.type.object.graphql", patterns: [{ include: "#graphql-object-type" }, { include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-directive" }, { include: "#graphql-enum-value" }, { include: "#literal-quasi-embedded" }] }, { include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-directive" }] }, "graphql-enum-value": { match: "\\s*(?!=\\b(true|false|null)\\b)([_A-Za-z][_0-9A-Za-z]*)", name: "constant.character.enum.graphql" }, "graphql-field": { patterns: [{ captures: { 1: { name: "string.unquoted.alias.graphql" }, 2: { name: "punctuation.colon.graphql" } }, match: "\\s*([_A-Za-z][_0-9A-Za-z]*)\\s*(:)" }, { captures: { 1: { name: "variable.graphql" } }, match: "\\s*([_A-Za-z][_0-9A-Za-z]*)" }, { include: "#graphql-arguments" }, { include: "#graphql-directive" }, { include: "#graphql-selection-set" }, { include: "#literal-quasi-embedded" }, { include: "#graphql-skip-newlines" }] }, "graphql-float-value": { captures: { 1: { name: "constant.numeric.float.graphql" } }, match: "\\s*(-?(0|[1-9][0-9]*)(\\.[0-9]+)?((e|E)(\\+|-)?[0-9]+)?)" }, "graphql-fragment-definition": { begin: "\\s*(?:(\\bfragment\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)?\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)))", captures: { 1: { name: "keyword.fragment.graphql" }, 2: { name: "entity.name.fragment.graphql" }, 3: { name: "keyword.on.graphql" }, 4: { name: "support.type.graphql" } }, end: "(?<=})", name: "meta.fragment.graphql", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-selection-set" }, { include: "#graphql-directive" }, { include: "#graphql-skip-newlines" }, { include: "#literal-quasi-embedded" }] }, "graphql-fragment-spread": { applyEndPatternLast: 1, begin: "\\s*(\\.\\.\\.)\\s*(?!\\bon\\b)([_A-Za-z][_0-9A-Za-z]*)", captures: { 1: { name: "keyword.operator.spread.graphql" }, 2: { name: "variable.fragment.graphql" } }, end: "(?=.)", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-selection-set" }, { include: "#graphql-directive" }, { include: "#literal-quasi-embedded" }, { include: "#graphql-skip-newlines" }] }, "graphql-ignore-spaces": { match: "\\s*" }, "graphql-inline-fragment": { applyEndPatternLast: 1, begin: "\\s*(\\.\\.\\.)\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*))?", captures: { 1: { name: "keyword.operator.spread.graphql" }, 2: { name: "keyword.on.graphql" }, 3: { name: "support.type.graphql" } }, end: "(?=.)", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-selection-set" }, { include: "#graphql-directive" }, { include: "#graphql-skip-newlines" }, { include: "#literal-quasi-embedded" }] }, "graphql-input-types": { patterns: [{ include: "#graphql-scalar-type" }, { captures: { 1: { name: "support.type.graphql" }, 2: { name: "keyword.operator.nulltype.graphql" } }, match: "\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(!))?" }, { begin: "\\s*(\\[)", captures: { 1: { name: "meta.brace.square.graphql" }, 2: { name: "keyword.operator.nulltype.graphql" } }, end: "\\s*(\\])(?:\\s*(!))?", name: "meta.type.list.graphql", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-input-types" }, { include: "#graphql-comma" }, { include: "#literal-quasi-embedded" }] }] }, "graphql-list-value": { patterns: [{ begin: "\\s*+(\\[)", beginCaptures: { 1: { name: "meta.brace.square.graphql" } }, end: "\\s*(\\])", endCaptures: { 1: { name: "meta.brace.square.graphql" } }, name: "meta.listvalues.graphql", patterns: [{ include: "#graphql-value" }] }] }, "graphql-name": { captures: { 1: { name: "entity.name.function.graphql" } }, match: "\\s*([_A-Za-z][_0-9A-Za-z]*)" }, "graphql-null-value": { captures: { 1: { name: "constant.language.null.graphql" } }, match: "\\s*\\b(null)\\b" }, "graphql-object-field": { captures: { 1: { name: "constant.object.key.graphql" }, 2: { name: "string.unquoted.graphql" }, 3: { name: "punctuation.graphql" } }, match: "\\s*(([_A-Za-z][_0-9A-Za-z]*))\\s*(:)" }, "graphql-object-value": { patterns: [{ begin: "\\s*+({)", beginCaptures: { 1: { name: "meta.brace.curly.graphql" } }, end: "\\s*(})", endCaptures: { 1: { name: "meta.brace.curly.graphql" } }, name: "meta.objectvalues.graphql", patterns: [{ include: "#graphql-object-field" }, { include: "#graphql-value" }] }] }, "graphql-operation-def": { patterns: [{ include: "#graphql-query-mutation" }, { include: "#graphql-name" }, { include: "#graphql-variable-definitions" }, { include: "#graphql-directive" }, { include: "#graphql-selection-set" }] }, "graphql-query-mutation": { captures: { 1: { name: "keyword.operation.graphql" } }, match: "\\s*\\b(query|mutation)\\b" }, "graphql-scalar": { captures: { 1: { name: "keyword.scalar.graphql" }, 2: { name: "entity.scalar.graphql" } }, match: "\\s*\\b(scalar)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)" }, "graphql-scalar-type": { captures: { 1: { name: "support.type.builtin.graphql" }, 2: { name: "keyword.operator.nulltype.graphql" } }, match: "\\s*\\b(Int|Float|String|Boolean|ID)\\b(?:\\s*(!))?" }, "graphql-schema": { begin: "\\s*\\b(schema)\\b", beginCaptures: { 1: { name: "keyword.schema.graphql" } }, end: "(?<=})", patterns: [{ begin: "\\s*({)", beginCaptures: { 1: { name: "punctuation.operation.graphql" } }, end: "\\s*(})", endCaptures: { 1: { name: "punctuation.operation.graphql" } }, patterns: [{ begin: "\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)", beginCaptures: { 1: { name: "variable.arguments.graphql" } }, end: "(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)", endCaptures: { 5: { name: "punctuation.comma.graphql" } }, patterns: [{ captures: { 1: { name: "support.type.graphql" } }, match: "\\s*([_A-Za-z][_0-9A-Za-z]*)" }, { include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-colon" }, { include: "#graphql-skip-newlines" }] }, { include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-skip-newlines" }] }, { include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-directive" }, { include: "#graphql-skip-newlines" }] }, "graphql-selection-set": { begin: "\\s*({)", beginCaptures: { 1: { name: "punctuation.operation.graphql" } }, end: "\\s*(})", endCaptures: { 1: { name: "punctuation.operation.graphql" } }, name: "meta.selectionset.graphql", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-field" }, { include: "#graphql-fragment-spread" }, { include: "#graphql-inline-fragment" }, { include: "#graphql-comma" }, { include: "#native-interpolation" }, { include: "#literal-quasi-embedded" }] }, "graphql-skip-newlines": { match: `\\s*
2058
+ ` }, "graphql-string-content": { patterns: [{ match: `\\\\[/'"\\\\nrtbf]`, name: "constant.character.escape.graphql" }, { match: "\\\\u([0-9a-fA-F]{4})", name: "constant.character.escape.graphql" }] }, "graphql-string-value": { begin: '\\s*+(("))', beginCaptures: { 1: { name: "string.quoted.double.graphql" }, 2: { name: "punctuation.definition.string.begin.graphql" } }, contentName: "string.quoted.double.graphql", end: `\\s*+(?:(("))|(
2059
+ ))`, endCaptures: { 1: { name: "string.quoted.double.graphql" }, 2: { name: "punctuation.definition.string.end.graphql" }, 3: { name: "invalid.illegal.newline.graphql" } }, patterns: [{ include: "#graphql-string-content" }, { include: "#literal-quasi-embedded" }] }, "graphql-type-definition": { begin: "\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)", beginCaptures: { 1: { name: "variable.graphql" } }, comment: "key (optionalArgs): Type", end: "(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)", endCaptures: { 5: { name: "punctuation.comma.graphql" } }, patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-directive" }, { include: "#graphql-variable-definitions" }, { include: "#graphql-type-object" }, { include: "#graphql-colon" }, { include: "#graphql-input-types" }, { include: "#literal-quasi-embedded" }] }, "graphql-type-interface": { applyEndPatternLast: 1, begin: "\\s*\\b(?:(extends?)?\\b\\s*\\b(type)|(interface)|(input))\\b\\s*([_A-Za-z][_0-9A-Za-z]*)?", captures: { 1: { name: "keyword.type.graphql" }, 2: { name: "keyword.type.graphql" }, 3: { name: "keyword.interface.graphql" }, 4: { name: "keyword.input.graphql" }, 5: { name: "support.type.graphql" } }, end: "(?=.)", name: "meta.type.interface.graphql", patterns: [{ begin: "\\s*\\b(implements)\\b\\s*", beginCaptures: { 1: { name: "keyword.implements.graphql" } }, end: "\\s*(?={)", patterns: [{ captures: { 1: { name: "support.type.graphql" } }, match: "\\s*([_A-Za-z][_0-9A-Za-z]*)" }, { include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-directive" }, { include: "#graphql-ampersand" }, { include: "#graphql-comma" }] }, { include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-directive" }, { include: "#graphql-type-object" }, { include: "#literal-quasi-embedded" }, { include: "#graphql-ignore-spaces" }] }, "graphql-type-object": { begin: "\\s*({)", beginCaptures: { 1: { name: "punctuation.operation.graphql" } }, end: "\\s*(})", endCaptures: { 1: { name: "punctuation.operation.graphql" } }, name: "meta.type.object.graphql", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-object-type" }, { include: "#graphql-type-definition" }, { include: "#literal-quasi-embedded" }] }, "graphql-union": { applyEndPatternLast: 1, begin: "\\s*\\b(union)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)", captures: { 1: { name: "keyword.union.graphql" }, 2: { name: "support.type.graphql" } }, end: "(?=.)", patterns: [{ applyEndPatternLast: 1, begin: "\\s*(=)\\s*([_A-Za-z][_0-9A-Za-z]*)", captures: { 1: { name: "punctuation.assignment.graphql" }, 2: { name: "support.type.graphql" } }, end: "(?=.)", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-skip-newlines" }, { include: "#literal-quasi-embedded" }, { captures: { 1: { name: "punctuation.or.graphql" }, 2: { name: "support.type.graphql" } }, match: "\\s*(\\|)\\s*([_A-Za-z][_0-9A-Za-z]*)" }] }, { include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-skip-newlines" }, { include: "#literal-quasi-embedded" }] }, "graphql-union-mark": { captures: { 1: { name: "punctuation.union.graphql" } }, match: "\\s*(\\|)" }, "graphql-value": { patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-variable-name" }, { include: "#graphql-float-value" }, { include: "#graphql-string-value" }, { include: "#graphql-boolean-value" }, { include: "#graphql-null-value" }, { include: "#graphql-enum-value" }, { include: "#graphql-list-value" }, { include: "#graphql-object-value" }, { include: "#literal-quasi-embedded" }] }, "graphql-variable-assignment": { applyEndPatternLast: 1, begin: "\\s(=)", beginCaptures: { 1: { name: "punctuation.assignment.graphql" } }, end: `(?=[
2060
+ ,)])`, patterns: [{ include: "#graphql-value" }] }, "graphql-variable-definition": { begin: "\\s*(\\$?[_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)", beginCaptures: { 1: { name: "variable.parameter.graphql" } }, comment: "variable: type = value,.... which may be a list", end: "(?=\\s*((\\$?[_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(}|\\))))|\\s*(,)", endCaptures: { 5: { name: "punctuation.comma.graphql" } }, name: "meta.variables.graphql", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-directive" }, { include: "#graphql-colon" }, { include: "#graphql-input-types" }, { include: "#graphql-variable-assignment" }, { include: "#literal-quasi-embedded" }, { include: "#graphql-skip-newlines" }] }, "graphql-variable-definitions": { begin: "\\s*(\\()", captures: { 1: { name: "meta.brace.round.graphql" } }, end: "\\s*(\\))", patterns: [{ include: "#graphql-comment" }, { include: "#graphql-description-docstring" }, { include: "#graphql-description-singleline" }, { include: "#graphql-variable-definition" }, { include: "#literal-quasi-embedded" }] }, "graphql-variable-name": { captures: { 1: { name: "variable.graphql" } }, match: "\\s*(\\$[_A-Za-z][_0-9A-Za-z]*)" }, "native-interpolation": { begin: "\\s*(\\${)", beginCaptures: { 1: { name: "keyword.other.substitution.begin" } }, end: "(})", endCaptures: { 1: { name: "keyword.other.substitution.end" } }, name: "native.interpolation", patterns: [{ include: "source.js" }, { include: "source.ts" }, { include: "source.js.jsx" }, { include: "source.tsx" }] } }, scopeName: "source.graphql", embeddedLangs: ["javascript", "typescript", "jsx", "tsx"], aliases: ["gql"] });
2061
+ var F = [
2062
+ ...e,
2063
+ ...a,
2064
+ ...c,
2065
+ ...l,
2066
+ G
2067
+ ];
2068
+ const Z = Object.freeze({ displayName: "HTML (Derivative)", injections: { "R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)": { comment: "Uses R: to ensure this matches after any other injections.", patterns: [{ match: "<", name: "invalid.illegal.bad-angle-bracket.html" }] } }, name: "html-derivative", patterns: [{ include: "text.html.basic#core-minus-invalid" }, { begin: "(</?)(\\w[^\\s>]*)(?<!/)", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.html" }, 2: { name: "entity.name.tag.html" } }, end: "((?: ?/)?>)", endCaptures: { 1: { name: "punctuation.definition.tag.end.html" } }, name: "meta.tag.other.unrecognized.html.derivative", patterns: [{ include: "text.html.basic#attribute" }] }], scopeName: "text.html.derivative", embeddedLangs: ["html"] });
2069
+ var N = [
2070
+ ...n,
2071
+ Z
2072
+ ];
2073
+ const E = Object.freeze({ fileTypes: [], injectTo: ["text.html.markdown"], injectionSelector: "L:text.html.markdown", name: "markdown-vue", patterns: [{ include: "#vue-code-block" }], repository: { "vue-code-block": { begin: "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vue)((\\s+|:|,|\\{|\\?)[^`~]*)?$)", beginCaptures: { 3: { name: "punctuation.definition.markdown" }, 4: { name: "fenced_code.block.language.markdown" }, 5: { name: "fenced_code.block.language.attributes.markdown" } }, end: "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", endCaptures: { 3: { name: "punctuation.definition.markdown" } }, name: "markup.fenced_code.block.markdown", patterns: [{ include: "source.vue" }] } }, scopeName: "markdown.vue.codeblock" });
2074
+ var S = [
2075
+ E
2076
+ ];
2077
+ const B = Object.freeze({ fileTypes: [], injectTo: ["source.vue", "text.html.markdown", "text.html.derivative", "text.pug"], injectionSelector: "L:meta.tag -meta.attribute -meta.ng-binding -entity.name.tag.pug -attribute_value -source.tsx -source.js.jsx, L:meta.element -meta.attribute", name: "vue-directives", patterns: [{ include: "source.vue#vue-directives" }], scopeName: "vue.directives" });
2078
+ var T = [
2079
+ B
2080
+ ];
2081
+ const O = Object.freeze({ fileTypes: [], injectTo: ["source.vue", "text.html.markdown", "text.html.derivative", "text.pug"], injectionSelector: "L:text.pug -comment -string.comment, L:text.html.derivative -comment.block, L:text.html.markdown -comment.block", name: "vue-interpolations", patterns: [{ include: "source.vue#vue-interpolations" }], scopeName: "vue.interpolations" });
2082
+ var D = [
2083
+ O
2084
+ ];
2085
+ const I = Object.freeze({ fileTypes: [], injectTo: ["source.vue"], injectionSelector: "L:source.css -comment, L:source.postcss -comment, L:source.sass -comment, L:source.stylus -comment", name: "vue-sfc-style-variable-injection", patterns: [{ include: "#vue-sfc-style-variable-injection" }], repository: { "vue-sfc-style-variable-injection": { begin: "\\b(v-bind)\\s*\\(", beginCaptures: { 1: { name: "entity.name.function" } }, end: "\\)", name: "vue.sfc.style.variable.injection.v-bind", patterns: [{ begin: `('|")`, beginCaptures: { 1: { name: "punctuation.definition.tag.begin.html" } }, end: "(\\1)", endCaptures: { 1: { name: "punctuation.definition.tag.end.html" } }, name: "source.ts.embedded.html.vue", patterns: [{ include: "source.js" }] }, { include: "source.js" }] } }, scopeName: "vue.sfc.style.variable.injection", embeddedLangs: ["javascript"] });
2086
+ var P = [
2087
+ ...e,
2088
+ I
2089
+ ];
2090
+ const L = Object.freeze({ displayName: "Vue", name: "vue", patterns: [{ include: "text.html.basic#comment" }, { include: "#self-closing-tag" }, { begin: "(<)", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" } }, end: "(>)", endCaptures: { 1: { name: "punctuation.definition.tag.end.html.vue" } }, patterns: [{ begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)md\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "text.html.markdown", patterns: [{ include: "text.html.markdown" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)html\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "text.html.derivative", patterns: [{ include: "#html-stuff" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)pug\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "text.pug", patterns: [{ include: "text.pug" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)stylus\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.stylus", patterns: [{ include: "source.stylus" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)postcss\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.postcss", patterns: [{ include: "source.postcss" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)sass\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.sass", patterns: [{ include: "source.sass" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)css\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.css", patterns: [{ include: "source.css" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)scss\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.css.scss", patterns: [{ include: "source.css.scss" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)less\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.css.less", patterns: [{ include: "source.css.less" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)js\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.js", patterns: [{ include: "source.js" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)ts\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.ts", patterns: [{ include: "source.ts" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)jsx\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.js.jsx", patterns: [{ include: "source.js.jsx" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)tsx\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.tsx", patterns: [{ include: "source.tsx" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)coffee\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.coffee", patterns: [{ include: "source.coffee" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)json\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.json", patterns: [{ include: "source.json" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)jsonc\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.json.comments", patterns: [{ include: "source.json.comments" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)json5\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.json5", patterns: [{ include: "source.json5" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)yaml\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.yaml", patterns: [{ include: "source.yaml" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)toml\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.toml", patterns: [{ include: "source.toml" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)(gql|graphql)\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.graphql", patterns: [{ include: "source.graphql" }] }] }, { begin: `([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)vue\\b\\2)`, beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "source.vue", patterns: [{ include: "source.vue" }] }] }, { begin: "(template)\\b", beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/template\\b)", name: "text.html.derivative", patterns: [{ include: "#html-stuff" }] }] }, { begin: "(script)\\b", beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/script\\b)", name: "source.js", patterns: [{ include: "source.js" }] }] }, { begin: "(style)\\b", beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/style\\b)", name: "source.css", patterns: [{ include: "source.css" }] }] }, { begin: "([a-zA-Z0-9:-]+)", beginCaptures: { 1: { name: "entity.name.tag.$1.html.vue" } }, end: "(</)(\\1)\\s*(?=>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, patterns: [{ include: "#tag-stuff" }, { begin: "(?<=>)", end: "(?=<\\/)", name: "text" }] }] }], repository: { "html-stuff": { patterns: [{ include: "#template-tag" }, { include: "text.html.derivative" }, { include: "text.html.basic" }] }, "self-closing-tag": { begin: "(<)([a-zA-Z0-9:-]+)(?=([^>]+/>))", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, end: "(/>)", endCaptures: { 1: { name: "punctuation.definition.tag.end.html.vue" } }, name: "self-closing-tag", patterns: [{ include: "#tag-stuff" }] }, "tag-stuff": { begin: "\\G", end: "(?=/>)|(>)", endCaptures: { 1: { name: "punctuation.definition.tag.end.html.vue" } }, name: "meta.tag-stuff", patterns: [{ include: "#vue-directives" }, { include: "text.html.basic#attribute" }] }, "template-tag": { patterns: [{ include: "#template-tag-1" }, { include: "#template-tag-2" }] }, "template-tag-1": { begin: "(<)(template)\\b(>)", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" }, 3: { name: "punctuation.definition.tag.end.html.vue" } }, end: "(/?>)", endCaptures: { 1: { name: "punctuation.definition.tag.end.html.vue" } }, name: "meta.template-tag.start", patterns: [{ begin: "\\G", end: "(?=/>)|((</)(template)\\b)", endCaptures: { 2: { name: "punctuation.definition.tag.begin.html.vue" }, 3: { name: "entity.name.tag.$3.html.vue" } }, name: "meta.template-tag.end", patterns: [{ include: "#html-stuff" }] }] }, "template-tag-2": { begin: "(<)(template)\\b", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.html.vue" }, 2: { name: "entity.name.tag.$2.html.vue" } }, end: "(/?>)", endCaptures: { 1: { name: "punctuation.definition.tag.end.html.vue" } }, name: "meta.template-tag.start", patterns: [{ begin: "\\G", end: "(?=/>)|((</)(template)\\b)", endCaptures: { 2: { name: "punctuation.definition.tag.begin.html.vue" }, 3: { name: "entity.name.tag.$3.html.vue" } }, name: "meta.template-tag.end", patterns: [{ include: "#tag-stuff" }, { include: "#html-stuff" }] }] }, "vue-directives": { patterns: [{ include: "#vue-directives-control" }, { include: "#vue-directives-style-attr" }, { include: "#vue-directives-original" }, { include: "#vue-directives-generic-attr" }] }, "vue-directives-control": { begin: "(v-for)|(v-if|v-else-if|v-else)", captures: { 1: { name: "keyword.control.loop.vue" }, 2: { name: "keyword.control.conditional.vue" } }, end: "(?=\\s*+[^=\\s])", name: "meta.attribute.directive.control.vue", patterns: [{ include: "#vue-directives-expression" }] }, "vue-directives-expression": { patterns: [{ begin: "(=)\\s*('|\"|`)", beginCaptures: { 1: { name: "punctuation.separator.key-value.html.vue" }, 2: { name: "punctuation.definition.string.begin.html.vue" } }, end: "(\\2)", endCaptures: { 1: { name: "punctuation.definition.string.end.html.vue" } }, patterns: [{ begin: "(?<=('|\"|`))", end: "(?=\\1)", name: "source.ts.embedded.html.vue", patterns: [{ include: "source.ts#expression" }] }] }, { begin: "(=)\\s*(?=[^'\"`])", beginCaptures: { 1: { name: "punctuation.separator.key-value.html.vue" } }, end: "(?=(\\s|>|\\/>))", patterns: [{ begin: "(?=[^'\"`])", end: "(?=(\\s|>|\\/>))", name: "source.ts.embedded.html.vue", patterns: [{ include: "source.ts#expression" }] }] }] }, "vue-directives-generic-attr": { begin: "\\b(generic)\\s*(=)", captures: { 1: { name: "entity.other.attribute-name.html.vue" }, 2: { name: "punctuation.separator.key-value.html.vue" } }, end: `(?<='|")`, name: "meta.attribute.generic.vue", patterns: [{ begin: `('|")`, beginCaptures: { 1: { name: "punctuation.definition.string.begin.html.vue" } }, comment: "https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020", end: "(\\1)", endCaptures: { 1: { name: "punctuation.definition.string.end.html.vue" } }, name: "meta.type.parameters.vue", patterns: [{ include: "source.ts#comment" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.ts" }, { include: "source.ts#type" }, { include: "source.ts#punctuation-comma" }, { match: "(=)(?!>)", name: "keyword.operator.assignment.ts" }] }] }, "vue-directives-original": { begin: "(?:\\b(v-)|([:\\.])|(@)|(#))(\\[?)([\\w\\-]*)(\\]?)(?:\\.([\\w\\-]*))*", beginCaptures: { 1: { name: "entity.other.attribute-name.html.vue" }, 2: { name: "punctuation.attribute-shorthand.bind.html.vue" }, 3: { name: "punctuation.attribute-shorthand.event.html.vue" }, 4: { name: "punctuation.attribute-shorthand.slot.html.vue" }, 5: { name: "punctuation.separator.key-value.html.vue" }, 6: { name: "entity.other.attribute-name.html.vue" }, 7: { name: "punctuation.separator.key-value.html.vue" }, 8: { name: "entity.other.attribute-name.html.vue" }, 9: { name: "punctuation.separator.key-value.html.vue" } }, end: "(?=\\s*+[^=\\s])", endCaptures: { 1: { name: "punctuation.definition.string.end.html.vue" } }, name: "meta.attribute.directive.vue", patterns: [{ include: "#vue-directives-expression" }] }, "vue-directives-style-attr": { begin: "\\b(style)\\s*(=)", captures: { 1: { name: "entity.other.attribute-name.html.vue" }, 2: { name: "punctuation.separator.key-value.html.vue" } }, end: `(?<='|")`, name: "meta.attribute.style.vue", patterns: [{ begin: `('|")`, beginCaptures: { 1: { name: "punctuation.definition.string.begin.html.vue" } }, comment: "Copy from source.css#rule-list-innards", end: "(\\1)", endCaptures: { 1: { name: "punctuation.definition.string.end.html.vue" } }, name: "source.css.embedded.html.vue", patterns: [{ include: "source.css#comment-block" }, { include: "source.css#escapes" }, { include: "source.css#font-features" }, { match: `(?x) (?<![\\w-])
2091
+ --
2092
+ (?:[-a-zA-Z_] | [^\\x00-\\x7F])
2093
+ (?:[-a-zA-Z0-9_] | [^\\x00-\\x7F]
2094
+ |\\\\(?:[0-9a-fA-F]{1,6}|.)
2095
+ )*`, name: "variable.css" }, { begin: "(?<![-a-zA-Z])(?=[-a-zA-Z])", end: "$|(?![-a-zA-Z])", name: "meta.property-name.css", patterns: [{ include: "source.css#property-names" }] }, { begin: "(:)\\s*", beginCaptures: { 1: { name: "punctuation.separator.key-value.css" } }, comment: "Modify end to fix #199. TODO: handle ' character.", contentName: "meta.property-value.css", end: `\\s*(;)|\\s*(?='|")`, endCaptures: { 1: { name: "punctuation.terminator.rule.css" } }, patterns: [{ include: "source.css#comment-block" }, { include: "source.css#property-values" }] }, { match: ";", name: "punctuation.terminator.rule.css" }] }] }, "vue-interpolations": { patterns: [{ begin: "(\\{\\{)", beginCaptures: { 1: { name: "punctuation.definition.interpolation.begin.html.vue" } }, end: "(\\}\\})", endCaptures: { 1: { name: "punctuation.definition.interpolation.end.html.vue" } }, name: "expression.embedded.vue", patterns: [{ begin: "\\G", end: "(?=\\}\\})", name: "source.ts.embedded.html.vue", patterns: [{ include: "source.ts#expression" }] }] }] } }, scopeName: "source.vue", embeddedLangs: ["html", "markdown", "pug", "stylus", "sass", "css", "scss", "less", "javascript", "typescript", "jsx", "tsx", "coffee", "json", "jsonc", "json5", "yaml", "toml", "graphql", "html-derivative", "markdown-vue", "vue-directives", "vue-interpolations", "vue-sfc-style-variable-injection"] });
2096
+ var W = [
2097
+ ...n,
2098
+ ...d,
2099
+ ..._,
2100
+ ...r,
2101
+ ...s,
2102
+ ...t,
2103
+ ...i,
2104
+ ...$,
2105
+ ...e,
2106
+ ...a,
2107
+ ...c,
2108
+ ...l,
2109
+ ...o,
2110
+ ...u,
2111
+ ...v,
2112
+ ...q,
2113
+ ...m,
2114
+ ...A,
2115
+ ...F,
2116
+ ...N,
2117
+ ...S,
2118
+ ...T,
2119
+ ...D,
2120
+ ...P,
2121
+ L
2122
+ ];
2123
+ export {
2124
+ W as default
2125
+ };