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.
- package/client/assets/index-DhLLQ7AJ.css +1 -0
- package/client/assets/{index-CDBAuZCi.js → index-I7cYn7yD.js} +112 -113
- package/client/assets/{unocss-runtime-C2aH1Jer.js → unocss-runtime-DET60yni.js} +2 -2
- package/client/assets/{vue-yccoFuXf-q8nGVquG.js → vue-CCacahFR-CRnm5w84.js} +2 -2
- package/client/assets/{vue-CMvPPucx.js → vue-CpF6k_42.js} +2 -2
- package/client/assets/{vue-html-PWeNQaIl-ChlIBMe8.js → vue-html-Cae35ipv-514FnJ3-.js} +1 -1
- package/client/assets/{vue-html-DxgvOoVJ.js → vue-html-aHkQr8H2.js} +1 -1
- package/client/css-CAzixsid-CEpuX1HY.js +511 -0
- package/client/css-CAzixsid.js +511 -0
- package/client/devtools-panel.css +1 -0
- package/client/devtools-panel.js +92963 -0
- package/client/diff-Bo5iyMQ2-Bo5iyMQ2.js +7 -0
- package/client/diff-Bo5iyMQ2.js +7 -0
- package/client/html-BZB5lEhh-B74zAnWx.js +84 -0
- package/client/html-BZB5lEhh.js +84 -0
- package/client/index.html +2 -2
- package/client/javascript-DqVBMyXe-DqVBMyXe.js +705 -0
- package/client/javascript-DqVBMyXe.js +705 -0
- package/client/json-B12k4-6m-B12k4-6m.js +31 -0
- package/client/json-B12k4-6m.js +31 -0
- package/client/shellscript-C_gmBC5P-C_gmBC5P.js +7 -0
- package/client/shellscript-C_gmBC5P.js +7 -0
- package/client/typescript-AEg-ehu7-AEg-ehu7.js +672 -0
- package/client/typescript-AEg-ehu7.js +672 -0
- package/client/unocss-runtime-CysDdJDT.js +2041 -0
- package/client/vitesse-dark-CkUHDarG-CkUHDarG.js +685 -0
- package/client/vitesse-dark-CkUHDarG.js +685 -0
- package/client/vitesse-light-K81-viQS-K81-viQS.js +683 -0
- package/client/vitesse-light-K81-viQS.js +683 -0
- package/client/vue-CCacahFR-DGkPCBY5.js +2125 -0
- package/client/vue-CCacahFR.js +2125 -0
- package/client/vue-apis-Ba6Wxigc.js +1152 -0
- package/client/vue-html-Cae35ipv-C0hVhFzJ.js +11 -0
- package/client/vue-html-Cae35ipv.js +11 -0
- package/client/yaml-PGla5xPP-HJurM_FJ.js +206 -0
- package/client/yaml-PGla5xPP.js +206 -0
- package/dist/vite.cjs +140 -114
- package/dist/vite.d.cts +3 -17
- package/dist/vite.d.mts +3 -17
- package/dist/vite.d.ts +3 -17
- package/dist/vite.mjs +141 -115
- package/package.json +6 -6
- package/src/overlay/devtools-overlay.css +1 -1
- package/src/overlay/devtools-overlay.js +2 -2
- package/src/overlay/devtools-overlay.mjs +8 -0
- package/src/overlay.js +10 -4
- package/client/assets/index-Cka_f-Nd.css +0 -1
|
@@ -0,0 +1,2125 @@
|
|
|
1
|
+
import n from "./html-BZB5lEhh-B74zAnWx.js";
|
|
2
|
+
import e from "./javascript-DqVBMyXe-DqVBMyXe.js";
|
|
3
|
+
import t from "./css-CAzixsid-CEpuX1HY.js";
|
|
4
|
+
import a from "./typescript-AEg-ehu7-AEg-ehu7.js";
|
|
5
|
+
import u from "./json-B12k4-6m-B12k4-6m.js";
|
|
6
|
+
import m from "./yaml-PGla5xPP-HJurM_FJ.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/>]*(\\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
|
+
};
|