@vue/devtools-electron 7.4.5 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,128 +0,0 @@
1
- import n from "./html-G4l_pga6.js";
2
- import e from "./javascript-Cb-dipD1.js";
3
- import t from "./css-mL5aELmx.js";
4
- import a from "./typescript-zuWlX6el.js";
5
- import l from "./json-BIlH1wF4.js";
6
- import d from "./yaml-Ckl1MHis.js";
7
- const m = 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]+|#\\d+|#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: "(?<open>(\\*\\*(?=\\w)|(?<!\\w)\\*\\*|(?<!\\w)\\b__))(?=\\S)(?=(<[^>]*+>|(?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>|\\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+|\\[((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+\\](([ ]?\\[[^\\]]*+\\])|(\\([ \\t]*+<?(.*?)>?[ \\t]*+((?<title>['\"])(.*?)\\k<title>)?\\))))|(?!(?<=\\S)\\k<open>).)++(?<=\\S)(?=__\\b|\\*\\*)\\k<open>)", 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: { applyEndPatternLast: 1, begin: "\\A(?=(-{3,}))", end: "^ {,3}\\1-*[ \\t]*$|^[ \\t]*\\.{3}$", endCaptures: { 0: { name: "punctuation.definition.end.frontmatter" } }, patterns: [{ begin: "\\A(-{3,})(.*)$", beginCaptures: { 1: { name: "punctuation.definition.begin.frontmatter" }, 2: { name: "comment.frontmatter" } }, contentName: "meta.embedded.block.frontmatter", patterns: [{ include: "source.yaml" }], while: "^(?! {,3}\\1-*[ \\t]*$|[ \\t]*\\.{3}$)" }] }, heading: { captures: { 1: { patterns: [{ captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.6.markdown" }, { captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.5.markdown" }, { captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.4.markdown" }, { captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.3.markdown" }, { captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.2.markdown" }, { captures: { 1: { name: "punctuation.definition.heading.markdown" }, 2: { name: "entity.name.section.markdown", patterns: [{ include: "#inline" }, { include: "text.html.derivative" }] }, 3: { name: "punctuation.definition.heading.markdown" } }, match: "(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$", name: "heading.1.markdown" }] } }, match: "(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$", name: "markup.heading.markdown" }, "heading-setext": { patterns: [{ match: "^(={3,})(?=[ \\t]*$\\n?)", name: "markup.heading.setext.1.markdown" }, { match: "^(-{3,})(?=[ \\t]*$\\n?)", name: "markup.heading.setext.2.markdown" }] }, html: { patterns: [{ begin: "(^|\\G)\\s*(<!--)", captures: { 1: { name: "punctuation.definition.comment.html" }, 2: { name: "punctuation.definition.comment.html" } }, end: "(-->)", name: "comment.block.html" }, { begin: "(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?</(script|style|pre)>))", end: "(?i)(.*)((</)(script|style|pre)(>))", endCaptures: { 1: { patterns: [{ include: "text.html.derivative" }] }, 2: { name: "meta.tag.structure.$4.end.html" }, 3: { name: "punctuation.definition.tag.begin.html" }, 4: { name: "entity.name.tag.html" }, 5: { name: "punctuation.definition.tag.end.html" } }, patterns: [{ begin: "(\\s*|$)", patterns: [{ include: "text.html.derivative" }], while: "(?i)^(?!.*</(script|style|pre)>)" }] }, { begin: "(?i)(^|\\G)\\s*(?=</?[a-zA-Z]+[^\\s/&gt;]*(\\s|$|/?>))", patterns: [{ include: "text.html.derivative" }], while: "^(?!\\s*$)" }, { begin: "(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|</[a-zA-Z0-9\\-]>)\\s*$)", patterns: [{ include: "text.html.derivative" }], while: "^(?!\\s*$)" }] }, "image-inline": { captures: { 1: { name: "punctuation.definition.link.description.begin.markdown" }, 2: { name: "string.other.link.description.markdown" }, 4: { name: "punctuation.definition.link.description.end.markdown" }, 5: { name: "punctuation.definition.metadata.markdown" }, 7: { name: "punctuation.definition.link.markdown" }, 8: { name: "markup.underline.link.image.markdown" }, 9: { name: "punctuation.definition.link.markdown" }, 10: { name: "markup.underline.link.image.markdown" }, 12: { name: "string.other.link.description.title.markdown" }, 13: { name: "punctuation.definition.string.begin.markdown" }, 14: { name: "punctuation.definition.string.end.markdown" }, 15: { name: "string.other.link.description.title.markdown" }, 16: { name: "punctuation.definition.string.begin.markdown" }, 17: { name: "punctuation.definition.string.end.markdown" }, 18: { name: "string.other.link.description.title.markdown" }, 19: { name: "punctuation.definition.string.begin.markdown" }, 20: { name: "punctuation.definition.string.end.markdown" }, 21: { name: "punctuation.definition.metadata.markdown" } }, match: `(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\()[ \\t]*((<)((?:\\\\[<>]|[^<>\\n])*)(>)|((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*))[ \\t]*(?:((\\().+?(\\)))|((").+?("))|((').+?(')))?\\s*(\\))`, 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: "(?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S)(?=(<[^>]*+>|(?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>|\\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+|\\[((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+\\](([ ]?\\[[^\\]]*+\\])|(\\([ \\t]*+<?(.*?)>?[ \\t]*+((?<title>['\"])(.*?)\\k<title>)?\\))))|\\k<open>\\k<open>|(?!(?<=\\S)\\k<open>).)++(?<=\\S)(?=_\\b|\\*)\\k<open>)", 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: `\\s*(\\[)([^]]+?)(\\])(:)[ \\t]*(?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?))[ \\t]*(?:((\\().+?(\\)))|((").+?("))|((').+?(')))?\\s*$`, 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: `(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\()[ \\t]*((<)((?:\\\\[<>]|[^<>\\n])*)(>)|((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*))[ \\t]*(?:((\\()[^()]*(\\)))|((")[^"]*("))|((')[^']*(')))?\\s*(\\))`, 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|\\d+\\.\\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})(\\d+[\\.\\)])([ \\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", "regexp", "rust", "scala", "shellscript", "typescript", "tsx", "csharp", "fsharp", "dart", "handlebars", "log", "erlang", "elixir", "latex", "bibtex", "html-derivative"] });
8
- var p = [
9
- m
10
- ];
11
- 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)|
12
- *):[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: "(-|\\.)?\\d+(\\.\\d+)?", 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" });
13
- var s = [
14
- b
15
- ];
16
- 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: "(?<=&)((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\$|})+)(?=$|[\\s,.\\#)\\[:{>+~|]|/\\*)", 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: `(?i)(\\[)\\s*((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\.?\\$|})+?)(?:\\s*([~|^$*]?=)\\s*(?:((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\.?\\$|})+)|((")(.*?)("))|((')(.*?)('))))?\\s*(\\])`, 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: "(\\.)((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\.?\\$|})+)(?=$|[\\s,\\#)\\[:{>+~|]|\\.[^$]|/\\*|;)", 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: "(\\#)((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\.?\\$|})+)(?=$|[\\s,\\#)\\[:{>+~|]|\\.[^$]|/\\*)", 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: "(%)((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\.\\$|\\$|})+)(?=;|$|[\\s,\\#)\\[:{>+~|]|\\.[^$]|/\\*)", 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"] });
17
- var i = [
18
- ...t,
19
- g
20
- ];
21
- 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: "(?<![\\w-])--(?:[-a-zA-Z_]|[^\\x00-\\x7F])(?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))*", 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: "--(?:[-a-zA-Z_]|[^\\x00-\\x7F])(?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))*", 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: "(?<!\\w|-)(?:(?:-|\\+)?(?:\\d+(?:\\.\\d+)?)|(?:\\.\\d+))((?: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: "(?:\\G\\s*(?:(-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)|(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)|([a-zA-Z_-][a-zA-Z0-9_-]*))(?!([^\\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\\\\[^\0-]][_a-z0-9\\-\\\\[^\0-]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[^\0-]][_a-z0-9\\-\\\\[^\0-]]*)|((?>(['"])(?:[^\\\\]|\\\\.)*?(\\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"] });
22
- var r = [
23
- f
24
- ];
25
- const y = 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: "(?<=\\s|^)((@)?[a-zA-Z_$][\\w$]*)\\s*([:=])\\s*(?=(\\([^\\(\\)]*\\)\\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: `(?<=\\s|^)(?:((')([^']*?)('))|((")([^"]*?)(")))\\s*([:=])\\s*(?=(\\([^\\(\\)]*\\)\\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\\d+[\\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: `(@)?([\\w$]+)\\s*(?=\\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: "\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|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: "\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|Before(cut|deactivate|unload|update|paste|print|editfocus|activate)|Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\b", name: "support.function.event-handler.coffee" }, { match: "\\b(shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|sup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|Month|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|createEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|releaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|Time|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\b", name: "support.function.coffee" }, { match: "\\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|appendChild|appendData|before|blur|canPlayType|captureStream|caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|cloneContents|cloneNode|cloneRange|close|closest|collapse|compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|createAttributeNS|createCaption|createCDATASection|createComment|createContextualFragment|createDocument|createDocumentFragment|createDocumentType|createElement|createElementNS|createEntityReference|createEvent|createExpression|createHTMLDocument|createNodeIterator|createNSResolver|createProcessingInstruction|createRange|createShadowRoot|createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|getClientRects|getContext|getDestinationInsertionPoints|getElementById|getElementsByClassName|getElementsByName|getElementsByTagName|getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|previousSibling|probablySupportsContext|queryCommandEnabled|queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|querySelector|querySelectorAll|registerContentHandler|registerElement|registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|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: "(?<!\\$)(?:(?:\\b\\d+(\\.)\\d+[eE][+-]?\\d+\\b)|(?:\\b\\d+(\\.)[eE][+-]?\\d+\\b)|(?:\\B(\\.)\\d+[eE][+-]?\\d+\\b)|(?:\\b\\d+[eE][+-]?\\d+\\b)|(?:\\b\\d+(\\.)\\d+\\b)|(?:\\b\\d+(?=\\.{2,3}))|(?:\\b\\d+(\\.)\\B)|(?:\\B(\\.)\\d+\\b)|(?:\\b\\d+\\b(?!\\.)))(?!\\$)" }] }, 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: "\\b(?<![\\.\\$])(?:(and|or|not)|(is|isnt))(?!\\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*(\\d[\\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"] });
26
- var o = [
27
- ...e,
28
- y
29
- ];
30
- const h = 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]+|#\\d+|#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: "(-|((\\w+)\\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"] });
31
- var _ = [
32
- ...e,
33
- ...t,
34
- ...s,
35
- ...i,
36
- ...r,
37
- ...o,
38
- ...n,
39
- h
40
- ];
41
- 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" }, "arbitrary-repetition": { captures: { 1: { name: "punctuation.definition.arbitrary-repetition.less" } }, match: "\\s*(?:(,))" }, "at-charset": { begin: "\\s*((@)charset\\b)\\s*", beginCaptures: { 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-container": { begin: "(?=\\s*@container)", end: "\\s*(\\})", endCaptures: { 1: { name: "punctuation.definition.block.end.less" } }, patterns: [{ begin: "((@)container)", beginCaptures: { 1: { name: "keyword.control.at-rule.container.less" }, 2: { name: "punctuation.definition.keyword.less" }, 3: { name: "support.constant.container.less" } }, end: "(?=\\{)", name: "meta.at-rule.container.less", patterns: [{ begin: "\\s*(?=[^{;])", end: "\\s*(?=[{;])", patterns: [{ match: "\\b(not|and|or)\\b", name: "keyword.operator.comparison.less" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.at-rule.container-query.less", patterns: [{ captures: { 1: { name: "support.type.property-name.less" } }, match: "\\b(aspect-ratio|block-size|height|inline-size|orientation|width)\\b", name: "support.constant.size-feature.less" }, { match: "((<|>)=?)|=|\\/", name: "keyword.operator.comparison.less" }, { match: ":", name: "punctuation.separator.key-value.less" }, { match: "portrait|landscape", name: "support.constant.property-value.less" }, { include: "#numeric-values" }, { match: "\\/", name: "keyword.operator.arithmetic.less" }, { include: "#var-function" }, { include: "#less-variables" }, { include: "#less-variable-interpolation" }] }, { include: "#style-function" }, { match: "--|(?:-?(?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R]))))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*", name: "variable.parameter.container-name.css" }, { include: "#arbitrary-repetition" }, { include: "#less-variables" }] }] }, { begin: "\\s*(\\{)", beginCaptures: { 1: { name: "punctuation.definition.block.begin.less" } }, end: "(?=\\})", patterns: [{ include: "#rule-list-body" }, { include: "$self" }] }] }, "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*(?=\\{|$)", beginCaptures: { 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*(?=\\{|$)", beginCaptures: { 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*((@)keyframes)(?=.*?\\{)", beginCaptures: { 1: { name: "keyword.control.at-rule.keyframe.less" }, 2: { name: "punctuation.definition.keyword.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)|((?:\\.\\d+|\\d+(?:\\.\\d*)?)(%)))\\s*,?\\s*" }, { include: "$self" }] }, { begin: "\\s*(?=[^{;])", end: "\\s*(?=\\{)", name: "meta.at-rule.keyframe.less", patterns: [{ include: "#keyframe-name" }, { include: "#arbitrary-repetition" }] }] }, "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-container" }, { 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" }] }, "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: "\\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: "#fit-content-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" }, { include: "#relative-color" }] }] }, "color-adjuster-operators": { match: "[\\-\\+*](?=\\s+)", name: "keyword.operator.less" }, "color-functions": { patterns: [{ begin: "\\b(rgba?)(?=\\()", beginCaptures: { 1: { name: "support.function.color.less" } }, comment: "rgb(), rgba()", 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: "#var-function" }, { include: "#comma-delimiter" }, { include: "#value-separator" }, { include: "#percentage-type" }, { include: "#number-type" }] }] }, { begin: "\\b(hsla|hsl|hwb|oklab|oklch|lab|lch)(?=\\()", beginCaptures: { 1: { name: "support.function.color.less" } }, comment: "hsla, hsl, hwb, oklab, oklch, lab, lch", 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: "#less-strings" }, { include: "#less-variables" }, { include: "#var-function" }, { include: "#comma-delimiter" }, { include: "#angle-type" }, { include: "#percentage-type" }, { include: "#number-type" }, { include: "#calc-function" }, { include: "#value-separator" }] }] }, { begin: "\\b(light-dark)(?=\\()", beginCaptures: { 1: { name: "support.function.color.less" } }, comment: "light-dark()", 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-color-functions" }] }, "color-values": { patterns: [{ include: "#color-functions" }, { include: "#less-functions" }, { include: "#less-variables" }, { include: "#var-function" }, { 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" }, { include: "#relative-color" }] }, "comma-delimiter": { captures: { 1: { name: "punctuation.separator.less" } }, match: "\\s*(,)\\s*" }, "comment-block": { patterns: [{ begin: "/\\*", beginCaptures: { 0: { name: "punctuation.definition.comment.less" } }, end: "\\*/", endCaptures: { 0: { name: "punctuation.definition.comment.less" } }, 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" }, { include: "#var-function" }, { 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((?i: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: "#var-function" }, { include: "#literal-string" }, { include: "#comma-delimiter" }, { match: "\\b((?i: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: { 1: { name: "support.function.timing.less" }, 2: { name: "punctuation.definition.group.begin.less" } }, contentName: "meta.group.less", end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ include: "#less-functions" }, { include: "#calc-function" }, { include: "#less-variables" }, { include: "#var-function" }, { 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: "#time-type" }, { include: "#percentage-type" }, { include: "#length-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" }] }] }] }, "fit-content-function": { begin: "\\b(fit-content)(?=\\()", 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: "#var-function" }, { include: "#calc-function" }, { include: "#percentage-type" }, { include: "#length-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" }, "global-property-values": { match: "\\b(?:initial|inherit|unset|revert-layer|revert)\\b", name: "support.constant.property-value.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: "#var-function" }, { 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: "#var-function" }, { 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" }] }, important: { captures: { 1: { name: "punctuation.separator.less" } }, match: "(\\!)\\s*important", name: "keyword.other.important.less" }, "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": { patterns: [{ captures: { 1: { name: "keyword.other.unit.less" } }, match: "(?:[-+]?)(?:\\d+\\.\\d+|\\.?\\d+)(?:[eE][-+]?\\d+)?(em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|m|q|in|pt|pc|px|fr|dpi|dpcm|dppx|x)", name: "constant.numeric.less" }, { match: "\\b(?:[-+]?)0\\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: "#var-function" }, { 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" } }, comment: "argb()", 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: "#var-function" }, { include: "#color-values" }] }] }, { begin: "\\b(hsva?)(?=\\()", beginCaptures: { 1: { name: "support.function.color.less" } }, comment: "hsva(), hsv()", 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: "#integer-type" }, { include: "#percentage-type" }, { include: "#number-type" }, { include: "#less-strings" }, { include: "#less-variables" }, { include: "#var-function" }, { include: "#calc-function" }, { include: "#comma-delimiter" }] }] }] }, "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: "#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" }, { include: "#property-values" }, { include: "#rule-list-body" }] }, { captures: { 1: { name: "punctuation.terminator.rule.less" } }, match: "(;)|(?=[})])" }] }, "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: "\\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": { patterns: [{ captures: { 1: { name: "punctuation.definition.variable.less" }, 2: { name: "support.other.variable.less" } }, match: "\\s*(@@?)([-\\w]+)", name: "variable.other.readwrite.less" }, { include: "#less-variable-interpolation" }] }, "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: "(--|(?:-?(?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R]))))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*)\\s*(?=[:)])", beginCaptures: { 0: { name: "support.type.property-name.media.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: "#var-function" }, { include: "#length-type" }, { include: "#comma-delimiter" }, { match: "\\b(max-content|min-content)\\b", name: "support.constant.property-value.less" }] }] }, "number-type": { match: "(?:[-+]?)(?:\\d+\\.\\d+|\\.?\\d+)(?:[eE][-+]?\\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+|\\.?\\d+)(?:[eE][-+]?\\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: [{ comment: "align-content, align-items, align-self, justify-content, justify-items, justify-self", match: "\\b(flex-start|flex-end|start|end|space-between|space-around|space-evenly|stretch|baseline|safe|unsafe|legacy|anchor-center|first|last|self-start|self-end)\\b", name: "support.constant.property-value.less" }, { comment: "alignment-baseline", match: "\\b(text-before-edge|before-edge|middle|central|text-after-edge|after-edge|ideographic|alphabetic|hanging|mathematical|top|center|bottom)\\b", name: "support.constant.property-value.less" }, { include: "#global-property-values" }, { include: "#cubic-bezier-function" }, { include: "#steps-function" }, { comment: "animation-composition", match: "\\b(?:replace|add|accumulate)\\b", name: "support.constant.property-value.less" }, { comment: "animation-direction", match: "\\b(?:normal|alternate-reverse|alternate|reverse)\\b", name: "support.constant.property-value.less" }, { comment: "animation-fill-mode", match: "\\b(?:forwards|backwards|both)\\b", name: "support.constant.property-value.less" }, { comment: "animation-iteration-count", match: "\\b(?:infinite)\\b", name: "support.constant.property-value.less" }, { comment: "animation-play-state", match: "\\b(?:running|paused)\\b", name: "support.constant.property-value.less" }, { comment: "animation-range, animation-range-start, animation-range-end", match: "\\b(?:entry-crossing|exit-crossing|entry|exit)\\b", name: "support.constant.property-value.less" }, { comment: "animation-timing-function", match: "\\b(linear|ease-in-out|ease-in|ease-out|ease|step-start|step-end)\\b", name: "support.constant.property-value.less" }, { match: "\\b(absolute|active|add|all-petite-caps|all-small-caps|all-scroll|all|alphabetic|alpha|alternate-reverse|alternate|always|annotation|antialiased|at|autohiding-scrollbar|auto|avoid-column|avoid-page|avoid-region|avoid|background-color|background-image|background-position|background-size|background-repeat|background|backwards|balance|baseline|below|bevel|bicubic|bidi-override|blink|block-line-height|block-start|block-end|block|blur|bolder|bold|border-top-left-radius|border-top-right-radius|border-bottom-left-radius|border-bottom-right-radius|border-end-end-radius|border-end-start-radius|border-start-end-radius|border-start-start-radius|border-block-start-color|border-block-start-style|border-block-start-width|border-block-start|border-block-end-color|border-block-end-style|border-block-end-width|border-block-end|border-block-color|border-block-style|border-block-width|border-block|border-inline-start-color|border-inline-start-style|border-inline-start-width|border-inline-start|border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-end|border-inline-color|border-inline-style|border-inline-width|border-inline|border-top-color|border-top-style|border-top-width|border-top|border-right-color|border-right-style|border-right-width|border-right|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-left-color|border-left-style|border-left-width|border-left|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-image|border-color|border-style|border-width|border-radius|border-collapse|border-spacing|border|both|bottom|box-shadow|box|break-all|break-word|break-spaces|brightness|butt(on)?|capitalize|central|center|char(acter-variant)?|cjk-ideographic|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color-stop|color-burn|color-dodge|color|column-count|column-gap|column-reverse|column-rule-color|column-rule-width|column-rule|column-width|columns|column|common-ligatures|condensed|consider-shifts|contain|content-box|contents?|contextual|contrast|cover|crisp-edges|crispEdges|crop|crosshair|cross|darken|dashed|default|dense|device-width|diagonal-fractions|difference|disabled|discard|discretionary-ligatures|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|drop-shadow|[nsew]{1,4}-resize|ease-in-out|ease-in|ease-out|ease|element|ellipsis|embed|end|EndColorStr|evenodd|exclude-ruby|exclusion|expanded|extra-condensed|extra-expanded|farthest-corner|farthest-side|farthest|fill-box|fill-opacity|fill|filter|fit-content|fixed|flat|flex-basis|flex-end|flex-grow|flex-shrink|flex-start|flexbox|flex|flip|flood-color|font-size-adjust|font-size|font-stretch|font-weight|font|forwards|from-image|from|full-width|gap|geometricPrecision|glyphs|gradient|grayscale|grid-column-gap|grid-column|grid-row-gap|grid-row|grid-gap|grid-height|grid|groove|hand|hanging|hard-light|height|help|hidden|hide|historical-forms|historical-ligatures|horizontal-tb|horizontal|hue|ideographic|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|include-ruby|infinite|inherit|initial|inline-end|inline-size|inline-start|inline-table|inline-line-height|inline-flexbox|inline-flex|inline-box|inline-block|inline|inset|inside|inter-ideograph|inter-word|intersect|invert|isolate|isolation|italic|jis(04|78|83|90)|justify-all|justify|keep-all|larger|large|last|layout|left|letter-spacing|lighten|lighter|lighting-color|linear-gradient|linearRGB|linear|line-edge|line-height|line-through|line|lining-nums|list-item|local|loose|lowercase|lr-tb|ltr|luminosity|luminance|manual|manipulation|margin-bottom|margin-box|margin-left|margin-right|margin-top|margin|marker(-offset|s)?|match-parent|mathematical|max-(content|height|lines|size|width)|medium|middle|min-(content|height|width)|miter|mixed|move|multiply|newspaper|no-change|no-clip|no-close-quote|no-open-quote|no-common-ligatures|no-discretionary-ligatures|no-historical-ligatures|no-contextual|no-drop|no-repeat|none|nonzero|normal|not-allowed|nowrap|oblique|offset-after|offset-before|offset-end|offset-start|offset|oldstyle-nums|opacity|open-quote|optimize(Legibility|Precision|Quality|Speed)|order|ordinal|ornaments|outline-color|outline-offset|outline-width|outline|outset|outside|overline|over-edge|overlay|padding(-bottom|-box|-left|-right|-top|-box)?|page|paint(ed)?|paused|pan-(x|left|right|y|up|down)|perspective-origin|petite-caps|pixelated|pointer|pinch-zoom|pretty|pre(-line|-wrap)?|preserve-3d|preserve-breaks|preserve-spaces|preserve|progid:DXImageTransform\\.Microsoft\\.(Alpha|Blur|dropshadow|gradient|Shadow)|progress|proportional-nums|proportional-width|radial-gradient|recto|region|relative|repeating-linear-gradient|repeating-radial-gradient|repeat-x|repeat-y|repeat|replaced|reset-size|reverse|revert-layer|revert|ridge|right|round|row-gap|row-resize|row-reverse|row|rtl|ruby|running|saturate|saturation|screen|scrollbar|scroll-position|scroll|separate|sepia|scale-down|semi-condensed|semi-expanded|shape-image-threshold|shape-margin|shape-outside|show|sideways-lr|sideways-rl|sideways|simplified|size|slashed-zero|slice|small-caps|smaller|small|smooth|snap|solid|soft-light|space-around|space-between|space|span|sRGB|stable|stacked-fractions|stack|startColorStr|start|static|step-end|step-start|sticky|stop-color|stop-opacity|stretch|strict|stroke-box|stroke-dasharray|stroke-dashoffset|stroke-miterlimit|stroke-opacity|stroke-width|stroke|styleset|style|stylistic|subgrid|subpixel-antialiased|subtract|super|swash|table-caption|table-cell|table-column-group|table-footer-group|table-header-group|table-row-group|table-column|table-row|table|tabular-nums|tb-rl|text((-bottom|-(decoration|emphasis)-color|-indent|-(over|under)-edge|-shadow|-size(-adjust)?|-top)|field)?|thick|thin|titling-caps|titling-case|top|touch|to|traditional|transform-origin|transform-style|transform|ultra-condensed|ultra-expanded|under-edge|underline|unicase|unset|uppercase|upright|use-glyph-orientation|use-script|verso|vertical(-align|-ideographic|-lr|-rl|-text)?|view-box|viewport-fill-opacity|viewport-fill|visibility|visibleFill|visiblePainted|visibleStroke|visible|wait|wavy|weight|whitespace|width|word-spacing|wrap-reverse|wrap-reverse|wrap|xx?-(large|small)|z-index|zero|zoom-in|zoom-out|zoom|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(sans-serif|serif|monospace|fantasy|cursive)\\b(?=\\s*[;,\\n}])", name: "support.constant.font-name.less" }] }, "property-values": { patterns: [{ include: "#comment-block" }, { include: "#builtin-functions" }, { include: "#color-functions" }, { include: "#less-functions" }, { include: "#less-variables" }, { include: "#unicode-range" }, { include: "#numeric-values" }, { include: "#color-values" }, { include: "#property-value-constants" }, { include: "#less-math" }, { include: "#literal-string" }, { include: "#comma-delimiter" }, { include: "#important" }] }, "pseudo-selectors": { patterns: [{ begin: "(:)(dir)(?=\\()", beginCaptures: { 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: [{ match: "ltr|rtl", name: "variable.parameter.dir.less" }, { include: "#less-variables" }] }] }, { begin: "(:)(lang)(?=\\()", beginCaptures: { 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: "#less-variables" }, { include: "#literal-string" }, { include: "#unquoted-string" }] }] }, { begin: "(:)(not)(?=\\()", beginCaptures: { 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))(?=\\()", beginCaptures: { 1: { name: "punctuation.definition.entity.less" }, 2: { name: "entity.other.attribute-name.pseudo-class.less" } }, contentName: "meta.function-call.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: "(?=\\))", name: "meta.group.less", patterns: [{ match: "\\b(even|odd)\\b", name: "keyword.other.pseudo-class.less" }, { captures: { 1: { name: "keyword.operator.arithmetic.less" }, 2: { name: "keyword.other.unit.less" }, 4: { name: "keyword.operator.arithmetic.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|host|has|is|not|where)(?=\\()", beginCaptures: { 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-link|autofill|blank|buffering|checked|current|default|defined|disabled|empty|enabled|first-child|first-of-type|first|focus-visible|focus-within|focus|fullscreen|future|host|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|local-link|link|modal|muted|only-child|only-of-type|optional|out-of-range|past|paused|picture-in-picture|placeholder-shown|playing|popover-open|read-only|read-write|required|right|root|scope|seeking|stalled|target-within|target|user-invalid|user-valid|valid|visited|volume-locked)\\b", name: "meta.function-call.less" }, { begin: "(::?)(highlight|part|state)(?=\\s*(\\())", beginCaptures: { 1: { name: "punctuation.definition.entity.less" } }, comment: "::highlight()", end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "entity.other.attribute-name.pseudo-element.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", patterns: [{ match: "--|(?:-?(?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R]))))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*", name: "variable.parameter.less" }, { include: "#less-variables" }] }] }, { begin: "(::?)slotted(?=\\s*(\\())", beginCaptures: { 1: { name: "punctuation.definition.entity.less" } }, comment: "::slotted()", contentName: "meta.function-call.less", end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "entity.other.attribute-name.pseudo-element.less", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.begin.less" } }, end: "(?=\\))", name: "meta.group.less", patterns: [{ include: "#selectors" }] }] }, { captures: { 1: { name: "punctuation.definition.entity.less" } }, comment: "defined pseudo-elements", match: "(::?)(after|backdrop|before|cue|file-selector-button|first-letter|first-line|grammar-error|marker|placeholder|selection|spelling-error|target-text|view-transition-group|view-transition-image-pair|view-transition-new|view-transition-old|view-transition)\\b", name: "entity.other.attribute-name.pseudo-element.less" }, { captures: { 1: { name: "punctuation.definition.entity.less" }, 2: { name: "meta.namespace.vendor-prefix.less" } }, comment: "other possible pseudo-elements", match: "(::?)(-\\w+-)(--|(?:-?(?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R]))))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*)\\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" }] }] }, "relative-color": { patterns: [{ match: "from", name: "keyword.other.less" }, { match: "\\b[hslawbch]\\b", name: "keyword.other.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" }, { begin: "(?=[-\\w]*?@\\{.*\\}[-\\w]*?\\s*:[^;{(]*(?=[;})]))", end: "(?=\\s*(;)|(?=[})]))", patterns: [{ begin: "(?=[^\\s:])", end: "(?=(((\\+_?)?):)[\\s\\t]*)", name: "support.type.property-name.less", patterns: [{ include: "#less-variable-interpolation" }] }, { begin: "(((\\+_?)?):)(?=[\\s\\t]*)", beginCaptures: { 1: { name: "punctuation.separator.key-value.less" } }, contentName: "support.type.property-name.less", end: "(?=\\s*(;)|(?=[})]))", patterns: [{ include: "#property-values" }] }] }, { begin: "(?=[-a-z])", end: "$|(?![-a-z])", patterns: [{ include: "#custom-property-name" }, { begin: "(-[\\w-]+?-)((?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*)\\b", beginCaptures: { 0: { name: "support.type.property-name.less" }, 1: { name: "meta.namespace.vendor-prefix.less" } }, comment: "vendor-prefixed properties", end: "\\s*(;)|(?=[})])", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, patterns: [{ begin: "(((\\+_?)?):)(?=[\\s\\t]*)", beginCaptures: { 1: { name: "punctuation.separator.key-value.less" } }, contentName: "meta.property-value.less", end: "(?=\\s*(;)|(?=[})]))", patterns: [{ include: "#property-values" }, { match: "[\\w-]+", name: "support.constant.property-value.less" }] }] }, { include: "#filter-function" }, { begin: "\\b(border((-(bottom|top)-(left|right))|((-(start|end)){2}))?-radius|(border-image(?!-)))\\b", beginCaptures: { 0: { name: "support.type.property-name.less" } }, comment: "border-radius and border-image properties utilize a slash as a separator", end: "\\s*(;)|(?=[})])", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, patterns: [{ begin: "(((\\+_?)?):)(?=[\\s\\t]*)", beginCaptures: { 1: { name: "punctuation.separator.key-value.less" } }, contentName: "meta.property-value.less", end: "(?=\\s*(;)|(?=[})]))", patterns: [{ include: "#value-separator" }, { include: "#property-values" }] }] }, { 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-timeline\\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" } }, contentName: "meta.property-value.less", end: "(?=\\s*(;)|(?=[})]))", patterns: [{ include: "#comment-block" }, { include: "#custom-property-name" }, { include: "#scroll-function" }, { include: "#view-function" }, { include: "#property-values" }, { include: "#less-variables" }, { include: "#arbitrary-repetition" }, { include: "#important" }] }] }, { begin: "\\banimation(?:-name)?(?=(?:\\+_?)?:)\\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" } }, contentName: "meta.property-value.less", end: "(?=\\s*(;)|(?=[})]))", patterns: [{ include: "#comment-block" }, { include: "#builtin-functions" }, { include: "#less-functions" }, { include: "#less-variables" }, { include: "#numeric-values" }, { include: "#property-value-constants" }, { 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 string.unquoted.less" }, { include: "#less-math" }, { include: "#arbitrary-repetition" }, { include: "#important" }] }] }, { begin: "\\b(transition(-(property|duration|delay|timing-function))?)\\b", beginCaptures: { 1: { 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" } }, contentName: "meta.property-value.less", end: "(?=\\s*(;)|(?=[})]))", patterns: [{ include: "#time-type" }, { include: "#property-values" }, { include: "#cubic-bezier-function" }, { include: "#steps-function" }, { include: "#arbitrary-repetition" }] }] }, { 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" }, { include: "#arbitrary-repetition" }] }, { 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" }] }, { begin: "\\bcontainer(?:-name)?(?=\\s*?:)", end: "\\s*(;)|(?=[})])", endCaptures: { 1: { name: "punctuation.terminator.rule.less" } }, name: "support.type.property-name.less", patterns: [{ begin: "(((\\+_?)?):)(?=[\\s\\t]*)", beginCaptures: { 1: { name: "punctuation.separator.key-value.less" } }, contentName: "meta.property-value.less", end: "(?=\\s*(;)|(?=[})]))", patterns: [{ match: "\\bdefault\\b", name: "invalid.illegal.property-value.less" }, { include: "#global-property-values" }, { include: "#custom-property-name" }, { contentName: "variable.other.constant.container-name.less", match: "--|(?:-?(?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R]))))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\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}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*", name: "support.constant.property-value.less" }, { include: "#property-values" }] }] }, { match: "\\b(accent-height|align-content|align-items|align-self|alignment-baseline|all|animation-timing-function|animation-range-start|animation-range-end|animation-range|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation-composition|animation|appearance|ascent|aspect-ratio|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-left-radius|border-top-right-radius|border-bottom-left-radius|border-bottom-right-radius|border-end-end-radius|border-end-start-radius|border-start-end-radius|border-start-start-radius|border-block-start-color|border-block-start-style|border-block-start-width|border-block-start|border-block-end-color|border-block-end-style|border-block-end-width|border-block-end|border-block-color|border-block-style|border-block-width|border-block|border-inline-start-color|border-inline-start-style|border-inline-start-width|border-inline-start|border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-end|border-inline-color|border-inline-style|border-inline-width|border-inline|border-top-color|border-top-style|border-top-width|border-top|border-right-color|border-right-style|border-right-width|border-right|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-left-color|border-left-style|border-left-width|border-left|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-image|border-color|border-style|border-width|border-radius|border-collapse|border-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)|container-name|container-type|container|contain-intrinsic-block-size|contain-intrinsic-inline-size|contain-intrinsic-height|contain-intrinsic-size|contain-intrinsic-width|contain|content|counter-(increment|reset)|cursor|[cdf][xy]|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|((column|row)-)?gap|glyph-orientation-(horizontal|vertical)|grid-(area|gap)|grid-auto-(columns|flow|rows)|grid-(column|row)(-(end|gap|start))?|grid-template(-(areas|columns|rows))?|grid|height|hyphens|image-(orientation|rendering|resolution)|inset(-(block|inline))?(-(start|end))?|isolation|justify-content|justify-items|justify-self|kerning|left|letter-spacing|lighting-color|line-(box-contain|break|clamp|height)|list-style(-(image|position|type))?|(margin|padding)(-(bottom|left|right|top)|(-(block|inline)?(-(end|start))?))?|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(-((inline|block)|scrolling|wrap|x|y))?|overscroll-behavior(-block|-(inline|x|y))?|pad(ding(-(bottom|left|right|top))?)?|page(-break-(after|before|inside))?|paint-order|pause(-(after|before))?|perspective(-origin(-(x|y))?)?|pitch(-range)?|place-content|place-self|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|size-adjust|shadow|transform|underline-position|wrap)|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(-collapse)?|widows|width|will-change|word-(break|spacing|wrap)|writing-mode|z-index|zoom)\\b", name: "support.type.property-name.less" }, { match: "\\b(((contain-intrinsic|max|min)-)?(block|inline)?-size)\\b", name: "support.type.property-name.less" }, { include: "$self" }] }, { begin: "\\b((?:(?:\\+_?)?):)([\\s\\t]*)", beginCaptures: { 1: { name: "punctuation.separator.key-value.less" }, 2: { name: "meta.property-value.less" } }, 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" }] }, "scroll-function": { begin: "\\b(scroll)(\\()", beginCaptures: { 1: { name: "support.function.scroll.less" }, 2: { name: "punctuation.definition.group.begin.less" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ match: "root|nearest|self", name: "support.constant.scroller.less" }, { match: "block|inline|x|y", name: "support.constant.axis.less" }, { include: "#less-variables" }, { include: "#var-function" }] }, 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" }, { include: "#important" }] }] }, 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: "\\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-selectors" }, { 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: "\\[", beginCaptures: { 0: { name: "punctuation.section.braces.begin.less" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.section.braces.end.less" } }, 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*", beginCaptures: { 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" }] }] }, { include: "#arbitrary-repetition" }, { 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: { 1: { name: "support.function.timing.less" }, 2: { name: "punctuation.definition.group.begin.less" } }, contentName: "meta.group.less", end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.end.less" } }, name: "meta.function-call.less", patterns: [{ match: "jump-start|jump-end|jump-none|jump-both|start|end", name: "support.constant.step-position.less" }, { include: "#comma-delimiter" }, { include: "#integer-type" }, { include: "#less-variables" }, { include: "#var-function" }, { include: "#calc-function" }] }, "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" }] }, "style-function": { begin: "\\b(style)(?=\\()", beginCaptures: { 0: { name: "support.function.style.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: "#rule-list-body" }] }] }, "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" }] }] }, "value-separator": { captures: { 1: { name: "punctuation.separator.less" } }, match: "\\s*(/)\\s*" }, "var-function": { 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" }, { include: "#property-values" }] }] }, "view-function": { begin: "\\b(view)(?=\\()", beginCaptures: { 1: { name: "support.function.view.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: "block|inline|x|y|auto", name: "support.constant.property-value.less" }, { include: "#percentage-type" }, { include: "#length-type" }, { include: "#less-variables" }, { include: "#var-function" }, { include: "#calc-function" }, { include: "#arbitrary-repetition" }] }] } }, scopeName: "source.css.less" });
42
- var $ = [
43
- x
44
- ];
45
- const k = Object.freeze({ displayName: "JSX", name: "jsx", patterns: [{ include: "#directives" }, { include: "#statements" }, { include: "#shebang" }], repository: { "access-modifier": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.js.jsx" }, "after-operator-block-as-object-literal": { begin: "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^yield|[^\\._$0-9A-Za-z]yield|^throw|[^\\._$0-9A-Za-z]throw|^in|[^\\._$0-9A-Za-z]in|^of|[^\\._$0-9A-Za-z]of|^typeof|[^\\._$0-9A-Za-z]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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?==>)", name: "meta.arrow.js.jsx" }, { begin: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync))?((?<![})!\\]])\\s*(?=((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))", 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|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.boolean.true.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\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: "[_$A-Za-z][_$0-9A-Za-z]*" }, { include: "#type-parameters" }, { include: "#class-or-interface-body" }] }, "class-expression": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))(?=\\s*[_$A-Za-z][_$0-9A-Za-z]*(\\s*\\??\\.\\s*[_$A-Za-z][_$0-9A-Za-z]*)*\\s*)" }, { captures: { 1: { name: "entity.other.inherited-class.js.jsx" } }, match: "([_$A-Za-z][_$0-9A-Za-z]*)" }, { 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.trycatch.js.jsx" }, { captures: { 1: { name: "keyword.control.loop.js.jsx" }, 2: { name: "entity.name.label.js.jsx" } }, match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$A-Za-z][_$0-9A-Za-z]*)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.loop.js.jsx" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 0: { name: "keyword.control.flow.js.jsx" } }, end: "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", patterns: [{ include: "#expression" }] }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.switch.js.jsx" }, { include: "#if-statement" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.conditional.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.with.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.js.jsx" }] }, decorator: { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", beginCaptures: { 0: { name: "punctuation.decorator.js.jsx" } }, end: "(?=\\s)", name: "meta.decorator.js.jsx", patterns: [{ include: "#expression" }] }, "destructuring-const": { patterns: [{ begin: "(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\{)", end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.object-binding-pattern-variable.js.jsx", patterns: [{ include: "#object-binding-pattern-const" }, { include: "#type-annotation" }, { include: "#comment" }] }, { begin: "(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\[)", end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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*)?([_$A-Za-z][_$0-9A-Za-z]*)" }, "destructuring-variable": { patterns: [{ begin: "(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\{)", end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.object-binding-pattern-variable.js.jsx", patterns: [{ include: "#object-binding-pattern" }, { include: "#type-annotation" }, { include: "#comment" }] }, { begin: "(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\[)", end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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*)?([_$A-Za-z][_$0-9A-Za-z]*)" }, "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*)?([_$A-Za-z][_$0-9A-Za-z]*)" }, 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: "((@)(?:access|api))\\s+(private|protected|public)\\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: "((@)author)\\s+([^@\\s<>*/](?:[^@<>*/]|\\*[^/])*)(?:\\s*(<)([^>\\s]+)(>))?" }, { 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: "((@)borrows)\\s+((?:[^@\\s*/]|\\*[^/])+)\\s+(as)\\s+((?:[^@\\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: "((@)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: "((@)see)\\s+(?:((?=https?://)(?:[^\\s*]|\\*[^/])+)|((?!https?://|(?:\\[[^\\[\\]]*\\])?{@(?:link|linkcode|linkplain|tutorial)\\b)(?:[^@\\s*/]|\\*[^/])+))" }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: "((@)template)\\s+([A-Za-z_$][\\w$.\\[\\]]*(?:\\s*,\\s*[A-Za-z_$][\\w$.\\[\\]]*)*)" }, { begin: "((@)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: "((@)(?:arg|argument|const|constant|member|namespace|param|var))\\s+([A-Za-z_$][\\w$.\\[\\]]*)" }, { 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: `(\\[)\\s*[\\w$]+(?:(?:\\[\\])?\\.[\\w$]+)*(?:\\s*(=)\\s*((?>"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?"|'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?'|\\[(?:(?:\\*(?!/))|[^*])*?\\]|(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*)*))?\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`, name: "variable.other.jsdoc" }] }, { begin: "((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\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: "((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\s+((?:[^{}@\\s*]|\\*[^/])+)" }, { 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: "(@)(?: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: "((@)(?:[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s+)" }] }, "enum-declaration": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$A-Za-z][_$0-9A-Za-z]*)", 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: "([_$A-Za-z][_$0-9A-Za-z]*)", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$A-Za-z][_$0-9A-Za-z]*)" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", name: "meta.export.default.js.jsx", patterns: [{ include: "#interface-declaration" }, { include: "#expression" }] }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$A-Za-z][_$0-9A-Za-z]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)" }, { include: "#type-annotation" }, { include: "#variable-initializer" }, { match: ",", name: "punctuation.separator.parameter.js.jsx" }, { include: "#identifiers" }, { include: "#expressionPunctuations" }] }, "expression-operators": { patterns: [{ match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.flow.js.jsx" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.delete.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()", name: "keyword.operator.expression.in.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()", name: "keyword.operator.expression.of.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.instanceof.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.new.js.jsx" }, { include: "#typeof-operator" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.void.js.jsx" }, { captures: { 1: { name: "keyword.control.as.js.jsx" }, 2: { name: "storage.modifier.js.jsx" } }, match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", beginCaptures: { 1: { name: "keyword.control.as.js.jsx" }, 2: { name: "keyword.control.satisfies.js.jsx" } }, end: "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<=[_$0-9A-Za-z])(\\!)\\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: "(?<=[_$0-9A-Za-z)\\]])\\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: "(?<=[_$0-9A-Za-z)\\]])\\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: "(?<!\\()(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|(\\#?[_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))", beginCaptures: { 1: { name: "storage.modifier.js.jsx" } }, end: "(?=\\}|;|,|$|(^(?!\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|(\\#?[_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\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: "(\\#?[_$A-Za-z][_$0-9A-Za-z]*)(?:(\\?)|(\\!))?(?=\\s*\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))" }, { match: "\\#?[_$A-Za-z][_$0-9A-Za-z]*", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))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: "(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", end: "(?<=\\))(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", patterns: [{ begin: "(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))", end: "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\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: "(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", end: "(?<=\\>)(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", patterns: [{ begin: "(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))", 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: "(\\#?[_$A-Za-z][_$0-9A-Za-z]*)", name: "entity.name.function.js.jsx" }] }, "function-declaration": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$A-Za-z][_$0-9A-Za-z]*))?\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))|(?<=\\})", name: "meta.function.js.jsx", patterns: [{ include: "#function-name" }, { include: "#function-body" }] }, "function-expression": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$A-Za-z][_$0-9A-Za-z]*))?\\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: "[_$A-Za-z][_$0-9A-Za-z]*", 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: "(?:(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))" }, { captures: { 1: { name: "punctuation.accessor.js.jsx" }, 2: { name: "punctuation.accessor.optional.js.jsx" }, 3: { name: "variable.other.constant.property.js.jsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])" }, { captures: { 1: { name: "punctuation.accessor.js.jsx" }, 2: { name: "punctuation.accessor.optional.js.jsx" }, 3: { name: "variable.other.property.js.jsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*)" }, { match: "([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])", name: "variable.other.constant.js.jsx" }, { match: "[_$A-Za-z][_$0-9A-Za-z]*", name: "variable.other.readwrite.js.jsx" }] }, "if-statement": { patterns: [{ begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", end: "(?=;|$|\\})", patterns: [{ include: "#comment" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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|[^\\._$0-9A-Za-z]import)(?=;|$|^)", name: "meta.import.js.jsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#string" }, { begin: `(?<=^import|[^\\._$0-9A-Za-z]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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\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: "([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))" }, { match: "([_$A-Za-z][_$0-9A-Za-z]*)", name: "variable.other.readwrite.js.jsx" }] }] }, "import-export-assert-clause": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(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: "(?:[_$A-Za-z][_$0-9A-Za-z]*)\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$A-Za-z][_$0-9A-Za-z]*)))\\s+(as)\\s+(?:(default(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$A-Za-z][_$0-9A-Za-z]*))" }, { 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+)?([_$A-Za-z][_$0-9A-Za-z]*)" }] }, "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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$A-Za-z][_$0-9A-Za-z]*)\\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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$A-Za-z][_$0-9A-Za-z]*)\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.expression.instanceof.js.jsx" } }, end: "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s+instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$A-Za-z][_$0-9A-Za-z]*)|(\\s*[\\(]))))", patterns: [{ include: "#type" }] }, "interface-declaration": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\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: "[_$A-Za-z][_$0-9A-Za-z]*" }, { 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]+|#\\d+|#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*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", end: "(/>)|(?:(</)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\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*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\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: "\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(:))?([_$A-Za-z][-_$0-9A-Za-z]*)(?=\\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: "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^default|[^\\._$0-9A-Za-z]default|^yield|[^\\._$0-9A-Za-z]yield|^)\\s*(?!<\\s*[_$A-Za-z][_$0-9A-Za-z]*((\\s+extends\\s+[^=>])|,))(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", end: "(?!(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", patterns: [{ include: "#jsx-tag" }] }, "jsx-tag-without-attributes": { begin: "(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\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*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\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|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^default|[^\\._$0-9A-Za-z]default|^yield|[^\\._$0-9A-Za-z]yield|^)\\s*(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>))", end: "(?!(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>))", patterns: [{ include: "#jsx-tag-without-attributes" }] }, label: { patterns: [{ begin: "([_$A-Za-z][_$0-9A-Za-z]*)\\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: "([_$A-Za-z][_$0-9A-Za-z]*)\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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: "(?=((\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])", end: "(?=\\(|\\<)", patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { match: "[_$A-Za-z][_$0-9A-Za-z]*", name: "meta.definition.method.js.jsx entity.name.function.js.jsx" }, { match: "\\?", name: "keyword.operator.optional.js.jsx" }] }, "namespace-declaration": { begin: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$A-Za-z\"'`]))", 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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", name: "meta.namespace.declaration.js.jsx", patterns: [{ include: "#comment" }, { include: "#string" }, { match: "([_$A-Za-z][_$0-9A-Za-z]*)", name: "entity.name.type.module.js.jsx" }, { include: "#punctuation-accessor" }, { include: "#decl-block" }] }, "new-expr": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.new.js.jsx" } }, end: "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$A-Za-z][_$0-9A-Za-z]*)|(\\s*[\\(]))))", name: "new.expr.js.jsx", patterns: [{ include: "#expression" }] }, "null-literal": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$)" }] }, "numericConstant-literal": { patterns: [{ match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.nan.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.infinity.js.jsx" }] }, "object-binding-element": { patterns: [{ include: "#comment" }, { begin: "(?=((\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\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: "(?=((\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\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: "(?=((\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", end: "(:)", endCaptures: { 0: { name: "punctuation.destructuring.js.jsx" } }, patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { match: "([_$A-Za-z][_$0-9A-Za-z]*)", 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: "([_$A-Za-z][_$0-9A-Za-z]*)(?=\\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: "(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(?:(\\#?[A-Z][_$\\dA-Z]*)|(\\#?[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s*\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*)" }, { captures: { 1: { name: "variable.other.constant.object.js.jsx" }, 2: { name: "variable.other.object.js.jsx" } }, match: "(?:([A-Z][_$\\dA-Z]*)|([_$A-Za-z][_$0-9A-Za-z]*))(?=\\s*\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*)" }] }, "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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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: "(?=(\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$)))", 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: "(?![_$A-Za-z])([\\d]+)\\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: "(?:([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))", name: "meta.object.member.js.jsx" }, { captures: { 0: { name: "meta.object-literal.key.js.jsx" } }, match: "(?:[_$A-Za-z][_$0-9A-Za-z]*)\\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: "([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", name: "meta.object.member.js.jsx" }, { captures: { 1: { name: "keyword.control.as.js.jsx" }, 2: { name: "storage.modifier.js.jsx" } }, match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", name: "meta.object.member.js.jsx" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", beginCaptures: { 1: { name: "keyword.control.as.js.jsx" }, 2: { name: "keyword.control.satisfies.js.jsx" } }, end: "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", name: "meta.object.member.js.jsx", patterns: [{ include: "#type" }] }, { begin: "(?=[_$A-Za-z][_$0-9A-Za-z]*\\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+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)" }] }, "parameter-object-binding-element": { patterns: [{ include: "#comment" }, { begin: "(?=((\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\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+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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|[^\\._$0-9A-Za-z]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", patterns: [{ include: "#arrow-return-type-body" }] }, "property-accessor": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.type.property.js.jsx" }, "punctuation-accessor": { captures: { 1: { name: "punctuation.accessor.js.jsx" }, 2: { name: "punctuation.accessor.optional.js.jsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[\\d])))" }, "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|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]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: "((?<![_$0-9A-Za-z)\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))", name: "keyword.operator.expression.import.js.jsx" }] }, "support-objects": { patterns: [{ match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)", name: "variable.language.arguments.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\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: "(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(?:(?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())|(?:(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[\\d])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)" }] }, "switch-statement": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.js.jsx" } }, name: "switch-statement.expr.js.jsx", patterns: [{ include: "#comment" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "([_$A-Za-z][_$0-9A-Za-z]*)?(`)", 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: "(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", end: "(?=`)", patterns: [{ begin: "(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*))", end: "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", patterns: [{ include: "#support-function-call-identifiers" }, { match: "([_$A-Za-z][_$0-9A-Za-z]*)", name: "entity.name.function.tagged-template.js.jsx" }] }, { include: "#type-arguments" }] }, { begin: "([_$A-Za-z][_$0-9A-Za-z]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\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: "([_$A-Za-z][_$0-9A-Za-z]*)?(`)", 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*[^\\d])(\\?)(?!\\?)", beginCaptures: { 1: { name: "keyword.operator.ternary.js.jsx" } }, end: "\\s*(:)", endCaptures: { 1: { name: "keyword.operator.ternary.js.jsx" } }, patterns: [{ include: "#expression" }] }, "this-literal": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*" }, { include: "#type-name" }] }, "type-alias-declaration": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", name: "meta.type.declaration.js.jsx", patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { begin: "(=)\\s*(intrinsic)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\s*(?=\\{)))", name: "meta.type.annotation.js.jsx", patterns: [{ include: "#type" }] }, { begin: "(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.js.jsx" } }, end: "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))" }, { include: "#type" }, { include: "#punctuation-comma" }] }, "type-builtin-literals": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "support.type.builtin.js.jsx" }, "type-conditional": { patterns: [{ begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(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: "((?=[(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>))))))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$A-Za-z][_$0-9A-Za-z]*)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))?", name: "meta.type.infer.js.jsx" }] }, "type-name": { patterns: [{ begin: "([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\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: "([_$A-Za-z][_$0-9A-Za-z]*)\\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: "([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))" }, { match: "[_$A-Za-z][_$0-9A-Za-z]*", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.keyof.js.jsx" }, { match: "(\\?|\\:)", name: "keyword.operator.ternary.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s*(\\??)(?=\\s*(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s(is)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))" }, { 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.type.asserts.js.jsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.is.js.jsx" }] }, "type-primitive": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$A-Za-z][_$0-9A-Za-z]*)\\s*(\\?)?\\s*(:)" }, { include: "#type" }, { include: "#punctuation-comma" }] }, "typeof-operator": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", patterns: [{ include: "#type-arguments" }, { include: "#expression" }] }, "undefined-literal": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.undefined.js.jsx" }, "var-expr": { patterns: [{ begin: "(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))", end: "(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^let|[^\\._$0-9A-Za-z]let|^var|[^\\._$0-9A-Za-z]var)(?=\\s*$)))", name: "meta.var.expr.js.jsx", patterns: [{ begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\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: "(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.type.js.jsx" } }, end: "(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^const|[^\\._$0-9A-Za-z]const)(?=\\s*$)))", name: "meta.var.expr.js.jsx", patterns: [{ begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\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: "(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))", beginCaptures: { 1: { name: "keyword.control.export.js.jsx" }, 2: { name: "storage.modifier.js.jsx" }, 3: { name: "storage.type.js.jsx" } }, end: "(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^using|[^\\._$0-9A-Za-z]using|^await\\s+using|[^\\._$0-9A-Za-z]await\\s+using)(?=\\s*$)))", name: "meta.var.expr.js.jsx", patterns: [{ begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\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: "(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))", beginCaptures: { 1: { name: "meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx" } }, end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.js.jsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([_$A-Za-z][_$0-9A-Za-z]*)", beginCaptures: { 1: { name: "meta.definition.variable.js.jsx variable.other.constant.js.jsx" } }, end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.js.jsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }] }, "var-single-variable": { patterns: [{ begin: "([_$A-Za-z][_$0-9A-Za-z]*)(\\!)?(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))", beginCaptures: { 1: { name: "meta.definition.variable.js.jsx entity.name.function.js.jsx" }, 2: { name: "keyword.operator.definiteassignment.js.jsx" } }, end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.js.jsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])(\\!)?", beginCaptures: { 1: { name: "meta.definition.variable.js.jsx variable.other.constant.js.jsx" }, 2: { name: "keyword.operator.definiteassignment.js.jsx" } }, end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.js.jsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([_$A-Za-z][_$0-9A-Za-z]*)(\\!)?", beginCaptures: { 1: { name: "meta.definition.variable.js.jsx variable.other.readwrite.js.jsx" }, 2: { name: "keyword.operator.definiteassignment.js.jsx" } }, end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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: "(?=$|^|[,);}\\]]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", patterns: [{ include: "#expression" }] }, { begin: "(?<!=|!)(=)(?!=)", beginCaptures: { 1: { name: "keyword.operator.assignment.js.jsx" } }, end: "(?=[,);}\\]]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", patterns: [{ include: "#expression" }] }] } }, scopeName: "source.js.jsx" });
46
- var c = [
47
- k
48
- ];
49
- const j = Object.freeze({ displayName: "TSX", name: "tsx", patterns: [{ include: "#directives" }, { include: "#statements" }, { include: "#shebang" }], repository: { "access-modifier": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.tsx" }, "after-operator-block-as-object-literal": { begin: "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^yield|[^\\._$0-9A-Za-z]yield|^throw|[^\\._$0-9A-Za-z]throw|^in|[^\\._$0-9A-Za-z]in|^of|[^\\._$0-9A-Za-z]of|^typeof|[^\\._$0-9A-Za-z]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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?==>)", name: "meta.arrow.tsx" }, { begin: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync))?((?<![})!\\]])\\s*(?=((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))", beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.boolean.true.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\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: "[_$A-Za-z][_$0-9A-Za-z]*" }, { include: "#type-parameters" }, { include: "#class-or-interface-body" }] }, "class-expression": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))(?=\\s*[_$A-Za-z][_$0-9A-Za-z]*(\\s*\\??\\.\\s*[_$A-Za-z][_$0-9A-Za-z]*)*\\s*)" }, { captures: { 1: { name: "entity.other.inherited-class.tsx" } }, match: "([_$A-Za-z][_$0-9A-Za-z]*)" }, { 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.trycatch.tsx" }, { captures: { 1: { name: "keyword.control.loop.tsx" }, 2: { name: "entity.name.label.tsx" } }, match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$A-Za-z][_$0-9A-Za-z]*)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.loop.tsx" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 0: { name: "keyword.control.flow.tsx" } }, end: "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", patterns: [{ include: "#expression" }] }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.switch.tsx" }, { include: "#if-statement" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.conditional.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.with.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.tsx" }] }, decorator: { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", beginCaptures: { 0: { name: "punctuation.decorator.tsx" } }, end: "(?=\\s)", name: "meta.decorator.tsx", patterns: [{ include: "#expression" }] }, "destructuring-const": { patterns: [{ begin: "(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\{)", end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.object-binding-pattern-variable.tsx", patterns: [{ include: "#object-binding-pattern-const" }, { include: "#type-annotation" }, { include: "#comment" }] }, { begin: "(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\[)", end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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*)?([_$A-Za-z][_$0-9A-Za-z]*)" }, "destructuring-variable": { patterns: [{ begin: "(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\{)", end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.object-binding-pattern-variable.tsx", patterns: [{ include: "#object-binding-pattern" }, { include: "#type-annotation" }, { include: "#comment" }] }, { begin: "(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\[)", end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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*)?([_$A-Za-z][_$0-9A-Za-z]*)" }, "destructuring-variable-rest-const": { captures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "meta.definition.variable.tsx variable.other.constant.tsx" } }, match: "(?:(\\.\\.\\.)\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)" }, 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: "((@)(?:access|api))\\s+(private|protected|public)\\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: "((@)author)\\s+([^@\\s<>*/](?:[^@<>*/]|\\*[^/])*)(?:\\s*(<)([^>\\s]+)(>))?" }, { 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: "((@)borrows)\\s+((?:[^@\\s*/]|\\*[^/])+)\\s+(as)\\s+((?:[^@\\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: "((@)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: "((@)see)\\s+(?:((?=https?://)(?:[^\\s*]|\\*[^/])+)|((?!https?://|(?:\\[[^\\[\\]]*\\])?{@(?:link|linkcode|linkplain|tutorial)\\b)(?:[^@\\s*/]|\\*[^/])+))" }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: "((@)template)\\s+([A-Za-z_$][\\w$.\\[\\]]*(?:\\s*,\\s*[A-Za-z_$][\\w$.\\[\\]]*)*)" }, { begin: "((@)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: "((@)(?:arg|argument|const|constant|member|namespace|param|var))\\s+([A-Za-z_$][\\w$.\\[\\]]*)" }, { 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: `(\\[)\\s*[\\w$]+(?:(?:\\[\\])?\\.[\\w$]+)*(?:\\s*(=)\\s*((?>"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?"|'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?'|\\[(?:(?:\\*(?!/))|[^*])*?\\]|(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*)*))?\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`, name: "variable.other.jsdoc" }] }, { begin: "((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\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: "((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\s+((?:[^{}@\\s*]|\\*[^/])+)" }, { 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: "(@)(?: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: "((@)(?:[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s+)" }] }, "enum-declaration": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$A-Za-z][_$0-9A-Za-z]*)", 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: "([_$A-Za-z][_$0-9A-Za-z]*)", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$A-Za-z][_$0-9A-Za-z]*)" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", name: "meta.export.default.tsx", patterns: [{ include: "#interface-declaration" }, { include: "#expression" }] }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$A-Za-z][_$0-9A-Za-z]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)" }, { include: "#type-annotation" }, { include: "#variable-initializer" }, { match: ",", name: "punctuation.separator.parameter.tsx" }, { include: "#identifiers" }, { include: "#expressionPunctuations" }] }, "expression-operators": { patterns: [{ match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.flow.tsx" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.delete.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()", name: "keyword.operator.expression.in.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()", name: "keyword.operator.expression.of.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.instanceof.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.new.tsx" }, { include: "#typeof-operator" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.void.tsx" }, { captures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "storage.modifier.tsx" } }, match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", beginCaptures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "keyword.control.satisfies.tsx" } }, end: "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<=[_$0-9A-Za-z])(\\!)\\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: "(?<=[_$0-9A-Za-z)\\]])\\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: "(?<=[_$0-9A-Za-z)\\]])\\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: "(?<!\\()(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|(\\#?[_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))", beginCaptures: { 1: { name: "storage.modifier.tsx" } }, end: "(?=\\}|;|,|$|(^(?!\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|(\\#?[_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\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: "(\\#?[_$A-Za-z][_$0-9A-Za-z]*)(?:(\\?)|(\\!))?(?=\\s*\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))" }, { match: "\\#?[_$A-Za-z][_$0-9A-Za-z]*", name: "meta.definition.property.tsx variable.object.property.tsx" }, { match: "\\?", name: "keyword.operator.optional.tsx" }, { match: "\\!", name: "keyword.operator.definiteassignment.tsx" }] }, "for-loop": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))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: "(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", end: "(?<=\\))(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", patterns: [{ begin: "(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))", end: "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\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: "(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", end: "(?<=\\>)(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", patterns: [{ begin: "(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))", 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: "(\\#?[_$A-Za-z][_$0-9A-Za-z]*)", name: "entity.name.function.tsx" }] }, "function-declaration": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$A-Za-z][_$0-9A-Za-z]*))?\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))|(?<=\\})", name: "meta.function.tsx", patterns: [{ include: "#function-name" }, { include: "#function-body" }] }, "function-expression": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$A-Za-z][_$0-9A-Za-z]*))?\\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: "[_$A-Za-z][_$0-9A-Za-z]*", 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: "(?:(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))" }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "variable.other.constant.property.tsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])" }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "variable.other.property.tsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*)" }, { match: "([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])", name: "variable.other.constant.tsx" }, { match: "[_$A-Za-z][_$0-9A-Za-z]*", name: "variable.other.readwrite.tsx" }] }, "if-statement": { patterns: [{ begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", end: "(?=;|$|\\})", patterns: [{ include: "#comment" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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|[^\\._$0-9A-Za-z]import)(?=;|$|^)", name: "meta.import.tsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#string" }, { begin: `(?<=^import|[^\\._$0-9A-Za-z]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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\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: "([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))" }, { match: "([_$A-Za-z][_$0-9A-Za-z]*)", name: "variable.other.readwrite.tsx" }] }] }, "import-export-assert-clause": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(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: "(?:[_$A-Za-z][_$0-9A-Za-z]*)\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$A-Za-z][_$0-9A-Za-z]*)))\\s+(as)\\s+(?:(default(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$A-Za-z][_$0-9A-Za-z]*))" }, { 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+)?([_$A-Za-z][_$0-9A-Za-z]*)" }] }, "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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$A-Za-z][_$0-9A-Za-z]*)\\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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$A-Za-z][_$0-9A-Za-z]*)\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.expression.instanceof.tsx" } }, end: "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s+instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$A-Za-z][_$0-9A-Za-z]*)|(\\s*[\\(]))))", patterns: [{ include: "#type" }] }, "interface-declaration": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\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: "[_$A-Za-z][_$0-9A-Za-z]*" }, { 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]+|#\\d+|#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*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", end: "(/>)|(?:(</)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\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*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\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: "\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(:))?([_$A-Za-z][-_$0-9A-Za-z]*)(?=\\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: "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^default|[^\\._$0-9A-Za-z]default|^yield|[^\\._$0-9A-Za-z]yield|^)\\s*(?!<\\s*[_$A-Za-z][_$0-9A-Za-z]*((\\s+extends\\s+[^=>])|,))(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", end: "(?!(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", patterns: [{ include: "#jsx-tag" }] }, "jsx-tag-without-attributes": { begin: "(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\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*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\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|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^default|[^\\._$0-9A-Za-z]default|^yield|[^\\._$0-9A-Za-z]yield|^)\\s*(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>))", end: "(?!(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>))", patterns: [{ include: "#jsx-tag-without-attributes" }] }, label: { patterns: [{ begin: "([_$A-Za-z][_$0-9A-Za-z]*)\\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: "([_$A-Za-z][_$0-9A-Za-z]*)\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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: "(?=((\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])", end: "(?=\\(|\\<)", patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { match: "[_$A-Za-z][_$0-9A-Za-z]*", name: "meta.definition.method.tsx entity.name.function.tsx" }, { match: "\\?", name: "keyword.operator.optional.tsx" }] }, "namespace-declaration": { begin: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$A-Za-z\"'`]))", 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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", name: "meta.namespace.declaration.tsx", patterns: [{ include: "#comment" }, { include: "#string" }, { match: "([_$A-Za-z][_$0-9A-Za-z]*)", name: "entity.name.type.module.tsx" }, { include: "#punctuation-accessor" }, { include: "#decl-block" }] }, "new-expr": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.new.tsx" } }, end: "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$A-Za-z][_$0-9A-Za-z]*)|(\\s*[\\(]))))", name: "new.expr.tsx", patterns: [{ include: "#expression" }] }, "null-literal": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$)" }] }, "numericConstant-literal": { patterns: [{ match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.nan.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.infinity.tsx" }] }, "object-binding-element": { patterns: [{ include: "#comment" }, { begin: "(?=((\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\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: "(?=((\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\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: "(?=((\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", end: "(:)", endCaptures: { 0: { name: "punctuation.destructuring.tsx" } }, patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { match: "([_$A-Za-z][_$0-9A-Za-z]*)", 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: "([_$A-Za-z][_$0-9A-Za-z]*)(?=\\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: "(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(?:(\\#?[A-Z][_$\\dA-Z]*)|(\\#?[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s*\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*)" }, { captures: { 1: { name: "variable.other.constant.object.tsx" }, 2: { name: "variable.other.object.tsx" } }, match: "(?:([A-Z][_$\\dA-Z]*)|([_$A-Za-z][_$0-9A-Za-z]*))(?=\\s*\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*)" }] }, "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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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: "(?=(\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$)))", 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: "(?![_$A-Za-z])([\\d]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", name: "meta.object.member.tsx" }, { captures: { 0: { name: "meta.object-literal.key.tsx" }, 1: { name: "entity.name.function.tsx" } }, match: "(?:([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))", name: "meta.object.member.tsx" }, { captures: { 0: { name: "meta.object-literal.key.tsx" } }, match: "(?:[_$A-Za-z][_$0-9A-Za-z]*)\\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: "([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", name: "meta.object.member.tsx" }, { captures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "storage.modifier.tsx" } }, match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", name: "meta.object.member.tsx" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", beginCaptures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "keyword.control.satisfies.tsx" } }, end: "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", name: "meta.object.member.tsx", patterns: [{ include: "#type" }] }, { begin: "(?=[_$A-Za-z][_$0-9A-Za-z]*\\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+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)" }] }, "parameter-object-binding-element": { patterns: [{ include: "#comment" }, { begin: "(?=((\\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(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\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+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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|[^\\._$0-9A-Za-z]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\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|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", patterns: [{ include: "#arrow-return-type-body" }] }, "property-accessor": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.type.property.tsx" }, "punctuation-accessor": { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[\\d])))" }, "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|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]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: "((?<![_$0-9A-Za-z)\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)", name: "variable.language.super.tsx" }, "support-function-call-identifiers": { patterns: [{ include: "#literal" }, { include: "#support-objects" }, { include: "#object-identifiers" }, { include: "#punctuation-accessor" }, { match: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))", name: "keyword.operator.expression.import.tsx" }] }, "support-objects": { patterns: [{ match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)", name: "variable.language.arguments.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\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: "(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(?:(?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())|(?:(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[\\d])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)" }] }, "switch-statement": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "switch-statement.expr.tsx", patterns: [{ include: "#comment" }, { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "([_$A-Za-z][_$0-9A-Za-z]*)?(`)", 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: "(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", end: "(?=`)", patterns: [{ begin: "(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*))", end: "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", patterns: [{ include: "#support-function-call-identifiers" }, { match: "([_$A-Za-z][_$0-9A-Za-z]*)", name: "entity.name.function.tagged-template.tsx" }] }, { include: "#type-arguments" }] }, { begin: "([_$A-Za-z][_$0-9A-Za-z]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\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: "([_$A-Za-z][_$0-9A-Za-z]*)?(`)", 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*[^\\d])(\\?)(?!\\?)", beginCaptures: { 1: { name: "keyword.operator.ternary.tsx" } }, end: "\\s*(:)", endCaptures: { 1: { name: "keyword.operator.ternary.tsx" } }, patterns: [{ include: "#expression" }] }, "this-literal": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*" }, { include: "#type-name" }] }, "type-alias-declaration": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", name: "meta.type.declaration.tsx", patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { begin: "(=)\\s*(intrinsic)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", patterns: [{ include: "#type" }] }] }, "type-annotation": { patterns: [{ begin: "(:)(?=\\s*\\S)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\s*(?=\\{)))", name: "meta.type.annotation.tsx", patterns: [{ include: "#type" }] }, { begin: "(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))" }, { include: "#type" }, { include: "#punctuation-comma" }] }, "type-builtin-literals": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "support.type.builtin.tsx" }, "type-conditional": { patterns: [{ begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(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: "((?=[(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>))))))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$A-Za-z][_$0-9A-Za-z]*)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))?", name: "meta.type.infer.tsx" }] }, "type-name": { patterns: [{ begin: "([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\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: "([_$A-Za-z][_$0-9A-Za-z]*)\\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: "([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))" }, { match: "[_$A-Za-z][_$0-9A-Za-z]*", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.keyof.tsx" }, { match: "(\\?|\\:)", name: "keyword.operator.ternary.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s*(\\??)(?=\\s*(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\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: "(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s(is)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))" }, { captures: { 1: { name: "keyword.operator.type.asserts.tsx" }, 2: { name: "variable.parameter.tsx variable.language.this.tsx" }, 3: { name: "variable.parameter.tsx" } }, match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.type.asserts.tsx" }, { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.is.tsx" }] }, "type-primitive": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$A-Za-z][_$0-9A-Za-z]*)\\s*(\\?)?\\s*(:)" }, { include: "#type" }, { include: "#punctuation-comma" }] }, "typeof-operator": { begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", 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|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))", patterns: [{ include: "#type-arguments" }, { include: "#expression" }] }, "undefined-literal": { match: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.undefined.tsx" }, "var-expr": { patterns: [{ begin: "(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))", end: "(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^let|[^\\._$0-9A-Za-z]let|^var|[^\\._$0-9A-Za-z]var)(?=\\s*$)))", name: "meta.var.expr.tsx", patterns: [{ begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\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: "(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^const|[^\\._$0-9A-Za-z]const)(?=\\s*$)))", name: "meta.var.expr.tsx", patterns: [{ begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\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: "(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^using|[^\\._$0-9A-Za-z]using|^await\\s+using|[^\\._$0-9A-Za-z]await\\s+using)(?=\\s*$)))", name: "meta.var.expr.tsx", patterns: [{ begin: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\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: "(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(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: "([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))", beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([_$A-Za-z][_$0-9A-Za-z]*)", beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.constant.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }] }, "var-single-variable": { patterns: [{ begin: "([_$A-Za-z][_$0-9A-Za-z]*)(\\!)?(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))", beginCaptures: { 1: { name: "meta.definition.variable.tsx entity.name.function.tsx" }, 2: { name: "keyword.operator.definiteassignment.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])(\\!)?", beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.constant.tsx" }, 2: { name: "keyword.operator.definiteassignment.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([_$A-Za-z][_$0-9A-Za-z]*)(\\!)?", beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.readwrite.tsx" }, 2: { name: "keyword.operator.definiteassignment.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\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|=)))[_$A-Za-z])\\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: "(?=$|^|[,);}\\]]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", patterns: [{ include: "#expression" }] }, { begin: "(?<!=|!)(=)(?!=)", beginCaptures: { 1: { name: "keyword.operator.assignment.tsx" } }, end: "(?=[,);}\\]]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", patterns: [{ include: "#expression" }] }] } }, scopeName: "source.tsx" });
50
- var u = [
51
- j
52
- ];
53
- 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: "-?(?:0|[1-9]\\d*)(?:(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)?", 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: '\\\\(?:["\\\\/bfnrt]|u[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" });
54
- var A = [
55
- w
56
- ];
57
- const z = 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: '(?:\\\\(?:["\\\\/bfnrt]|u[0-9a-fA-F]{4}))', 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: '(?:\\\\(?:["\\\\/bfnrt]|u[0-9a-fA-F]{4}))', 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" });
58
- var Z = [
59
- z
60
- ];
61
- const v = 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: `(((?:[A-Za-z0-9_-]+|"(?:[^"\\\\]|\\\\.)*"|'[^']*')(?:\\s*\\.\\s*|(?=\\s*=))){2,})\\s*(=)\\s*`, 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\\d{4}-(0[1-9]|1[012])-(?!00|3[2-9])[0-3]\\d([Tt ](?!2[5-9])[0-2]\\d:[0-5]\\d:(?!6[1-9])[0-6]\\d(\\.\\d+)?(Z|[+-](?!2[5-9])[0-2]\\d:[0-5]\\d)?)?", name: "constant.other.date.toml" }, { match: "\\G(?!2[5-9])[0-2]\\d:[0-5]\\d:(?!6[1-9])[0-6]\\d(\\.\\d+)?", 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: "\\G([+-]?(0|([1-9]((\\d|_\\d)+)?)))(?=[.eE])(\\.(\\d((\\d|_\\d)+)?))?([eE]([+-]?\\d((\\d|_\\d)+)?))?", name: "constant.numeric.float.toml" }, { match: "\\G([+-]?(0|([1-9]((\\d|_\\d)+)?)))", 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: `(?=["'']|[+-]?\\d|[+-]?(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" });
62
- var C = [
63
- v
64
- ];
65
- const q = 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]\\d*)(\\.\\d+)?((e|E)(\\+|-)?\\d+)?)" }, "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*
66
- ` }, "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*+(?:(("))|(
67
- ))`, 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: `(?=[
68
- ,)])`, 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"] });
69
- var F = [
70
- ...e,
71
- ...a,
72
- ...c,
73
- ...u,
74
- q
75
- ];
76
- const G = 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"] });
77
- var N = [
78
- ...n,
79
- G
80
- ];
81
- 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", patterns: [] } }, 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" });
82
- var S = [
83
- E
84
- ];
85
- const D = 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" });
86
- var B = [
87
- D
88
- ];
89
- const T = 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" });
90
- var I = [
91
- T
92
- ];
93
- const O = 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"] });
94
- var P = [
95
- ...e,
96
- O
97
- ];
98
- 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: "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.ts" }, { include: "source.ts#type" }, { include: "source.ts#punctuation-comma" }, { match: "(=)(?!>)", name: "keyword.operator.assignment.ts" }] }] }, "vue-directives-original": { begin: "(?:(?:(v-[\\w-]+)(:)?)|([:\\.])|(@)|(#))(?:(?:(\\[)([^\\]]*)(\\]))|([\\w-]+))?", beginCaptures: { 1: { name: "entity.other.attribute-name.html.vue" }, 2: { name: "punctuation.separator.key-value.html.vue" }, 3: { name: "punctuation.attribute-shorthand.bind.html.vue" }, 4: { name: "punctuation.attribute-shorthand.event.html.vue" }, 5: { name: "punctuation.attribute-shorthand.slot.html.vue" }, 6: { name: "punctuation.separator.key-value.html.vue" }, 7: { name: "source.ts.embedded.html.vue", patterns: [{ include: "source.ts#expression" }] }, 8: { name: "punctuation.separator.key-value.html.vue" }, 9: { name: "entity.other.attribute-name.html.vue" } }, end: "(?=\\s*[^=\\s])", endCaptures: { 1: { name: "punctuation.definition.string.end.html.vue" } }, name: "meta.attribute.directive.vue", patterns: [{ 1: { name: "punctuation.separator.key-value.html.vue" }, 2: { name: "entity.other.attribute-name.html.vue" }, match: "(\\.)([\\w-]*)" }, { 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: "(?<![\\w-])--(?:[-a-zA-Z_]|[^\\x00-\\x7F])(?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))*", 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"] });
99
- var W = [
100
- ...n,
101
- ...p,
102
- ..._,
103
- ...r,
104
- ...s,
105
- ...t,
106
- ...i,
107
- ...$,
108
- ...e,
109
- ...a,
110
- ...c,
111
- ...u,
112
- ...o,
113
- ...l,
114
- ...A,
115
- ...Z,
116
- ...d,
117
- ...C,
118
- ...F,
119
- ...N,
120
- ...S,
121
- ...B,
122
- ...I,
123
- ...P,
124
- L
125
- ];
126
- export {
127
- W as default
128
- };